不知道大家跑仿真的时候,会不会遇到需要动态调整设置的情况?
比如一个bandgap的startup,一开始需要仿真精度比较高,之后电路基本上稳定之后,各个工作点基本上不变,可以降低仿真精度。
又比如我想测试一个电路的温度稳定性能,假设这个芯片在冬天的东北,忽然从温暖的室内拿到室外,环境温度骤降好几十度。
或者是输入的信号是个动态的幅值连续变化的情况。
一般来说,如果用一个高精度的仿真或者好几个独立的仿真,是足以应付上面的需求的。不过Cadence既然已经给了一个很不错的设置功能,我们何不试试看呢?
在这篇文章的例子里面,作者君用了一个ahdlLib的理想放大器,test bench如下:
左边是一个全差分输入的设置,VDD是1.8V。右边是ideal opamp,增益我填的是10。此时我们的输入信号用的是V0的vsin, V4是个vdc,目前有个红色的叉叉在上面。这个叉叉是shift加delete键按出来的,表示目前没有用到这个模块。后面需要这个模块的时候,再按一次shift加delete键就可以清除掉这个叉叉了。
现在就让我们来看看如何在transient仿真里面设置吧?
可以看到,最下面有个叫Dynamic Parameter的东西。打上勾之后,出现了Parameter和Parameter Set两种选项。我们先来看看Parameter。
如果下面的Param选择默认的User-defined,就可以手动输入自己设置的变量。我这里的vamp是我在vsin里面设置的amplitude变量。输入vamp之后,下面会出来这个可以一直添加的表格,自己填写时间和vamp的数值,就可以了。
好了,我随便写了几个变量值,让我们跑一下transient吧!
仿真结果就是这样的。颜色较浅的两条线是差分输入信号,蓝色的线是ideal opamp的输出。可以看到,和我前面的设置相对应,在2us,4us,6us的时候,输入信号发生了变化,因此输出也随之发生了变化。这个仿真结果说明了上面的设置是可行的。
同样的,除了改变我们自己设置的参数变量值,我们还可以改变其他一些仿真设置,比如:
这张图里的errpreset就是仿真精度的设置。如同我刚刚举的bandgap例子,大家可以在startup开始工作的一段时间内,使用高精度conservative,在后面的时间里使用moderate或者liberal。当需要跑大量的PVT或者MC时,这样的设置方法相比于一直使用conservative的高精度,应该是可以加快仿真速度的。有兴趣的同学可以试试看。
除此之外,还有set的设置。
如上图,如果选择了Parameter Set,就不单单是前面的一个变量了。你可以加上各种各样的变量组合。比如我在2us的时候,设置了vamp,设置了温度变量temp为-25,还准备加上仿真精度errpreset。后面的尝试,就交给各位读者朋友了!
前面我讲到了我的test bench里面那个红色的叉叉。现在我们换一个信号源:
我还是用shift加上delete,删掉了vsin,但是重新采用了vdc。dynamic parameter的设置还是跟前文一样,新的电路仿真结果如图:
其实这个结果比vsin还要清晰一点。同样也是在2u,4u,6u,的时候,输入信号发生了变化,因此输出也随之发生了变化。
好了,这点transient仿真的小技巧就讲到这里了。有兴趣的读者们可以试试看啦!
审核编辑:刘清
-
放大器
+关注
关注
143文章
13583浏览量
213367 -
Cadence
+关注
关注
65文章
921浏览量
142075 -
VDD
+关注
关注
1文章
311浏览量
33186 -
PVT
+关注
关注
0文章
13浏览量
3926
发布评论请先 登录
相关推荐
评论