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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

猜你喜欢

转载自blog.csdn.net/cy413026/article/details/85264570
VCS
今日推荐