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