最近剛做完的一個項目就是這樣的情況。這個項目是一款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 參數文本的一個示例
審核編輯:黃飛
-
電壓
+關注
關注
45文章
5637瀏覽量
116257 -
仿真器
+關注
關注
14文章
1019瀏覽量
83935 -
電源電壓
+關注
關注
2文章
991瀏覽量
24091
發布評論請先 登錄
相關推薦
評論