有時(shí)候我們不想改Testbench,只能通過vcs的命令參數(shù)來配置dump fsdb,那么要怎么實(shí)現(xiàn)呢?
簡單說明
首先,用命令行參數(shù)-ucli
讓vcs進(jìn)入ucli模式。
vcs -R -ucli ...
# 或
./simv -ucli ...
再在ucli模式下執(zhí)行dump fsdb指令,如下。格式與在verilog testbench中用的$fsdbDumpfile()
和$fsdbDumpvars()
兩個(gè)PLI task一樣。
ucli> fsdbDumpfile wave.fsdb
ucli> fsdbDumpvars 0 tb
最后,再ucli模式下,運(yùn)行run
指令繼續(xù)完成仿真。
ucli> run
一步執(zhí)行
我們發(fā)現(xiàn)開啟了ucli之后,需要手動(dòng)敲入dump指令和run指令。有一些不方便,特別是批量跑腳本時(shí)。
其實(shí)我們可以把幾條指令寫成一個(gè)tcl文件dumpfsdb.tcl
,例如:
# --**-- dumpfsdb.tcl --**--
# dump fsdb
fsdbDumpfile wave.fsdb
fsdbDumpvars 0 tb
# run
run
同時(shí),vcs或者simv的參數(shù)也改進(jìn)一下:
vcs -R -ucli -do dumpfsdb.tcl ...
# 或
./simv -ucli -do dumpfsdb.tcl ...
一個(gè)題外話:kdb
為了更方便的debug,打開波形的同時(shí),可以通過kdb來自動(dòng)加載rtl和tb。具體如下:
1. vcs加-kdb編譯參數(shù)
2. verdi -ssf xxx.fsdb