virtuoso配合calibre进行电路后仿真
前言
提取寄生參數以進行后仿真是電路設計的必由之路。
一、寄生參數提取的基本介紹
?在calibre PEX流程中,常見的輸出方式有calibre view和spectre netlist。
calibre輸出格式選擇?前者直接生成一幅直觀的電路圖,甚至器件的位置都和版圖大致對應,非常方便觀察內部的節點,但缺點是生成這么大一幅電路圖,很容易卡頓;而仿真時要將這么大一幅電路圖生成netlist,也會很卡頓。
?注:最重要的是很多low工藝不提供接口文件,無法生成calibre view。
?后者是以網表文件形式存儲寄生參數,不是很直觀,但是速度相對較快。以最復雜的r+c+cc為例,輸出方式選取為spectre netlist時,會生成三個文件。top.pex.netlist, top.xxx.pxi, top.xxx.pex.
?其中netlist后綴的文件是頂層文件,列出了電路中用到的所有器件。
二、如何用生成的netlist仿真?
?和AMS混仿相似,需要為已有的仿真電路建立config,然后在config中將某個模塊的view設置為spice文件:
config中調用含寄生參數的網表?其后的流程和正常仿真相同。
三、常見的問題
3.1?生成的netlist端口不對應
?pex生成spectre netlist時,默認的端口順序是按照字母進行排列的。這就會導致端口不對應的問題。按照下圖方式進行設置即可:
設置網表端口的順序3.2?仿真時不支持總線
?有的電路中存在總線端口,例如test<3:0>,仿真時可能會出錯。解決方法是先打開config的properties:
?然后在下圖中輸入-auto_bus:
四、屏蔽部分模塊
?后仿真可能會看到性能的衰退,例如在一個SAR ADC中,電容陣列版圖必然存在著不對稱的寄生,導致后仿真性能下降。但是,電容陣列的失配將在測試時被校準,仿真時不必在意。因此,后仿時需要屏蔽掉電容陣列的寄生來評估性能。
?為了屏蔽某個模塊的寄生參數,首先選擇gate level格式:
?然后配置xcell文件,例如要屏蔽cellA這個模塊,xcell文件里這樣寫即可:cellA cellA.
?此時,生成的netlist文件中,只會對cellA這個模塊進行例化。注意此時并不能正常仿真,因為生成的netlist只是例化了cellA,并沒有給出cellA內部的電路。為了正常仿真,在ADE窗口-setup-simulation file添加cellA的spectre網表。
五、觀測內部節點
?按照如上的方式進行后仿真時,所有的內部節點均被“埋在”了pex生成的netlist中,無法用ADE–>OUTPUT–>Saved這種方式直接保存。
?此時需要用到deepprobe來觀測內部節點,具體用法不再贅述。
?如果采用AMS仿真,問題會稍麻煩。此時AMS仿真器生成的網表格式如下:
module top_testbench: port: I0 I1 ... I_pex(xxx xxx xxx) ... endmodule include I_pex.netlist?概括來說就是:Verilog格式的網表調用spectre格式的網表。
?筆者目前使用的cadence版本中,deep probe不支持probe這種形式的內部節點。為解決這個問題,需要將I_pex.netlist中需要探測的節點做成端口,在頂層的top_testbench中增加一根線來連接到I_pex.netlist中新增的端口。
?例如要觀測I_pex.netlist中的test001節點,此時需要在I_pex.netlist中手動增加一個test001端口,再將上述網表改為:
module top_testbench: port: wire test001; I0 I1 ... I_pex(xxx xxx xxx test001) ... endmodule include I_pex.netlist?此時,deepprobe即可探測test001節點的電壓。
總結
以上是生活随笔為你收集整理的virtuoso配合calibre进行电路后仿真的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大学计算机基础发送邮件,东南大学《大学计
- 下一篇: 驳《寒门再难出贵子》——谁说寒门大学生没