1. 程式人生 > >IC數字前端設計開發28 (vcs常用模擬選項)

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