INNOVUS/ICC吐出的netlist經過Formal/LEC驗證后,Star-RC/QRC抽取RC寄生參數文件並讀入到Tempus/PT分別做func/mbist/scan時序sign-off,寫出SDF3.0用以后仿真,搭建后仿真的驗證環境,添加sc/io/macro的verilog model,仿真輸出VCD給Redhawk/Voltus做功耗/IR Drop分析。本文簡要敘述下后仿真要點:
請關注下面公眾號:全棧芯片工程師
http://weixin.qq.com/r/0jgYHZDEXlgiKNR_b21W (二維碼自動識別)
(一) VCS選項,主要介紹幾個關鍵選項。
1)-debug選項,為了導出VPD通常選擇-debug_pp;
2)-negdelay,支持SDF中的負延時;
3)-ssf自動加載fsdb;
4)-ucli模式,在-debug模式下才使能;
5)+neg_tchk,支持負延時檢查;
6)+nospecify/+notimingcheck,忽略path delay和specify延時;
7)+delay_mode_zero,去除仿真中的延遲信息,所有的延時為0;
(二)SDF annotated
$sdf_annotate ([sdf_file], top.U_DIGITAL_TOP, [sdf_configfile], [sdf_logfile],[mtm_spec], [scale_factors], [scale_type]);
- sdf_file指定時序簽核輸出的sdf文件及其路徑;
- sdf_configfile”指定sdf配置文件,一般缺省;
- sdf_logfile指定sdf的log生成文件,該文件會保存VCS在運行過程中產生的Error和Warning信息。為了規VCS默認情況下不會記錄超過10個以上的error信息/warning信息到log文件,可通過+sdfverbose選項來開啟VCS記錄所有信息;
- mtm_spec指定VCS反標哪一類延遲信息。可以使用MINIMUM,TYPICAL,MAXIMUM,TOOL_CONTROL(default);
- scale_factors指定minimum,typical,maximum延遲的因子。默認值是“1.0:1.0:1.0”
- scale_type指定在縮放比例之前使用的SDF 文件里面延遲值,可能的值有“FROM_TYPICAL”,”FROM_MIMINUM”,”FROM_MAXIMUM”,”FROM_MTM”(默認值),一般缺省;
(三)初始化寄存器的值(不常用)
設置寄存器初始值文件:
#init0_regs.ucli
force -deposit tb.U_DIGITAL.reg_A 0
在仿真的零時刻用下面的方式加載這個文件
ucli% source ./init0_regs.ucli
(四)關某些寄存器的時序檢查(常用)
#notiming.list
instance { tb.U_TOP.reg} { noTiming };
在仿真的時候加載這個文件,避免引起X態傳遞。
VCS +optconfigfile+notiming.list
(五)導出VCD文件
VCD是不壓縮的文本格式,兼容性好,缺點是文件太大。后仿先寫出高壓縮比的FSDB文件,再轉成VCD。可指定轉換起止時間、結束時間。
fsdb2vcd xxx.fsdb -o xxx.vcd -bt 1000ns -et 2000ns
ISP處理后仿效果
關注微信公眾號
請關注下面公眾號:全棧芯片工程師
http://weixin.qq.com/r/0jgYHZDEXlgiKNR_b21W (二維碼自動識別)
附錄:
前言:下表所列為VCS常用的Command。
常用的編譯選項
No. | 命令 | 描述 |
1 | +define+<macro_name>=<value> | 命令行進行宏定義,在代碼中使用了`ifdef 編譯指令 |
2 | +mindelays | 器件延時使用sdf 文件中的最小值(sdf 文件中的時序(min:typ:max)) |
3 | +maxdelays | 器件延時使用sdf 文件中的最大值 |
4 | –v <filename> | 導入庫文件的verilog 模型(只編譯使用到的module),-v 在verdi 中無法trace,被當作一個器件,不能追蹤到內部Module 查找路徑,在添加module 時,會在此目錄下查找,當編譯某文件,如果里面有例化某個module,則會編譯這個文件下的內容 |
5 | -y < directory > | Module 查找路徑,在添加module 時,會在此目錄下查找,當編譯某文件,如果里面有例化某個module,則會編譯這個文件夾下的內容與-v 功能差不多,一個是指定文件,一個是指定文件夾 |
6 | +incdir+directory+ | 指定VCS 搜索`include 內文件的目錄 |
7 | -full64 | 支持64 位模式運行 |
8 | -R | 編譯完后立刻運行 |
9 | –sverilog | 支持systemverilog 語法(vcs 用,verid 用-sv) |
10 | +v2k | 支持verilog 2001 特性 |
11 | -lca | Limited Customer Availability,支持動態數據類型associative Array,dynamic Array,smart Queue,string, event,class |
12 | –debug_all | 支持所有debug 操作,DVE 選項,可以查看所有斷點(line,time,value,event etc) all 就是加權限。+w 是寫,+r 是讀,+f 是force, +l 是支持ucli 的單步調試, +n 是對網表操作。具體可以看手冊。+all 就是把所有的權限全開 |
13 | –debug_acess+all | 在VCS 編譯的時候不用再加-p novas.tab pli.a 來定verdi 的路徑。直接在simv 的ucli 腳本里面call $fsdbdumpfile想dump vpd 的時候至今換dump file XXX不用重新編譯。版本有差異 |
14 | –fsdb | 調用Verdi PLI 庫,支持fsdb 波形 |
15 | +vcs+lic+wait | 等待vcs license |
16 | +plusarg_save | 將某些runtime options 加入到編譯中,源代碼中存在$test$plusargs(“name”),如果字符匹配則為真,反之為例:在tc 中有代碼if($test$plusargs(“testcase0”)) $在Makefile 命令中加入make testcase0,則if 為真,打印 |
17 | +libext+ | 在庫目錄內搜索指定后綴名文件進行編譯 |
18 | +verilog2001ext+ | Specifies a file name extension for Verilog2001 source file |
19 | +systemverilogext+ | Specifies a file name extension for SystemVerilog source file |
20 | +warn=[no]ID|none|all… | 打開或關閉warning 信息 |
21 | +optconfigfile+<filename> | 定義VCS 配置文件,第一級同步寄存器不檢查看用一個文件輸入 |
22 | -o name | 指定運行文件名稱 |
23 | -Mdir=directory_path | 指定增量編譯的目錄(默認為csrc) |
24 | -l sim | log 生成指定log 文件 |
25 | +ntb_random_seed=value | 指定仿真隨機種子 |
26 | +ntb_random_seed_automatic | VCS 自動生成隨機種子 |
27 | -timescale=1ns/10ps | 命令行定義仿真時間刻度,若rtl 中有timescale 的定義,則會覆蓋makefile 中的定義 |
28 | –override_timescale=1ns/10ps | 覆蓋源代碼中的仿真時間單位和精度,最好別用,否則會把模型的時間單位覆蓋,可能導致模型功能錯誤 |
29 | -pvalue+tb_top.CYCLE=value | 對指定參數進行賦值-pvalue+tb_top.CYCLE=${period} , 那么在命令行就可以使用vcs xxx period=yy 來改變CYCLE |
30 | –sv | 支持systemverilog 語法(verdi 有此配置,vcs 沒有) |
31 | –ssf | 自動加載fsdb 文件 |
32 | +neg_tchk | 負延遲檢查,P&R 后仿需要加上此選項, |
33 | +delay_mode_zero | 去除仿真中的延遲信息,所有的延時為0,當使用了此選項,specify 中的$setup()檢測失敗,似乎把specparam 設置的變量改為0 了 |
34 | -notimingcheck | 忽略仿真中的時序檢查,會忽略specify 語句中的檢查,小心使用,有些模擬如flash 的時序檢查是通過specify 語句來實現,如果使用了,則無法check時序Specify 里面的內容不起作用,相當於0 延時和不做時序檢查 |
35 | +maxdelays | 選擇sdf 文件中的max 延遲信息 |
36 | +overlap | SDF 反標后的精確時序檢查 |
37 | +sdfverbose | 打印出詳細的SDF 反標信息,超過10 個warning \error, |
38 | –negdelay | 允許sdf 文件中iopath 和interconnect 的負延時反標,Pr 后仿需要加上此選項,很多工藝庫的holdtime 為負值 |
39 | -cm line+tgl+cond+fsm | 指定覆蓋率類型 |
40 | -cm_dir directory_path (default: simv.cm | 指定覆蓋率文件名字和路徑 |
41 | -cm_hier vcm.cfg (+tree tb_top dut) | 保存模塊的層次信息 |
42 | -cm_name test_name | 定義覆蓋率報告文件名 |
43 | –cm_log | 指定覆蓋率log 文件名 |
44 | -assert | 定義支持斷言 |
45 | +delay_mode_path | 模塊的延時使用路徑延時 |
46 | +delay_mode_distributed | 模塊的延時使用分布延時,對於分布延時,只要脈沖寬度小直接過濾掉(針對慣性延時) |
47 | +delay_mode_unit | 模塊的延時使用所有時間精度中的最小值,specify 中的延遲不起作用,#后的所有數字變為1,單位使用最小精度,所有timescale 中的最小精度用於Tmax 產生的atpg 驗證平台不帶時序仿真Enables simulation of TetraMAX’s testbench in zero delay mode |
48 | +delay_mode_zero | 模塊的延時使用0 延時,不指定延時模式時,vcs 使用路徑延時和分布延時中的最大值 |
49 | +loopreport | 高版本vcs 會報loop |
50 | +race | 自動產生race.out 文件,列出競爭 |
51 | +cli+1,2,3 | 使用ucli 模式,一般為3,默認模式 |
52 | -ucli | 仿真時,進入ucli 交互模式 |
No. | 命令 | 描述 |
1 | +define+<macro_name>=<value> | 命令行進行宏定義,在代碼中使用了`ifdef 編譯指令 |
2 | +mindelays | 器件延時使用sdf 文件中的最小值(sdf 文件中的時序(min:typ:max)) |
3 | +maxdelays | 器件延時使用sdf 文件中的最大值 |
4 | –v <filename> | 導入庫文件的verilog 模型(只編譯使用到的module),-v 在verdi 中無法trace,被當作一個器件,不能追蹤到內部Module 查找路徑,在添加module 時,會在此目錄下查找,當編譯某文件,如果里面有例化某個module,則會編譯這個文件下的內容 |
5 | -y < directory > | Module 查找路徑,在添加module 時,會在此目錄下查找,當編譯某文件,如果里面有例化某個module,則會編譯這個文件夾下的內容與-v 功能差不多,一個是指定文件,一個是指定文件夾 |
6 | +incdir+directory+ | 指定VCS 搜索`include 內文件的目錄 |
7 | -full64 | 支持64 位模式運行 |
8 | -R | 編譯完后立刻運行 |
9 | –sverilog | 支持systemverilog 語法(vcs 用,verid 用-sv) |
10 | +v2k | 支持verilog 2001 特性 |
11 | -lca | Limited Customer Availability,支持動態數據類型associative Array,dynamic Array,smart Queue,string, event,class |
12 | –debug_all | 支持所有debug 操作,DVE 選項,可以查看所有斷點(line,time,value,event etc) all 就是加權限。+w 是寫,+r 是讀,+f 是force, +l 是支持ucli 的單步調試, +n 是對網表操作。具體可以看手冊。+all 就是把所有的權限全開 |
13 | –debug_acess+all | 在VCS 編譯的時候不用再加-p novas.tab pli.a 來定verdi 的路徑。直接在simv 的ucli 腳本里面call $fsdbdumpfile想dump vpd 的時候至今換dump file XXX不用重新編譯。版本有差異 |
14 | –fsdb | 調用Verdi PLI 庫,支持fsdb 波形 |
15 | +vcs+lic+wait | 等待vcs license |
16 | +plusarg_save | 將某些runtime options 加入到編譯中,源代碼中存在$test$plusargs(“name”),如果字符匹配則為真,反之為例:在tc 中有代碼if($test$plusargs(“testcase0”)) $在Makefile 命令中加入make testcase0,則if 為真,打印 |
17 | +libext+ | 在庫目錄內搜索指定后綴名文件進行編譯 |
18 | +verilog2001ext+ | Specifies a file name extension for Verilog2001 source file |
19 | +systemverilogext+ | Specifies a file name extension for SystemVerilog source file |
20 | +warn=[no]ID|none|all… | 打開或關閉warning 信息 |
21 | +optconfigfile+<filename> | 定義VCS 配置文件,第一級同步寄存器不檢查看用一個文件輸入 |
22 | -o name | 指定運行文件名稱 |
23 | -Mdir=directory_path | 指定增量編譯的目錄(默認為csrc) |
24 | -l sim | log 生成指定log 文件 |
25 | +ntb_random_seed=value | 指定仿真隨機種子 |
26 | +ntb_random_seed_automatic | VCS 自動生成隨機種子 |
27 | -timescale=1ns/10ps | 命令行定義仿真時間刻度,若rtl 中有timescale 的定義,則會覆蓋makefile 中的定義 |
28 | –override_timescale=1ns/10ps | 覆蓋源代碼中的仿真時間單位和精度,最好別用,否則會把模型的時間單位覆蓋,可能導致模型功能錯誤 |
29 | -pvalue+tb_top.CYCLE=value | 對指定參數進行賦值-pvalue+tb_top.CYCLE=${period} , 那么在命令行就可以使用vcs xxx period=yy 來改變CYCLE |
30 | –sv | 支持systemverilog 語法(verdi 有此配置,vcs 沒有) |
31 | –ssf | 自動加載fsdb 文件 |
32 | +neg_tchk | 負延遲檢查,P&R 后仿需要加上此選項, |
33 | +delay_mode_zero | 去除仿真中的延遲信息,所有的延時為0,當使用了此選項,specify 中的$setup()檢測失敗,似乎把specparam 設置的變量改為0 了 |
34 | -notimingcheck | 忽略仿真中的時序檢查,會忽略specify 語句中的檢查,小心使用,有些模擬如flash 的時序檢查是通過specify 語句來實現,如果使用了,則無法check時序Specify 里面的內容不起作用,相當於0 延時和不做時序檢查 |
35 | +maxdelays | 選擇sdf 文件中的max 延遲信息 |
36 | +overlap | SDF 反標后的精確時序檢查 |
37 | +sdfverbose | 打印出詳細的SDF 反標信息,超過10 個warning \error, |
38 | –negdelay | 允許sdf 文件中iopath 和interconnect 的負延時反標,Pr 后仿需要加上此選項,很多工藝庫的holdtime 為負值 |
39 | -cm line+tgl+cond+fsm | 指定覆蓋率類型 |
40 | -cm_dir directory_path (default: simv.cm | 指定覆蓋率文件名字和路徑 |
41 | -cm_hier vcm.cfg (+tree tb_top dut) | 保存模塊的層次信息 |
42 | -cm_name test_name | 定義覆蓋率報告文件名 |
43 | –cm_log | 指定覆蓋率log 文件名 |
44 | -assert | 定義支持斷言 |
45 | +delay_mode_path | 模塊的延時使用路徑延時 |
46 | +delay_mode_distributed | 模塊的延時使用分布延時,對於分布延時,只要脈沖寬度小直接過濾掉(針對慣性延時) |
47 | +delay_mode_unit | 模塊的延時使用所有時間精度中的最小值,specify 中的延遲不起作用,#后的所有數字變為1,單位使用最小精度,所有timescale 中的最小精度用於Tmax 產生的atpg 驗證平台不帶時序仿真Enables simulation of TetraMAX’s testbench in zero delay mode |
48 | +delay_mode_zero | 模塊的延時使用0 延時,不指定延時模式時,vcs 使用路徑延時和分布延時中的最大值 |
49 | +loopreport | 高版本vcs 會報loop |
50 | +race | 自動產生race.out 文件,列出競爭 |
51 | +cli+1,2,3 | 使用ucli 模式,一般為3,默認模式 |
52 | -ucli | 仿真時,進入ucli 交互模式 |
VCS常用的編譯選項
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
編號 | 選項 | 說明 |
1 | -assert dumpoff | enable_diag | filter_past | 定義SystemVerilog斷言(SVA)dumpoff:禁止將SVA信息DUMP到VPD中enable_diag:使能SVA結果報告由運行選項進一步控制filter_past:忽略$past中的子序列 |
2 | -cm <options> | 指定覆蓋率的類型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態機覆蓋)、tgl(翻轉率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。如果包括兩種或以上的覆蓋率類型,可用“+”,如-cm line+cond+fsm+tgl |
3 | -cm_assert_hier <filename> | 將SVA覆蓋率統計限定在文件列表中指定的module層次。 |
4 | -cm_cond <arguments> | 進一步細化條件覆蓋率的統計方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項。 |
5 | -cm_count | 在統計是否覆蓋的基礎上,進一步統計覆蓋的次數 |
6 | -cm_dir <directory_path_name> | 指定覆蓋率統計結果的存放路徑,默認是simv.cm |
7 | -cm_hier <filename> | 指定覆蓋率統計的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
8 | -cm_log <filename> | 指定仿真過程中記錄覆蓋率的log文件名 |
9 | -cm_name <filename> | 指定保存覆蓋率結果的文本文件的名稱 |
10 | -cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統的覆蓋率跟功能的正確性毫無關聯,可觀察覆蓋率通過設置觀察點,一定程度上將代碼行覆蓋率與功能正確性關聯起來。 |
11 | -comp64 | 在64-bit模式下對設計進行編譯,並生成32-bit格式的可執行文件用於32-bit模式仿真 |
12 | -debug 或 -debug_all | 使能UCLI命令行 |
13 | -e <new_name_for_main> | 指定PLI應用時main()程序的名稱 |
14 | -f <filename> | 指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱,也可以包括編譯選項參數 |
15 | -file filename | 類似於-f,但文件內容更靈活,可以包含PLI選項和對象文件,可以使用轉義字符等 |
16 | -full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執行文件 |
17 | -h or -help | 列舉常用的編譯選項和運行選項的參數 |
18 | -I | 交互模式的編譯,讓VCS自動包括+cli,-P virsims.tab選項,並支持VirSim后處理模式下生成VCD+文件。 |
19 | -ID | 顯示及其的hostid或dongle ID |
20 | -ignore <keyword_argument> | 屏蔽SV中unique/priority型的if或case語句的告警信息,參數包括:unique_checks、priority_checks、all。 |
21 | -j<number_of_processes> | 設定並行編譯的進程數,“j”后面沒有空格 |
22 | -l <filename> | 指定記錄VCS編譯和運行信息的log文件名 |
23 | -line | 使能VriSim中的單步運行 |
24 | -lmc-swift | 使能LMC SWIFT接口 |
25 | -Mdir=<directory> | 指定一個目錄讓VCS存儲編譯產生的文件,默認是csrc |
26 | -Mlib=<directory> | 指定一個目錄讓VCS搜索某個模塊是否需要重新編譯。與-Mdir配合,可以實現不同模塊的增量編譯。 |
27 | -Mmakeprogram=<program> | 指定用於make對象的程序,默認是make |
28 | -Mupdate[=0] | 默認情況下,VCS編譯時會覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進行增量編譯,並覆蓋上次的makefile。 |
29 | -noIncrComp | 關閉增量編譯 |
30 | -notice | 顯示詳細的診斷信息 |
31 | -ntb | 使能ntb(Native TestBench),支持OpenVera驗證平台語言結構。 |
32 | -o <name> | 指定編譯生成的可執行文件的名稱,默認是simv |
33 | -timescale=<time_unit>/<time_precision> | 源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會停止編譯。使用-timescale選項為這些在前面且又沒有`timescale的源文件指定timescale |
34 | -override_timescale=<time_unit>/<time_precision> | 讓源文件統一使用指定的timescale |
35 | -P <pli.tab> | 指定PLI表文件 |
36 | -pvalues+<parameter_name>=<value> | 改變指定參數的值 |
37 | -parameters <filename> | 通過文件的方式改變參數的值,參數的路徑和改變的值均在文件中定義 |
38 | -q | 安靜模式,屏蔽VCS的編譯信息 |
39 | -R | 在編譯之后立即執行產生的可執行文件 |
40 | -s | 剛開始仿真時即停止,一般與-R和+cli配合使用 |
41 | -V | 使能verbose模式 |
42 | -v <filename> | 指定verilog庫文件 |
43 | -y <dir_pathname> | 指定verilog庫路徑 |
44 | +libext+<extension> | 讓VCS在verilog庫路徑下搜索指定的擴展名文件,與-y配合 |
45 | -vera | 指定標准的Vera PLI表文件和對象庫 |
46 | +acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
47 | +cli+[<module_name>=]1|2|3|4 | 使能CLI調試功能 |
48 | +autoprotect[<file_suffix>] | 生成一個加密的源文件 |
49 | +protect[<file_suffix>] | 生成一個加密的源文件,只加密`protect/`endprotect部分 |
50 | +putprotect+<target_dir> | 指定加密文件存放的目錄 |
51 | +csdf+precompile | 在VCS編譯源代碼時預先SDF文件 |
52 | +define+<macro_name>=<value> | 定義一個文本宏,與源文件中的`ifdef配合 |
53 | +error+<n> | 將編譯時運行的NTB錯誤增加到N |
54 | +incdir+<directory> | 指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個目錄。 |
55 | +maxdelays | 使用SDF文件中的max值 |
56 | +mindelays | 使用SDF文件中的min值 |
57 | +typdelays | 使用SDF文件中的typ值 |
58 | +nbaopt | 刪除非阻塞賦值語句中的延時 |
59 | +neg_tchk | 使能時序檢查中的負延時 |
60 | +nospecify | 屏蔽specify塊中的路徑延時和時序檢查 |
61 | +notimingcheck | 屏蔽specify塊中的時序檢查 |
62 | +nowarnTFMPC | 屏蔽編譯時的“Too few module port connections”告警信息 |
63 | +no_notifier | 屏蔽一些時序檢查系統任務中定義的notifier寄存器的翻轉(toggling),但不影響時序violation的報告 |
64 | +no_tchk_msg | 屏蔽時序檢查的告警信息,但不關閉時序檢查時notifier寄存器的翻轉(toggling) |
65 | +optconfigfile+<filename> | 指定Radiant技術和二態仿真用到的配置文件名 |
66 | +prof | 讓VCS在仿真過程中生成一個vcs.prof文件,記錄設計中最耗CPU時間的module、層次和verilog結構 |
67 | +race | 讓VCS在仿真過程中生成一個race.out文件,記錄設計中所有的競爭冒險 |
68 | +radincr | 增量編譯時使能Radiant技術 |
69 | +sdf_nocheck_celltype | SDF反標時不檢查SDF文件中的CELLTYPE的一致性 |
70 | +sdfverbose | 顯示SDF反標時的詳細告警和錯誤信息 |
71 | +v2k | 支持Verilog-2001標准 |
72 | +vc[+abstract][+allhdrs][+list] | 使用DirectC接口時,使能verilog直接調用C/C++函數 |
73 | +vcs+flush+log | 加速編譯仿真時log文件緩存的刷新頻率 |
74 | +vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
75 | +vcs+initmem+0|1|x|z | 初始化設計中所有存儲器的值 |
76 | +vcs+initreg+0|1|x|z | 初始化設計中所有寄存器的值 |
77 | +vcs+lic+wait | 一直等待license |
78 | +vpi | 使能VPI |
79 | +warn=[no]ID|none|all,... | 使能或關閉告警信息 |
VCS常用的運行選項
編號 | 選項 | 說明 |
1 | -a <filename> | 將仿真顯示的log信息附件在指定文件尾部 |
2 | -E <program> | 執行指定的程序用來顯示生成simv可執行文件時VCS使用的編譯選項 |
3 | -i <filename> | 指定一個VCS執行仿真時包含CLI命令的文件,一般與-ucli配合 |
4 | -k <filename> | off | 指定一個文件,用來記錄VCS仿真過程中的CLI和VirSim交互命令,默認是vcs.key,off選項是關閉記錄。 |
5 | -sverilog | 支持SystemVerilog |
6 | -ucli | 使能UCLI命令 |
7 | -vcd <filename> | 指定VCD波形文件名,默認是verilog.dump,會被源代碼文件中的$dumpfile覆蓋 |
8 | +vcs+learn+pli | 追蹤當前仿真的ACC選項,記錄在pli_learn.tab文件中,下次仿真時可以用+applylearn來重新編譯。 |
9 | +vcs+nostdout | 關閉所有$monitor和$display的文本輸出,但依然會記錄在-l的log文件中。 |
10 | +vera_load=<filename.vro> | 定義Vera對象文件 |
11 | +vera_mload=<filename> | 定義一個包括多個Vera對象文件的文本文件 |
VCS調試模式常用選項
編號 | 選項 | 說明 |
1 | -RI | 編譯完成之后馬上啟動VirSim,進入交互模式 |
2 | -RIG | 不編譯,啟動VirSim使用已有的可執行文件,進入交互調試模式。 |
3 | +sim+<simv_name> | 指定使用的可執行文件名,與-RIG配合 |
4 | -RPP | 運行后處理(Post-Processing)模式:啟動VirSim,使用VCD+文件 |
5 | -PP | 支持在源代碼文件中調用$vcdpluson生成VPD文件 |
6 | +cfgfile+<filename> | 定義一個VCS使用的已建好的場景配置文件 |
7 | +vslogfile[+<filename>] | 保存一個VirSim命令的log文件,默認是VirSim.log |
參考:
VCS常用仿真選項開關及步驟總結 - 竹韻悠揚 - 博客園 (cnblogs.com)