VCS編譯命令
vcs -sverilog +v2k +plusarg_save -ntb_opts uvm-1.1 \
-f XXX/lib/vcs.f \
+define+ASSERT_ON \
-cm assert +define+COVER_ON \
+define+XXX \
+nospecify +lint=TFIPC-L +notimingcheck -debug_acc -j4 \
-XgenLoopOpt=0x200 \
-timescale=1ns/1fs +vcs+lic+wait -full64 +vcsd +memcbk +vpi \
-cm line+fsm+cond -cm tgl \
-cm_hier ../cfg/rtl_vcm.cfg -cm_dir ./${mode}/cov/simv.vdb \
-Mdir=./${mode}/exec/uvm_test_csrc \
-l ./${mode}/log/uvm_test.cmp_log \
-o ./${mode}/exec/uvm_test_simv \
-f ../cfg/tb.f
+vcs+lic+wait
等license
+v2k
使能verilog2000的標準
-timescale
- time_unit採用就近原則,例如頂層檔案定義timescale後,中間檔案再次定義timescale,則其後的檔案按照中間檔案定義的timescale執行。
- time_precision則採用最小的精度
-override_timescale
統一所有的timescale
-f -F
-f採用絕對路徑;-F與-f類似,也可以採用絕對路徑,同時也支援相對路徑,但不允許巢狀使用。
VCS用-F解析filelist時,不允許檔案巢狀使用,不支援`include “xxx.v”這種寫法,改為-f便ok了。
+incdir
`include "xxx.sv"
要用+incdir把xxx.sv的路徑指明。
-R
編譯完成後,自動執行當前編譯生成的可執行檔案
+vcs+initmem+0|1|x|z
初始化RTL中所有mem的所有bit初始值
+vcs+initreg+0|1|x|z
初始化RTL中所有reg的所有bit初始值
VCS的+ -區別
-的一般是編譯時用的,編譯工具自帶的。
+的是外掛,環境,驗證語言,等等加的,可擴充套件的,自定義的。
Dump波形檔案
begin
$fsdbAutoSwitchDumpfile(1000,FSDB_SAVE_PATH,200);
$fsdbDumpvars(0,test_top);
#0 $fsdbDumpon;
#50000000 $fsdbDumpoff;
end
fsdb系統任務
$fsdbDumpfile(“file_name.fsdb”);
$fsdbAutoSwitchDumpfile(1000,"wave.fsdb",10,"fsdb_dump.log")
$fsdbDumpvars(0,"top.dut")
$fsdbDumpFlush
$fsdbDumpon
$fsdbDumpoff
$fsdbDumpFinish
tb.f裡一般有什麼
+libext+.v
-y XXX/memory/all/work/verilog 定義verilog的庫
-f rtl_top.f
-f env.f
作者:Poisson_Lee
連結:https://www.jianshu.com/p/cddabb982a35
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。