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

反激電路工作原理和如何進行反激電路變壓器的設計詳細方法說明

單端反激式開關電源RCD反激鉗位電路設計方法

評論