在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1933|回复: 3

[原创] 加速hspice 模拟的几种方法

[复制链接]
发表于 2024-5-10 15:57:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 hillor-8 于 2024-5-10 18:07 编辑

写在最前面——————-随便写的

1.Why does hspice slow down
1) Transisent simulation
2)simulation conditions:
     .tran 0.1n 100m
     .data sweep
     .alter
     monte carlo >1000
3)depended  on circuit type
     clock  generator,oscillator/PLL/DLL
     Unstable close loop.like op,ldo
4.Non  convergence
2.runlvl or accutate
一般analog testbench里面的输出控制语句都会写.option runlvl=5,这是为了模拟的精度。但是这种设定的模拟速度会比较慢,其实来说就是速度和精度要有一个trade off,runlvl的范围在1~6。
3、mt command
使用方法:在Linux的console或者terminal进入到testbench所在的文件夹,键入“hspice -mt n  -i  xxx.sp -o  xxx "。其中n一般是4。mt指令用在data sweep/alter/monte carlo
。例如:.tran  2n  400u  sweep data=load1

             .data  load1 xvin
              +3.3
              +4.2
              +5.5
              .enddata
使用hspice  -mt 4  -i  tran_sim.sp -o tran_sim 表示依顺序模拟3.3,4.2,5.5这三个条件,并且每个条件以400%(n=4,4个core)执行
hspice license的计算是2的x次方=n,若n=4,则x=2, 使用2个license。在同样Linux和hspice版本下,Linux的core frequency决定hspice的模拟速度。
查看linux硬体环境的command:lscpu
查看linux软体环境的command:lsb_release  -a
4、save & load
在testbench里面












 楼主| 发表于 2024-5-13 15:17:27 | 显示全部楼层
本帖最后由 hillor-8 于 2024-5-13 15:49 编辑

写入.save file=xxx.ic0 type=ic  level=all time=80u ,先跑一次各种typical condition下的模拟。之后在原来的testbench里面写入.load file=xxx.ic0,把想要模拟的各种condition加加进来进行第二次模拟,记得在后面加上UIC(如:.tran  5n  400u UIC)。
注意:第一次.save指令后面的时间设定必须在电路上电完成之后,保证工作点已经达到,这样.load的第二次模拟才会更加准确

5、dp command(名字:distributed process)
对于第三点mt command 的补充:1、-mt n中的n:随着n的增大,模拟速度并不会等比例的倍速增加,并不是n越大,加速的效果越好,n=4有较好的效果。
2、而且,license和硬体资源都是有限的,n越大,所需的license花销越多。
3、通常mt (名字:multi—thread)对于单个condition的模拟有加速效果,而对于data sweep/alter/montle carlo的模拟几乎没有加速效果。
dp commmand的用法:同mt一样,打开Linux的console,在testbench所在的文件夹键入hspice -dp m -mt n (-dpconfig config_file)  -i  xxx.sp  -o  xxx,如果只有两个license,m=4,n=1。
dp command 一般用在data sweep/alter/montle carlo 的模拟中。以下例说明dp 和mt的区别:
.tran  2u   380u  2n  480u sweep data=loading
.data loading  xvin
+3.3
+4.5
+5.3
.enddata
使用dp来模拟的话,以上condition是同时进行的,而mt是依序执行condition。所以通常来说,dp的加速效果比mt更好。

以上几种方法,除了第4点,其他都是no loss accuracy 的。往后来说,还有hpp command。不过我还不是很清楚。有兴趣可以去看hspice user guide:basic simulation and analysis。
感谢,欢迎指正,不一定会回。


发表于 2024-5-20 13:37:19 | 显示全部楼层
感謝分享
发表于 2024-12-4 14:11:47 | 显示全部楼层
太酷了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 00:13 , Processed in 0.018434 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表