目录
一、VCS是什么
VCS全称是 Verilog Compile Simulator,是Synopsys家的一款Verilog仿真工具。
二、VCS工作过程
VCS工作分为两个阶段:编译,仿真。
1.编译
VCS首先对verilog设计代码和testbench进行编译,生成simv二进制可执行文件,该二进制可执行文件后续会用于仿真。
1.1 编译选项
-cm line+cond+fsm+tgl:指定覆盖率的类型,行覆盖率+条件覆盖率+状态机覆盖率+翻转覆盖率。
-cm_log:指定仿真中记录覆盖率的log文件名。
-comp64:在64bit模式下对设计进行编译,并生成32bit格式的可执行文件用于32bit模式仿真。
-debug:使能UCLI命令行和dve。
-f <filename>:指定文件列表的文件名,文件中可包括源代码文件的路径和名称,也可以包括编译选项参数。
-full64:在64bit模式下编译,生成64bit模式仿真的可执行文件。
-timescale=1ns/100ps:仿真时间单位1ns,精度100ps。
-R:在编译之后立即执行产生的可执行文件。
-v <filename>:指定verilog库文件。
-sverilog:支持SystemVerilog。
-ucli:使能UCLI命令。
-l <filename>:指定记录VCS编译和运行信息的log文件名。
-notice:显示详细的诊断信息。
-gui:仿真开始后启动DVE图形界面。
-verdi:使用verdi图形界面。
默认报10个错误,可以使用+error+100表示出现100个错误才会停止。
2. 仿真
VCS对代码进行编译完成后,然后调用simv 并-TESTNAME的方式传入用例名,就可以对Testcase进行仿真。
3.dump波形
若需要查看设计波形,首先需要在TB中调用dump fsdb的函数。
initial begin
if($test$plusargs("DUMP_FSDB")) begin #仿真时添加条件判断是否需要dump fsdb
$fsdbDumpfile("TEST.fsdb");#生成fsdb波形文件,波形名字TEST.fsdb
$fsdbDumpvars(0,top_tb);#参数含义:0代表dump 所有层次;1代表dump top_tb这个层次;
end
end
然后在编译时指定Verid库,配置Verdi。最后Verdi吃进去fsdb文件,即可打开波形文件。这些都可以写入到一个Makefile文件中,最终使用make指令就可以快速进行编译仿真和查看波形。如何使用Makefile进行vcs和verdi联合仿真可参考:Makefile脚本启动VCS+Verdi_verdi和vcs的makefile-CSDN博客