模拟技术
设想如下情景:
设计ADC的时候,忽然发现跑了一天的结果拿出来做FFT,之前的取点数量算错了!我晕!怎么办?也就再多一点点的时间就行了,难道要重新跑一天?生无可恋……
设计PLL的时候,我也不知道loop啥时候能settle,然后随便写了个截止时间,结果……果然不够……-_-
或者做其他电路设计的时候,反正我就想再多跑一段时间吧!
作者君最近学到了一个可以在之前仿真基础上接着跑仿真的办法,拿来跟大家分享一下,希望大家也能提供一些建议!
PS:作者君试过ADEXL和ADE Explore,都是可以的。ADE似乎不行。
嗯,又是熟悉的配方,来自ADEXL:
1. 打开ADEXL,在option下面选择Save,可以看到右边的对话框。
)Simulation Results: 两个选项都勾上;
)Results Location:选一个你设置的仿真文件地址。
ADEXL 的设置
2. 打开一个test state:随便填一个stop time
打开tran里面的Options选项, 在state file里面填两个东西:
1)State File Parameters: “write”和“writefinal” 可以用作接下来subsequent的初始状态文件。
2)savetime: 可以设置任何中间值,这些时间对应的仿真文件都可以被保存下来,也可以拿来debug或者做subsequent 仿真的初始状态。
3. 拿到一个初始仿真结果:明显没有settle ---》我想多跑一段时间
4. 找到之前设置的仿真文件的存放地址:
如果使用ADE Explore,下次的仿真会覆盖之前的文件,建议把需要的文件复制到local的文件夹下面。
如果使用ADEXL,每次仿真会生成对应的interactive文件夹,虽然不一定会覆盖之前的文件,但是还是建议拷贝出来。
5. 设置继续仿真的时间:
这一次,我把stop time改成了750u(这个是实际的仿真时长,不是之前150us之后的750us)。继续打开options的state file,最后一行填入上一步copy出来的仿真文件,比如我拿的是最终150us的对应文件。
6. 继续仿真:
在simulation的log里面看到,starttime是150us,而且使用了我加入的150us的对应文件。最后确认一下仿真结果,在右图里面,可以看出来,仿真确实是从150us跑到了750us。
好了,完结,撒花!
PS: 遇到很长的仿真,可能把仿真分割成这样小段的,不太会被同学和同事complain?大家可以试试看哈!
PSS:不要问我为啥这个电压是negative的,我也不知道……我在debug……遁了
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !