有时候我们不想改Testbench,只能通过vcs的命令参数来配置dump fsdb,那么要怎么实现呢?
简单说明
首先,用命令行参数-ucli
让vcs进入ucli模式。
vcs -R -ucli ...
# 或
./simv -ucli ...
再在ucli模式下执行dump fsdb指令,如下。格式与在verilog testbench中用的$fsdbDumpfile()
和$fsdbDumpvars()
两个PLI task一样。
ucli> fsdbDumpfile wave.fsdb
ucli> fsdbDumpvars 0 tb
最后,再ucli模式下,运行run
指令继续完成仿真。
ucli> run
一步执行
我们发现开启了ucli之后,需要手动敲入dump指令和run指令。有一些不方便,特别是批量跑脚本时。
其实我们可以把几条指令写成一个tcl文件dumpfsdb.tcl
,例如:
# --**-- dumpfsdb.tcl --**--
# dump fsdb
fsdbDumpfile wave.fsdb
fsdbDumpvars 0 tb
# run
run
同时,vcs或者simv的参数也改进一下:
vcs -R -ucli -do dumpfsdb.tcl ...
# 或
./simv -ucli -do dumpfsdb.tcl ...
一个题外话:kdb
为了更方便的debug,打开波形的同时,可以通过kdb来自动加载rtl和tb。具体如下:
1. vcs加-kdb编译参数
2. verdi -ssf xxx.fsdb