前段時間,一個朋友聊敘到這個后仿真任務命令都咋用,隨即整理了下,可以完成基本的后仿真不成問題,但是如果還要完成一些其他的幺蛾子,那就需要各位仔細研讀各工具的UserGuide了。下文如果覺得有幫助,煩請“三連”,當然加雞腿也是可以的。。。哈哈哈,開玩笑了,只要對需要的人有用即可。
后仿真時,需要使用sdf對網(wǎng)表記性反標,即對網(wǎng)表中的時序信息記性“替換”,本文將示例常用的時序反標方法和一些EDA工具反標方法。
1 采用SystemVerilog(Verilog)系統(tǒng)任務
SystemVerilog和Verilog中在過程塊中使用系統(tǒng)任務$sdf_annotate實現(xiàn)sdf文件對于網(wǎng)表的反標,其使用格式如下:
$sdf_annotate(sdf_file,module_instance,”config_file”,”log_file”,”mtm_spec”,”scale_factors”,”scale_type”);
其中各參數(shù)的主要意義如下:
sdf_file:指定要使用的sdf文件;
module_instance:指定sdf文件要反標的設(shè)計層次,需要注意的是此時指定的是例化名而非模塊名。同時該參數(shù)本身是可選擇的,默認實例名為調(diào)用$sdf_annotate所在模塊的實例名(注意頂層模塊名與實例名相同,可參閱《【168】仿真時為什么頂層不例化》);
config_file:指定進行反標時一些詳細的反標控制信息,該選項可選,一般不指定,詳細看參考各EDA工具幫助手冊;
log_file:指定保存反標過程中產(chǎn)生的log信息文件名,該選項可選,建議指定,以方便查閱反標過程中的信息;
mtm_spec:指定反標的時序類型,也是可選項,反標常用類型主要有下表幾種。
關(guān)鍵字 | 說明 |
MAXMIN | 反標時選用最大延遲值 |
MINIMUM | 反標時選用最小延遲值 |
TOOL_CONTROL(默認) | 默認值,由仿真工具指定 |
TYPICAL | 反標時選用典型值 |
這里需要注意,該參數(shù)為字符串類型,所以在任務中指定表格中的參數(shù)時需要給對應的關(guān)鍵字加上雙引號。
scale_factors:指定最大延遲、最小延遲和典型延遲值的縮放因子,該選項也是可選的,一般情況下也不指定。該參數(shù)可以實現(xiàn)對于反標值的縮放,默認值為1.01.0,當然也可以指定不同的值,實現(xiàn)延遲值的不同縮放比例,例如,scale_factors設(shè)置為“1.2:1.3:1.4”,此時sdf中指定的反標值為“24”,那么實際反標給網(wǎng)表的值為“1.2*21.4*4”,即此時的實際反標值為“2.45.6”;
scale_type:該參數(shù)也屬于可選項,用于指定縮放因子具體作用的延遲值,指定該參數(shù)后,confg_file中指定的配置文件中的SCALE_TYPE將會被覆蓋掉,該參數(shù)可以指定的關(guān)鍵字如下表所示。
關(guān)鍵字 | 說明 |
FROM_MAXMIN | 縮放因子僅作用于最大延遲值 |
FROM_MINIMUM | 縮放因子僅作用于最小延遲值 |
FROM_MTM(默認) | 縮放因子作用于min/typ/max |
FROM_TYPICAL | 縮放因子僅作用于典型值 |
【示例】
其中第二個參數(shù)top_tb是要反標模塊的例化名,一般從頂層開始寫起。個人比較推薦使用該方法,因為該方法不依賴于具體的EDA工具,而下述的方法依賴于具體的EDA工具,也因此,這些依賴于具體工具的命令不能復用。
2 EDA工具反標
因為反標操作是發(fā)生在析構(gòu)(elaboration)階段完成的,所以可以在工具的析構(gòu)階段增加對應的參數(shù)實現(xiàn)反標操作。下面將針對Synopsys的VCSMX和Cadence的NCSIM進行示例說明。
2.1 VCSMX(Synopsys)
2.1.1命令行
在析構(gòu)命令中增加如下參數(shù)選項,可以實現(xiàn)指定層次和sdf的反標,具體格式如下:
-sdf min|typ|maxfile_sdf
注意其中min、typ和max是可選的,根據(jù)需要指定。
【示例】
【反標信息】
2.1.2 預編譯方式
上面在析構(gòu)命令中直接指定反標層次和sdf文件的方式存在一個問題,那就是如果我們的設(shè)計代碼進行了修改,但是sdf文件并沒有修改,此時如果編譯完后,在析構(gòu)的時候還要再進行一次sdf文件的解析反標,將會比較耗費時間,為此,一般的EDA工具都提供了另外一種反標方式,即對sdf文件進行預編譯,如果sdf文件并沒有修改,僅設(shè)計文件進行修改,此時就可以采用sdf預編譯方式,具體操作步驟如下示例。
【示例】
【反標信息一】在系統(tǒng)任務$sdf_annotate中添加要使用的已經(jīng)預編譯的反標文件
【反標信息二】在析構(gòu)命令中加入已經(jīng)預編譯的反標文件,大家可以仔細觀察下兩者差異。
另外,在VCSMX中,還可以指定sdf預編譯生成文件的保存路徑,指定方式如下:
2.2 NCSIM
在NCSIM中使用較多的反標方式除了調(diào)用$sdf_annotate之外,就是采用命令文件的方式,其主要特點也是將sdf的編譯與設(shè)計的編譯分開,將sdf單獨編譯,在析構(gòu)時再指定已經(jīng)編譯好的sdf文件,其具體操作如下示例。
【示例】
反標信息同上,此處不再贅述。另外,如果使用nc的64模式進行仿真,那么在編譯析構(gòu)命令中加上“-64bit”即可。
當然上述EDA工具對應的各種命令還有很多對應的參數(shù),想了解的朋友可以參考對應工具的UserGuide,示例中僅是一些基本設(shè)置項,大家可以根據(jù)需要記性調(diào)整。
審核編輯:湯梓紅
-
仿真
+關(guān)注
關(guān)注
50文章
4124瀏覽量
134008 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110401 -
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
37080 -
eda
+關(guān)注
關(guān)注
71文章
2788瀏覽量
173881 -
時序
+關(guān)注
關(guān)注
5文章
392瀏覽量
37430
原文標題:常用的后仿真絕絕子---(VCSMX&NCSIM)
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論