transient仿真的Dynamic Parameter设置技巧

描述

不知道大家跑仿真的时候,会不会遇到需要动态调整设置的情况?

比如一个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仿真的小技巧就讲到这里了。有兴趣的读者们可以试试看啦!

编辑:jq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分