IC數字前端設計開發28 (vcs常用模擬選項)
來自:https://blog.csdn.net/bcs_01/article/details/79803304?utm_source=blogxgwz6
VCS的模擬選項分編譯(compile-time)選項和執行(run-time)選項。
1.1 VCS常用的編譯選項
表 21 VCS常用的編譯選項
選項 |
說明 |
-assert dumpoff |enable_diag | filter_past |
定義SystemVerilog斷言(SVA) dumpoff:禁止將SVA資訊DUMP到VPD中 enable_diag:使能SVA結果報告由執行選項進一步控制 filter_past:忽略$past中的子序列 |
-cm <options> |
指定覆蓋率的型別,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。 如果包括兩種或以上的覆蓋率型別,可用“+”,如-cm line+cond+fsm+tgl |
-cm_assert_hier <filename> |
將SVA覆蓋率統計限定在檔案列表中指定的module層次。 |
-cm_cond <arguments> |
進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
-cm_count |
在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
-cm_dir <directory_path_name> |
指定覆蓋率統計結果的存放路徑,預設是simv.cm |
-cm_hier <filename> |
指定覆蓋率統計的範圍,範圍在檔案中定義,可以指定module名、層次名和原始檔等。 |
-cm_log <filename> |
指定模擬過程中記錄覆蓋率的log檔名 |
-cm_name <filename> |
指定儲存覆蓋率結果的文字檔案的名稱 |
-cm obc |
使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設定觀察點,一定程度上將程式碼行覆蓋率與功能正確性關聯起來。 |
-comp64 |
在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行檔案用於32-bit模式模擬 |
-debug 或 -debug_all |
使能UCLI命令列 |
-e <new_name_for_main> |
指定PLI應用時main()程式的名稱 |
-f <filename> |
指定檔案列表的檔名,檔案中可包括原始碼檔案的路徑和名稱,也可以包括編譯選項引數 |
-file filename |
類似於-f,但檔案內容更靈活,可以包含PLI選項和物件檔案,可以使用轉義字元等 |
-full64 |
在64-bit模式下編譯,生成64-bit模式模擬的可執行檔案 |
-h or -help |
列舉常用的編譯選項和執行選項的引數 |
-I |
互動模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支援VirSim後處理模式下生成VCD+檔案。 |
-ID |
顯示及其的hostid或dongle ID |
-ignore <keyword_argument> |
遮蔽SV中unique/priority型的if或case語句的告警資訊,引數包括:unique_checks、priority_checks、all。 |
-j<number_of_processes> |
設定並行編譯的程序數,“j”後面沒有空格 |
-l <filename> |
指定記錄VCS編譯和執行資訊的log檔名 |
-line |
使能VriSim中的單步執行 |
-lmc-swift |
使能LMC SWIFT介面 |
-Mdir=<directory> |
指定一個目錄讓VCS儲存編譯產生的檔案,預設是csrc |
-Mlib=<directory> |
指定一個目錄讓VCS搜尋某個模組是否需要重新編譯。 與-Mdir配合,可以實現不同模組的增量編譯。 |
-Mmakeprogram=<program> |
指定用於make物件的程式,預設是make |
-Mupdate[=0] |
預設情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
-noIncrComp |
關閉增量編譯 |
-notice |
顯示詳細的診斷資訊 |
-ntb |
使能ntb(Native TestBench),支援OpenVera驗證平臺語言結構。 |
-o <name> |
指定編譯生成的可執行檔案的名稱,預設是simv |
-timescale=<time_unit>/<time_precision> |
原始碼檔案中有的包括`timescale編譯指令,有的不包括,如果在VCS命令列中,不包括`timescale的原始碼檔案在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的原始檔指定timescale |
-override_timescale=<time_unit>/<time_precision> |
讓原始檔統一使用指定的timescale |
-P <pli.tab> |
指定PLI表文件 |
-pvalues+<parameter_name>=<value> |
改變指定引數的值 |
-parameters <filename> |
通過檔案的方式改變引數的值,引數的路徑和改變的值均在檔案中定義 |
-q |
安靜模式,遮蔽VCS的編譯資訊 |
-R |
在編譯之後立即執行產生的可執行檔案 |
-s |
剛開始模擬時即停止,一般與-R和+cli配合使用 |
-V |
使能verbose模式 |
-v <filename> |
指定verilog庫檔案 |
-y <dir_pathname> |
指定verilog庫路徑 |
+libext+<extension> |
讓VCS在verilog庫路徑下搜尋指定的副檔名檔案,與-y配合 |
-vera |
指定標準的Vera PLI表文件和物件庫 |
+acc+1|2|3|4 |
使能PLI中的ACC(PLI 1.0的一種方式) |
+cli+[<module_name>=]1|2|3|4 |
使能CLI除錯功能 |
+autoprotect[<file_suffix>] |
生成一個加密的原始檔 |
+protect[<file_suffix>] |
生成一個加密的原始檔,只加密`protect/`endprotect部分 |
+putprotect+<target_dir> |
指定加密檔案存放的目錄 |
+csdf+precompile |
在VCS編譯原始碼時預先SDF檔案 |
+define+<macro_name>=<value> |
定義一個文字巨集,與原始檔中的`ifdef配合 |
+error+<n> |
將編譯時執行的NTB錯誤增加到N |
+incdir+<directory> |
指定VCS搜尋`include指令使用的包含檔案的目錄,可以用“+”定義多個目錄。 |
+maxdelays |
使用SDF檔案中的max值 |
+mindelays |
使用SDF檔案中的min值 |
+typdelays |
使用SDF檔案中的typ值 |
+nbaopt |
刪除非阻塞賦值語句中的延時 |
+neg_tchk |
使能時序檢查中的負延時 |
+nospecify |
遮蔽specify塊中的路徑延時和時序檢查 |
+notimingcheck |
遮蔽specify塊中的時序檢查 |
+nowarnTFMPC |
遮蔽編譯時的“Too few module port connections”告警資訊 |
+no_notifier |
遮蔽一些時序檢查系統任務中定義的notifier暫存器的翻轉(toggling),但不影響時序violation的報告 |
+no_tchk_msg |
遮蔽時序檢查的告警資訊,但不關閉時序檢查時notifier暫存器的翻轉(toggling) |
+optconfigfile+<filename> |
指定Radiant技術和二態模擬用到的配置檔名 |
+prof |
讓VCS在模擬過程中生成一個vcs.prof檔案,記錄設計中最耗CPU時間的module、層次和verilog結構 |
+race |
讓VCS在模擬過程中生成一個race.out檔案,記錄設計中所有的競爭冒險 |
+radincr |
增量編譯時使能Radiant技術 |
+sdf_nocheck_celltype |
SDF反標時不檢查SDF檔案中的CELLTYPE的一致性 |
+sdfverbose |
顯示SDF反標時的詳細告警和錯誤資訊 |
+v2k |
支援Verilog-2001標準 |
+vc[+abstract][+allhdrs][+list] |
使用DirectC介面時,使能verilog直接呼叫C/C++函式 |
+vcs+flush+log |
加速編譯模擬時log檔案快取的重新整理頻率 |
+vcs+flush+all |
+vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
+vcs+initmem+0|1|x|z |
初始化設計中所有儲存器的值 |
+vcs+initreg+0|1|x|z |
初始化設計中所有暫存器的值 |
+vcs+lic+wait |
一直等待license |
+vpi |
使能VPI |
+warn=[no]ID|none|all,... |
使能或關閉告警資訊 |
1.2 VCS常用的執行選項
表 22 VCS常用的執行選項
選項 |
說明 |
-a <filename> |
將模擬顯示的log資訊附件在指定檔案尾部 |
-E <program> |
執行指定的程式用來顯示生成simv可執行檔案時VCS使用的編譯選項 |
-i <filename> |
指定一個VCS執行模擬時包含CLI命令的檔案,一般與-ucli配合 |
-k <filename> | off |
指定一個檔案,用來記錄VCS模擬過程中的CLI和VirSim互動命令,預設是vcs.key,off選項是關閉記錄。 |
-sverilog |
支援SystemVerilog |
-ucli |
使能UCLI命令 |
-vcd <filename> |
指定VCD波形檔名,預設是verilog.dump,會被原始碼檔案中的$dumpfile覆蓋 |
+vcs+learn+pli |
追蹤當前模擬的ACC選項,記錄在pli_learn.tab檔案中,下次模擬時可以用+applylearn來重新編譯。 |
+vcs+nostdout |
關閉所有$monitor和$display的文字輸出,但依然會記錄在-l的log檔案中。 |
+vera_load=<filename.vro> |
定義Vera物件檔案 |
+vera_mload=<filename> |
定義一個包括多個Vera物件檔案的文字檔案 |
1.3 VCS除錯模式常用選項
表 23 VCS常用的除錯模式選項
選項 |
說明 |
-RI |
編譯完成之後馬上啟動VirSim,進入互動模式 |
-RIG |
不編譯,啟動VirSim使用已有的可執行檔案,進入互動除錯模式。 |
+sim+<simv_name> |
指定使用的可執行檔名,與-RIG配合 |
-RPP |
執行後處理(Post-Processing)模式:啟動VirSim,使用VCD+檔案 |
-PP |
支援在原始碼檔案中呼叫$vcdpluson生成VPD檔案 |
+cfgfile+<filename> |
定義一個VCS使用的已建好的場景配置檔案 |
+vslogfile[+<filename>] |
儲存一個VirSim命令的log檔案,預設是VirSim.log |