VCS的仿真選項(xiàng)分編譯(compile-time)選項(xiàng)和運(yùn)行(run-time)選項(xiàng)。編譯選項(xiàng)用于RTL/TB的編譯,一遍是編譯了就定了,不能在仿真中更改其特性,例如define等等。而仿真選項(xiàng)常用于仿真過(guò)程中控制仿真過(guò)程的選項(xiàng),例如波形dump,testplusargs等等。
1.1VCS常用的編譯選項(xiàng)
選項(xiàng) | 說(shuō)明 |
-assertdumpoff|enable_diag|filter_past |
定義SystemVerilog斷言(SVA) dumpoff:禁止將SVA信息DUMP到VPD中 enable_diag:使能SVA結(jié)果報(bào)告由運(yùn)行選項(xiàng)進(jìn)一步控制 filter_past:忽略$past中的子序列 |
-cm |
指定覆蓋率的類(lèi)型,包括:line(行覆蓋)、cond(條件覆蓋)、fsm(狀態(tài)機(jī)覆蓋)、tgl(翻轉(zhuǎn)率覆蓋)、path(路徑覆蓋)、branch(分支覆蓋)和assert(斷言覆蓋)。 如果包括兩種或以上的覆蓋率類(lèi)型,可用“+”,如-cm line+cond+fsm+tgl |
-cm_assert_hier |
將SVA覆蓋率統(tǒng)計(jì)限定在文件列表中指定的module層次。 |
-cm_cond |
進(jìn)一步細(xì)化條件覆蓋率的統(tǒng)計(jì)方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等選項(xiàng)。 |
-cm_count | 在統(tǒng)計(jì)是否覆蓋的基礎(chǔ)上,進(jìn)一步統(tǒng)計(jì)覆蓋的次數(shù) |
-cm_dir |
指定覆蓋率統(tǒng)計(jì)結(jié)果的存放路徑,默認(rèn)是simv.cm |
-cm_hier |
指定覆蓋率統(tǒng)計(jì)的范圍,范圍在文件中定義,可以指定module名、層次名和源文件等。 |
-cm_log |
指定仿真過(guò)程中記錄覆蓋率的log文件名 |
-cm_name |
指定保存覆蓋率結(jié)果的文本文件的名稱(chēng) |
-cm obc | 使能可觀察(observed)覆蓋率的編譯。傳統(tǒng)的覆蓋率跟功能的正確性毫無(wú)關(guān)聯(lián),可觀察覆蓋率通過(guò)設(shè)置觀察點(diǎn),一定程度上將代碼行覆蓋率與功能正確性關(guān)聯(lián)起來(lái)。 |
-comp64 | 在64-bit模式下對(duì)設(shè)計(jì)進(jìn)行編譯,并生成32-bit格式的可執(zhí)行文件用于32-bit模式仿真 |
-debug或-debug_all | 使能UCLI命令行 |
-e |
指定PLI應(yīng)用時(shí)main()程序的名稱(chēng) |
-f |
指定文件列表的文件名,文件中可包括源代碼文件的路徑和名稱(chēng),也可以包括編譯選項(xiàng)參數(shù) |
-file filename | 類(lèi)似于-f,但文件內(nèi)容更靈活,可以包含PLI選項(xiàng)和對(duì)象文件,可以使用轉(zhuǎn)義字符等 |
-full64 | 在64-bit模式下編譯,生成64-bit模式仿真的可執(zhí)行文件 |
-h or -help | 列舉常用的編譯選項(xiàng)和運(yùn)行選項(xiàng)的參數(shù) |
-I | 交互模式的編譯,讓VCS自動(dòng)包括+cli,-P virsims.tab選項(xiàng),并支持VirSim后處理模式下生成VCD+文件。 |
-ID | 顯示及其的hostid或dongle ID |
-ignore |
屏蔽SV中unique/priority型的if或case語(yǔ)句的告警信息,參數(shù)包括:unique_checks、priority_checks、all。 |
-j |
設(shè)定并行編譯的進(jìn)程數(shù),“j”后面沒(méi)有空格 |
-l |
指定記錄VCS編譯和運(yùn)行信息的log文件名 |
-line | 使能VriSim中的單步運(yùn)行 |
-lmc-swift | 使能LMC SWIFT接口 |
-Mdir= |
指定一個(gè)目錄讓VCS存儲(chǔ)編譯產(chǎn)生的文件,默認(rèn)是csrc |
-Mlib= |
指定一個(gè)目錄讓VCS搜索某個(gè)模塊是否需要重新編譯。 與-Mdir配合,可以實(shí)現(xiàn)不同模塊的增量編譯。 |
-Mmakeprogram= |
指定用于make對(duì)象的程序,默認(rèn)是make |
-Mupdate[=0] | 默認(rèn)情況下,VCS編譯時(shí)會(huì)覆蓋上次編譯生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不帶=0,則進(jìn)行增量編譯,并覆蓋上次的makefile。 |
-noIncrComp | 關(guān)閉增量編譯 |
-notice | 顯示詳細(xì)的診斷信息 |
-ntb | 使能ntb(Native TestBench),支持OpenVera驗(yàn)證平臺(tái)語(yǔ)言結(jié)構(gòu)。 |
-o |
指定編譯生成的可執(zhí)行文件的名稱(chēng),默認(rèn)是simv |
-timescale= |
源代碼文件中有的包括`timescale編譯指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代碼文件在最前面,VCS會(huì)停止編譯。使用-timescale選項(xiàng)為這些在前面且又沒(méi)有`timescale的源文件指定timescale |
-override_timescale= |
讓源文件統(tǒng)一使用指定的timescale |
-P |
指定PLI表文件 |
-pvalues+ |
改變指定參數(shù)的值 |
-parameters |
通過(guò)文件的方式改變參數(shù)的值,參數(shù)的路徑和改變的值均在文件中定義 |
-q | 安靜模式,屏蔽VCS的編譯信息 |
-R | 在編譯之后立即執(zhí)行產(chǎn)生的可執(zhí)行文件 |
-s | 剛開(kāi)始仿真時(shí)即停止,一般與-R和+cli配合使用 |
-V | 使能verbose模式 |
-v |
指定verilog庫(kù)文件 |
-y |
指定verilog庫(kù)路徑 |
+libext+ |
讓VCS在verilog庫(kù)路徑下搜索指定的擴(kuò)展名文件,與-y配合 |
-vera | 指定標(biāo)準(zhǔn)的Vera PLI表文件和對(duì)象庫(kù) |
+acc+1|2|3|4 | 使能PLI中的ACC(PLI 1.0的一種方式) |
+cli+[ |
使能CLI調(diào)試功能 |
+autoprotect[ |
生成一個(gè)加密的源文件 |
+protect[ |
生成一個(gè)加密的源文件,只加密`protect/`endprotect部分 |
+putprotect+ |
指定加密文件存放的目錄 |
+csdf+precompile | 在VCS編譯源代碼時(shí)預(yù)先SDF文件 |
+define+ |
定義一個(gè)文本宏,與源文件中的`ifdef配合 |
+error+ |
將編譯時(shí)運(yùn)行的NTB錯(cuò)誤增加到N |
+incdir+ |
指定VCS搜索`include指令使用的包含文件的目錄,可以用“+”定義多個(gè)目錄。 |
+maxdelays | 使用SDF文件中的max值 |
+mindelays | 使用SDF文件中的min值 |
+typdelays | 使用SDF文件中的typ值 |
+nbaopt | 刪除非阻塞賦值語(yǔ)句中的延時(shí) |
+neg_tchk | 使能時(shí)序檢查中的負(fù)延時(shí) |
+nospecify | 屏蔽specify塊中的路徑延時(shí)和時(shí)序檢查 |
+notimingcheck | 屏蔽specify塊中的時(shí)序檢查 |
+nowarnTFMPC | 屏蔽編譯時(shí)的“Too few module port connections”告警信息 |
+no_notifier | 屏蔽一些時(shí)序檢查系統(tǒng)任務(wù)中定義的notifier寄存器的翻轉(zhuǎn)(toggling),但不影響時(shí)序violation的報(bào)告 |
+no_tchk_msg | 屏蔽時(shí)序檢查的告警信息,但不關(guān)閉時(shí)序檢查時(shí)notifier寄存器的翻轉(zhuǎn)(toggling) |
+optconfigfile+ |
指定Radiant技術(shù)和二態(tài)仿真用到的配置文件名 |
+prof | 讓VCS在仿真過(guò)程中生成一個(gè)vcs.prof文件,記錄設(shè)計(jì)中最耗CPU時(shí)間的module、層次和verilog結(jié)構(gòu) |
+race | 讓VCS在仿真過(guò)程中生成一個(gè)race.out文件,記錄設(shè)計(jì)中所有的競(jìng)爭(zhēng)冒險(xiǎn) |
+radincr | 增量編譯時(shí)使能Radiant技術(shù) |
+sdf_nocheck_celltype | SDF反標(biāo)時(shí)不檢查SDF文件中的CELLTYPE的一致性 |
+sdfverbose | 顯示SDF反標(biāo)時(shí)的詳細(xì)告警和錯(cuò)誤信息 |
+v2k | 支持Verilog-2001標(biāo)準(zhǔn) |
+vc[+abstract][+allhdrs][+list] | 使用DirectC接口時(shí),使能verilog直接調(diào)用C/C++函數(shù) |
+vcs+flush+log | 加速編譯仿真時(shí)log文件緩存的刷新頻率 |
+vcs+flush+all | +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合 |
+vcs+initmem+0|1|x|z | 初始化設(shè)計(jì)中所有存儲(chǔ)器的值 |
+vcs+initreg+0|1|x|z | 初始化設(shè)計(jì)中所有寄存器的值 |
+vcs+lic+wait | 一直等待license |
+vpi | 使能VPI |
+warn=[no]ID|none|all,... | 使能或關(guān)閉告警信息 |
1.2VCS常用的運(yùn)行選項(xiàng)
選項(xiàng) | 說(shuō)明 |
-a |
將仿真顯示的log信息附件在指定文件尾部 |
-E |
執(zhí)行指定的程序用來(lái)顯示生成simv可執(zhí)行文件時(shí)VCS使用的編譯選項(xiàng) |
-i |
指定一個(gè)VCS執(zhí)行仿真時(shí)包含CLI命令的文件,一般與-ucli配合 |
-k |
指定一個(gè)文件,用來(lái)記錄VCS仿真過(guò)程中的CLI和VirSim交互命令,默認(rèn)是vcs.key,off選項(xiàng)是關(guān)閉記錄。 |
-sverilog | 支持SystemVerilog |
-ucli | 使能UCLI命令 |
-vcd |
指定VCD波形文件名,默認(rèn)是verilog.dump,會(huì)被源代碼文件中的$dumpfile覆蓋 |
+vcs+learn+pli | 追蹤當(dāng)前仿真的ACC選項(xiàng),記錄在pli_learn.tab文件中,下次仿真時(shí)可以用+applylearn來(lái)重新編譯。 |
+vcs+nostdout | 關(guān)閉所有$monitor和$display的文本輸出,但依然會(huì)記錄在-l的log文件中。 |
+vera_load= |
定義Vera對(duì)象文件 |
+vera_mload= |
定義一個(gè)包括多個(gè)Vera對(duì)象文件的文本文件 |
1.3VCS調(diào)試模式常用選項(xiàng)
選項(xiàng) | 說(shuō)明 |
-RI | 編譯完成之后馬上啟動(dòng)VirSim,進(jìn)入交互模式 |
-RIG | 不編譯,啟動(dòng)VirSim使用已有的可執(zhí)行文件,進(jìn)入交互調(diào)試模式。 |
+sim+ |
指定使用的可執(zhí)行文件名,與-RIG配合 |
-RPP | 運(yùn)行后處理(Post-Processing)模式:?jiǎn)?dòng)VirSim,使用VCD+文件 |
-PP | 支持在源代碼文件中調(diào)用$vcdpluson生成VPD文件 |
+cfgfile+ |
定義一個(gè)VCS使用的已建好的場(chǎng)景配置文件 |
+vslogfile[+ |
保存一個(gè)VirSim命令的log文件,默認(rèn)是VirSim.log |
審核編輯:黃飛
-
RTL
+關(guān)注
關(guān)注
1文章
389瀏覽量
61133 -
VCS
+關(guān)注
關(guān)注
0文章
80瀏覽量
9916
原文標(biāo)題:VCS 仿真option 解析
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
vcs實(shí)用技巧

VCS仿真指南(第二版).pdf
VCS DVE 仿真工具講解
nanosim和vcs混合仿真的過(guò)程是怎樣的?
基于linux系統(tǒng)的VCS使用及仿真說(shuō)明
基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

如何使用Synopsys VCS仿真器進(jìn)行ZYNQ BFM IPI設(shè)計(jì)仿真
如何使用Vivado中的Synopsys VCS仿真器進(jìn)行仿真
SpinalHDL運(yùn)行VCS+Vivado相關(guān)仿真
使用VCS仿真Vivado IP核時(shí)遇到的問(wèn)題及解決方案
淺談VCS的兩種仿真flow
VCS實(shí)用技巧分享

評(píng)論