同一個電路,進(jìn)行PVT仿真可以用ADEXL來實現(xiàn),但多個不同電路的批量仿真有什么好的辦法呢?前段時間就遇到了這樣一個棘手的問題,也是關(guān)于仿真的。有一個TOP電路,其系統(tǒng)工作模式的組合約有22種。我當(dāng)然可以搭建22個Testbench,使用ADEL對每個環(huán)境進(jìn)行仿真分析。但這樣做精力比較分散,且同時開很多ADEL很容易讓我混亂。還因為我決定不使用cadence的圖形化窗口界面,開22個標(biāo)簽簡直沒眼看。所以從心理上不愿意用這種方式。于是,經(jīng)過探索找到了下面的辦法,解決了這個問題。
(1)首先調(diào)通一種模式,導(dǎo)出input.scs的仿真文本。此后的后續(xù)一切步驟都是基于該input.scs文本的;
(2)分離input.scs中的公共部分成一個個獨立文件,然后用include的方式包含進(jìn)來。這些公共部分包括:netist、savefile、Lib等。這么做主要是為了簡化仿真文件,且之后萬一修改netlist和savefile的話只需要修改一個文件。
Note:netlist為頂層電路的網(wǎng)表;savefile為需要保存的信號文件。最終將得到一種模式下的仿真文件
(3)基于第2步的仿真文件,在其基礎(chǔ)上進(jìn)行外部激勵修改,陸續(xù)得到其他21個仿真文件。至此已經(jīng)得到全部22個仿真文件了。當(dāng)然每一個文件都是可獨立運行的,現(xiàn)在的問題是怎樣一鍵運行所有的仿真文件。
(4)建立一個runSimulation的可執(zhí)行文件,在其中依次寫下22個仿真文件的運行指令,比如下面那樣,當(dāng)然這是最簡單的運行指令 。
// runSimulation,command:
spectre input1.scs
spectre input2.scs
spectre input3.scs
。。。。。。
(5)檢查運行指令,建議在指令中包含psf文件的具體存儲位置。這樣做的目的是呈現(xiàn)出一個清晰可讀的設(shè)計目錄,讓結(jié)果和仿真文件一一對應(yīng)。
Note: 意外之喜,runSimulation中的指令是并行執(zhí)行的。
寫在最后:
方法是普通的,但探索的過程還是有點曲折的,還好沒有卡住太久。這種方法第四步的建立可執(zhí)行文件的作為最關(guān)鍵的一步,可以說是一個巧合,還好結(jié)果是好的。
在找出建立可執(zhí)行文件運行指令的方法之前,其實已經(jīng)讓PYLI兄寫了個簡單的Sheel腳本,寥寥幾句指令完全可以解決問題。但是我感覺可以用模擬人員擅長的方式來解決這個問題,只是我還沒有找到辦法而已。還好,源于那個巧合,還是找到了辦法。這可能是模擬人員的執(zhí)著吧,最終還是用了自己的方法。
我一直覺得仿真文本有三個對我來說很大的優(yōu)點:
簡介,不用開很多GUI;
方便,可一鍵執(zhí)行操作;
獨立,每個文件可獨立執(zhí)行
審核編輯:黃飛
-
指令
+關(guān)注
關(guān)注
1文章
607瀏覽量
35692 -
仿真電路
+關(guān)注
關(guān)注
5文章
82瀏覽量
33292 -
PVT
+關(guān)注
關(guān)注
0文章
13瀏覽量
3926
發(fā)布評論請先 登錄
相關(guān)推薦
評論