微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > RFIC设计学习交流 > 关于aps多线程仿真的若干问题释疑

关于aps多线程仿真的若干问题释疑

时间:10-02 整理:3721RD 点击:
最近坛子里经常有人问aps的问题,能够给出明确答案的不多,因此有必要把我了解的一些信息共享一下,也为坛子做点贡献。
本贴内容在机缘巧合下,均经过亲手试用或者请教cadence技术支持人员,可靠性比较高。
1. 什么是aps。
aps= Advanced Parallel Simulator, 即先进并行仿真,可以利用多核心多线程cpu,进行多线程并行仿真,大大提高仿真速度,提高的速度理论上最高可达到n,n是并发线程的个数。当然这是理论速度,从一些仿真测试来看,达到n/4到n/2的速度提升还是比较靠谱的。
2. aps支持的仿真类型。
MMSIM7.2早期的版本只能支持tran、dc等少数几个仿真,MMSIM7.2的2011年之后的ISR确定可以支持几乎全部spectre支持的仿真,如pss等,2011年之前ISR尚不确定。MMSIM10.1的Base版本就可以支持几乎全部spectre仿真。
3. IC平台版本对图形界面调用aps的影响
早期的IC平台,仿真器是集成在IC平台里边的,从IC6开始,仿真器从IC平台里边独立出来,叫做MMSIM,包括spectre、AMS、Ultrasim等等。IC514平台也可以调用MMSIM的仿真器,比如spectre等。但是调用aps就会有问题,或者没有aps选项,或者aps功能不全,原因就是此IC平台发布的时候,aps还没有发布。 所以,IC5141的U1~U6在图形界面中都没有aps的选项;IC60~IC613的Base版本也都没有aps选项,IC614 Base版本有aps选项,但只能仿真tran和dc(即使MMSIM本身支持其他仿真)。IC615及其以后的版本,都能在图形界面中完整支持aps。 以上IC514-IC61系列2009年后期到2011年前的版本,包括ISR、hotfix或者update,可以支持在图形界面通过simulator/directory/host菜单切换仿真器来调用aps,但是可能无法调用全部功能;2011年之后的ISR、hotfix或者update,都能够支持在spectre界面直接调用aps,而无需通过simulator/directory/host菜单切换仿真器,特征就是ADE界面具有Setup->High-performance sumulaiton菜单,打开这个菜单,在选项中点中aps,并在Multithreading options 选项中选中auto,即可开启多线程仿真。如果你的电路规模够大,才会开启多线程,这个时候用top命令,可以看到cpu占有率超过100%,仿真完成的时候,会在outputlog中告诉你,例如 time used cpu=421.26秒,elapsed=119秒,util=354%,第一项是所有cpu为此仿真耗费的cpu时间总和,第二个是实际使用的物理时间,第三个是效率,即第一项除以第二项,告诉你多线程仿真的效率是单线程仿真的3.54倍。 当然如果你的电路规模不够,即使打开aps仿真,aps在仿真开始的时候也会很鄙视的告诉你,不给你开启多线程仿真,因为你的电路规模“too small”。传说只有电路中有超过256个threadable的器件的时候,才会开启多进程。注意并非所有的器件都是threadable的。超过256个的非threadable器件,照样开不起来多线程。像一些analogLib和ahdlLib库中的器件,貌似都属于非threadable的,bsim模型,貌似基本都属于threadable的。
4. 即使图形界面不支持aps,也不必太难过,只要有MMSIM支持,也可以在命令行中使用aps。 较为取巧的方法是在ADE(spectre)仿真器中,simulation->netlist->recreat, 然后到simlation/电路名/spectre/netlist下,编辑runSimulation, 将其中的spectre改为aps,然后运行这个文件,也可以启用aps。命令行仿真和开启多线程的方法,请参考aps -help命令。值得一提的是,有些版本的MMSIM,直接改spectre为aps可能会出错,办法就是把runSimulaiton后边的选项全去掉,先aps input.scs,成功后再一项项加入选项,这样可找到出错的选项并去之。 -raw ../psf选项不要去掉,否则可能看不到结果。 仿真完成后,一样可在ADE界面中查看结果,用plot output按钮可以刷新仿真结果。命令行一样可以跑仿真,但是用起来还是不如图形界面直观方便。
5. 很不幸,目前AMS和Ultrasim中均不能使用aps,ultrasim中也不能使用spectre turbo。好在AMS中可以使用spectre的turbo功能,也能开启多线程。Tuobo功能和aps都可以开启多线程仿真,但是turbo是spectre的扩展或升级,aps是专门设计来进行多线程仿真的,两者本质上还是有所区别的,但用起来似乎区别感觉不是很大,仿真时间turbo通常比aps耗时长一些。7.2版本MMSIM,spectre turbo默认开启4个线程,最多支持8个,aps默认开启8个线程,最多支持16个。另外cadence建议turbo开启cpu affinity(亲和力)选项,以免发生线程间竞争的问题,而aps没有这样的建议,估计也是两者资源调度的方式不同所致。ps. Specre也能开启多线程,至少界面上是可用,但和单线程基本没什么区别,甚至还会慢那么一点点。
6. 本贴内容eetop首发,转载请注明来自eetop。

怪不得我找不到aps选项,原来版本不对
请问lz哪里可以找到支持aps的新版本?

小编威武,内容很丰富,学习了

纠正一下,ams模拟部分可以调用aps。


另外,Ultrasim本身是模拟仿真器吧。

楼上这是哪个版本啊? 这个功能也出来啦? 你这个看起来像IC5141平台

5.10.41.500.6.148 好长的版本号。

请看下命令icfb -V和 aps -V的结果,thx

兄弟,在某论坛貌似你已经搞定了么。



thx. 原来是这么新的版本,呵呵,厉害



能共享一下这本版本的ic5141吗?谢谢。

抱歉,这个无能为力。

你是不是用的64位系统? 据说64位系统不行,32位可以

好东西

APS速度确实不错,目前来看至少要比spectre快5倍

看了LZ的帖子试了下APS,确实很快,可是仿真结果查看不了。
软件是MMSIM7.2,命令行aps -raw ../psf, 仿真的,LZ提到的plot output按钮灰色不能用,然后采用results browser打开psf下的tran.tran,显示无法打开,望知情者释疑,谢谢!

MMSIM7以上版本就可以了

同样的问题,我用是IC5141,没有aps选项,但是使用命令可以,问题是runSimulation文件该怎么编辑不知道.还有波形不知道存在啥地方...就是无法查看波形的意思... 不知有哪位大神能解释下,而且贴出runSimulation的内容

mark一下

有没其他批量仿真的软件呢,列表出来学习下!谢谢LZ

有没其他的批量仿真的软件呢,列表出来学习下

看来我OUT太多了。

真是太詳盡了!~ 感謝!

学习啦。还以为是kit问题有时候出不来。原来是图形界面

学习了,感谢分享

可能是电路规模太小,没有太大的提高,还是多谢多谢~

AMS怎么模拟部分怎么使用APS啊?新手,坐等啊

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top