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