Spectre技术植根于高精度混合信号/射频应用中——Spectre技术总是更注重准确性而不是性能。当与其他模拟器进行性能比较时,可能需要调整默认设置,以重新平衡性能/精度权衡。随着时间的推移,Spectre APS的使用已经扩展到更广泛的领域-混合信号,高压,高级节点,内存,顶级验证定期要求提供最佳实践的总结,以优化性能/准确性平衡。

IC平台版本对图形界面调用aps的影响

早期的IC平台,仿真器是集成在IC平台里边的,从IC6开始,仿真器从IC平台里边独立出来,叫做MMSIM,包括spectre、AMS、Ultrasim等等。
MMSIM7.2早期的版本只能支持tran、dc等少数几个仿真,MMSIM7.2的2011年之后的ISR确定可以支持几乎全部spectre支持的仿真,如pss等,2011年之前ISR尚不确定。MMSIM10.1的Base版本就可以支持几乎全部spectre仿真。

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,即可开启多线程仿真。

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倍。

time used cpu=421.26秒       %cpu为此仿真耗费的cpu时间总和
elapsed=119秒               %实际使用的物理时间
util=354%                       %效率,多线程仿真的效率是单线程仿真的3.54倍。

当然如果你的电路规模不够,即使打开aps仿真,aps在仿真开始的时候也会很鄙视的告诉你,不给你开启多线程仿真,因为你的电路规模“too small”。传说只有电路中有超过256个threadable的器件的时候,才会开启多进程。注意并非所有的器件都是threadable的。超过256个的非threadable器件,照样开不起来多线程。像一些analogLib和ahdlLib库中的器件,貌似都属于非threadable的,bsim模型,貌似基本都属于threadable的。

即使图形界面不支持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按钮可以刷新仿真结果。命令行一样可以跑仿真,但是用起来还是不如图形界面直观方便。

很不幸,目前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也能开启多线程,至少界面上是可用,但和单线程基本没什么区别,甚至还会慢那么一点点。

。7.2版本MMSIM,spectre turbo默认开启4个线程,最多支持8个,
cadence建议turbo开启cpu affinity(亲和力)选项,以免发生线程间竞争的问题
aps默认开启8个线程,最多支持16个。
Specre也能开启多线程,至少界面上是可用,但和单线程基本没什么区别,甚至还会慢那么一点点。

aps默认开启8个线程,最多支持16个。

++APS

曾经为仿真速度巨慢而烦恼,曾经为开启APS 功能费劲心思,今天了解到 ++ APS 标称更快过 APS 2~10x,不敢独享。请参见附件。
注:文件为来自 cds 官方的 仿真提速建议。参考:Getting-the-most-out-of-spectre-aps-Maximizing-performance

– The ++aps option provides an alternative to Spectre’s historic focus on accuracy, with emphasis placed on performance
– Start with ++aps=moderate for pre-layout and add +postlayout=hpa for post-layout, as this will work well with about 70% of designs
– Move to +aps=moderate (and then ++aps=conservative)
if more accuracy needed, or +aps=liberal (and then ++aps=liberal) to trade off accuracy for more performance

每次小规模前仿它都嘲讽我 Multithreading is disabled due to the size of the design being too small

++aps精度不够
和aps仿真结果有偏差的话,cadence的ae也是不管的,说以aps结果为准
低精度仿真可以使用++aps

没错,CDS 自己也提到了 Mixed signal, high voltage, advanced node, memories, top-level verification 这 5 个应用方面 APS 搞不定的情况下才建议 ++APS,但是就没说平常应用下什么时候可以使用。
那从您的经验看,什么情况下 ++ APS 的精度就不足了? 比如说工艺角度的 xxnm 或性能角度的 xx Mhz 之类。

分布式计算‘’Distributed Processing

后仿

后仿TRAN仿真速度太慢,于是采用加命令的方式使用aps多线程仿真,命令是 +aps +mt=16
加命令后的仿真速度是变快了,但仿真结果很差,和不用aps的TRAN conservative精度仿真结果差很多(如图,图1、2是用aps的,图3、4是不用aps)

同事那边也只是在原本TRAN conservative精度的基础上加了命令跑aps,仿真结果就一样

为什么我同样的操作就差别这么大呢?

(对比两个人的仿真过程发现有一点不一样,他那边有aps跑时TRAN的步长step和不用aps时相差不大,但我这边有aps跑时TRAN步长会变为原来的两三倍,如图2、4)
请大佬们解惑~提前感谢

  • aps= Advanced Parallel Simulator, 即先进并行仿真,可以利用多核心多线程cpu,进行多线程并行仿真,大大提高仿真速度,提高的速度理论上最高可达到n,n是并发线程的个数。当然这是理论速度,从一些仿真测试来看,达到n/4到n/2的速度提升还是比较靠谱的。

MMSIM7.2早期的版本只能支持tran、dc等少数几个仿真,MMSIM7.2的2011年之后的ISR确定可以支持几乎全部spectre支持的仿真,如pss等,2011年之前ISR尚不确定。MMSIM10.1的Base版本就可以支持几乎全部spectre仿真。

ADE-关于aps多线程仿真的若干问题相关推荐

  1. ADE-Tran-Dynamic parameter

    问题背景:我设计了一个ADC,正在进行联合仿真.其中有一个模块是软复位.该模块的行为是当电源电压低于某个阈值的时候,就会将电路的RST拉低,并在几个ms之后再拉高.为了让电路收敛,我采用电源电压从0开 ...

  2. 基于任务点的加速仿真

    摘要 采样模拟是减少单线程程序模拟时间的成熟技术. 当前的采样技术并没有利用其他执行模型,如基于任务(Task)的执行. 当前的多线程采样技术假设分配给每个线程的工作负载在程序的多次执行中不会改变,但 ...

  3. 多线程处理同一批数据_多进程和多线程的优缺点

    来源:http://www.cnblogs.com/Yogurshine/p/3640206.html 在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程cont ...

  4. 多进程和多线程的优缺点

    在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多.进出最快的锁(windows2k的 critical ...

  5. 线程、进程、多线程、多进程和多任务有啥关系?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取后台回复"k8s",可领取k8s资料 可能学习操作系统开 ...

  6. 多进程 VS 多线程

    在Linux下编程多用多进程编程少用多线程编程. IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多.进出最快的锁(windows2k的 critical ...

  7. 多线程与多进程(转载)

    1.进程 进程作为申请系统资源的基本单位,进程必须有一个对应的物理实体. 进程的优点: 1)顺序程序的特点:具有封闭性和可再现性: 2)程序的并发执行和资源共享.多道程序设计出现后,实现了程序的并发执 ...

  8. Debussy VerilogVHDL ISE仿真平台搭建步骤

    一. Xinlinx编译库+Modelsim+Debussy版本 1.安装modelsim10.1c 32bit版本(注意64bit与Debussy不兼容) 2.安装Debussy54v9-NT 2. ...

  9. 蔡颖-《APS走向实践》书解读之一:APS优化供应链从绩效指标开始

    优化改善供应链运营的关键之一是有一套正确的绩效指标来持续的监测表现,我们需要的是一个全方位的反映自己的绩效表现.而不是仅仅局限于提前期.库存周转率一两种指标.在面对供应链实际运作时,我们常常会问:(1 ...

最新文章

  1. linux oracle io 查看,Linux上Oracle是否使用异步io的诊断
  2. 世界最优秀的分布式文件系统架构演进之路
  3. @NotNull JSR-303验证
  4. ERP顾问的三层境界
  5. Linux 命令行界面-GUI界面
  6. 从今开始,好好学习一下算法!
  7. cdoj 1131 男神的礼物 区间dp
  8. 【 .NET Core 3.0 】框架之十 || AOP 切面思想
  9. strlen的神奇实现
  10. 关于axios请求报400如何获取报错信息
  11. android volley 上传图片 和参数,Android使用Volley上传文件
  12. IDEA——Maven的配置与使用
  13. 毕业论文的编辑与排版大学计算机,大学毕业论文排版技巧
  14. 前端JS、Vue实现海康萤石直播预览、回放、云台控制功能
  15. 杭电oj —— 2052
  16. 菜鸡的Java笔记 数字操作类
  17. Jenkins之注入自定义环境变量
  18. cad线加粗怎么设置_CAD图形中线条如何加粗?
  19. Error in network defenition etc/netplan/01-netcfg.yaml line 0 collumn 8: expected mapping.
  20. 给想去阿里面试的同学一些意见

热门文章

  1. 自兴动脑:见证人工智能发展新高度,挑战AI智慧医疗
  2. python量化期权_如何20小时搞定Python量化期权实战?
  3. Apache ab 测试报告详解
  4. 深度学习矩阵乘法的终极奥义einsum,结合多个计算框架上的使用
  5. python圣诞雪人
  6. 市场的霸主:对冲基金世界的超额回报大师
  7. Bootstrap框架和vue哪个好-天道酬勤
  8. C51---13 DS18B20温度传感器
  9. MyEcplise_Maven搭建SSM框架
  10. LeetCode刷题总结01--哈希表问题