更多文章内容,可关注“模拟小笨蛋”微信公众号,定期分享模拟IC设计相关的知识,小技巧。
同一个电路,进行PVT仿真可以用ADEXL来实现,但多个不同电路的批量仿真有什么好的办法呢?前段时间就遇到了这样一个棘手的问题,也是关于仿真的。有一个TOP电路,其系统工作模式的组合约有22种。我当然可以搭建22个Testbench,使用ADEL对每个环境进行仿真分析。但这样做精力比较分散,且同时开很多ADEL很容易让我混乱。还因为我决定不使用cadence的图形化窗口界面,开22个标签简直没眼看。所以从心理上不愿意用这种方式。于是,经过探索找到了下面的办法,解决了这个问题。
(1)首先调通一种模式,导出input.scs的仿真文本。此后的后续一切步骤都是基于该input.scs文本的;
(2)分离input.scs中的公共部分成一个个独立文件,然后用include的方式包含进来。这些公共部分包括:netist、savefile、Lib等。这么做主要是为了简化仿真文件,且之后万一修改netlist和savefile的话只需要修改一个文件。Note:netlist为顶层电路的网表;savefile为需要保存的信号文件。最终将得到一种模式下的仿真文件
(3)基于第2步的仿真文件,在其基础上进行外部激励修改,陆续得到其他21个仿真文件。至此已经得到全部22个仿真文件了。当然每一个文件都是可独立运行的,现在的问题是怎样一键运行所有的仿真文件。
(4)建立一个runSimulation的可执行文件,在其中依次写下22个仿真文件的运行指令,比如下面那样,当然这是最简单的运行指令 。
// runSi