ADEXL在批量仿真时进行参数提取方案

描述

最近刚做完的一个项目就是这样的情况。这个项目是一款SRAM的IO电路,供电为3.3V兼容2.5V,带有2BIT的修调控制位TRIM《1:0》。在批量仿真时,批量条件就包括了工艺角、电源电压、温度以及修调信号的组合。因为设计需要,需要分别统计出不同工艺角、不同修调档位下的参数。这样一来就需要统计24个批量仿真的结果,如下图所示:

仿真器

图 1 24种筛选条件

面对这种情况,如果我们还是采用ADEXL对所有条件进行仿真,然后通过眼睛来对GUI界面显示的结果进行逐一分类甄别肯定是不现实的。可以想见,如果使用肉眼识别的方法,这将是多么大的工作量!到这里,或许有人会说那使用ADEXL进行多次的批量仿真,然后每次进行结果统计不就可以了吗?这么做当然可以,为什么不可以呢?但问题是这么做很机械、没效率且易出错,不是一个好的办法。

要解决这个问题,其实可以考虑使用ADEXL的Ocean脚本进行仿真。Ocean脚本可以通过ADEXL软件直接导出。

回归到我们要解决的问题本身,整个过程大概可以分为以下四步:

01比如我们可以在ADEXL中设置好TT、TRIM=00时的温度、电压组合条件,调通仿真环境之后即可以导出Ocean脚本,我们可以给之命名一个有识别度的名字,如TT_00.ocn,表示TT、TRIM《1:0》=00时的仿真脚本。接下来最关键的点来了,在Ocean脚本的最后,你会看到有一个ocnxLOutputSummary命令,我们需要对其进行一点点修改,在原来的基础上增加描述:?fileName “xxx/ resultfile”。等每次仿真运行完之后,仿真器会自动将所有的参数结果打印到你指定目录下的一个文件中,文件可以自己命名,不过建议起一个识别度高的名字。修改前后的ocnxLOutputSummary描述如下:修改前:ocnxLOutputSummary (?exprSummary t ?specSummary ?detailed t ?wave nil )修改后:ocnxLOutputSummary (?exprSummary t ?specSummary ?detailed t ?wave nil ?fileName ”xxx/ resultfile“)

02接下来是修改脚本。对TT_00.ocn中的工艺角和修调档位进行简单的修改,就可以得到其他的仿真脚本,如TT_01.ocn、TT_10.ocn、TT_11.ocn、SS_00.ocn等。最终我们会得到24个仿真脚本,对应我们需要统计的每一种情况(参考图1)。

03最后是脚本汇总。可以新建一个TOTAL.ocn文件,将24个仿真脚本全部load进来,这样就完成了所有仿真脚本的整合。

仿真器

图 2 进行所有脚本文件的汇总

04最后是仿真。在CIW窗口键入:load(“/xxx/xxx/TOTAL.ocn”),然后回车,仿真就开始进行了。需要注意图2中只有前一个仿真完成之后,才会开始下一个仿真。也就是说,图2所示的Ocean脚本是按顺序执行的。但每个仿真脚本仿真的时候,是采取并行仿真的方式进行的(前提是在ADEXL图形化界面设置的时候就设置成了并行模式。)。

到这里,仿真已全部挂起,只需要等待仿真结果出来。这时候你就可以去干点更加有意义的事情了,比如说喝喝茶、摸摸鱼(^_^)。

那么我们最终得到的参数文本是怎样的呢?可以看下面的图。文本中不仅有每个详细条件的具体参数值,还有对所有参数的统计结果。而且更重要的是,你可以直接复制文本内容到EXCEL表中做进一步处理,会很方便地处理成想要的数据表,大大提高设计报告的撰写效率。

仿真器

图 3 参数文本的一个示例

审核编辑:黄飞

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

全部0条评论

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

×
20
完善资料,
赚取积分