VCS是在linux下面用来进行仿真看波形的工具,类似于windows下面的modelsim以及questasim等工具,以及quartus、vivado仿真的操作。
1.vcs的基本指令
vcs的常见指令后缀
sim常见指令
2.使用vcs的实例
采用的是全加器的官方教程,首先介绍不使用脚本的执行过程。
(1)先执行vcs加入对应的full_adder文件(注意:在虚拟机中执行vcs命令时,不要在虚拟机共享文件夹下执行以下命令,这样可能无法生成simv文件)
vcs -sverilog -debug_all -timescale=1ns/1ps full_adder.v full_adder_tb.v -l com.log
1
这里先写full_adder.v 是因为tb文件需要调用它,所以把被调用的文件先写出来,这条语句会生成simv文件(如果使用了-o simv_file会生成对应的文件名字)。
(2)可以用./simv文件执行波形的界面,也可以采用下面指令以后台方式打开一个界面。
dve &
或者
./simv -l run.log -gui
(3)如果以./simv执行会直接看到波形文件,如果使用dve & 需要自行加入simv文件来查看波形,选中simulator->Setup,加入生成的simv文件。 在下方run all,如果没有给时间刻度这里会报错。没有报错,则说明我们的功能是完全正确无误的。右键加入波形文件,按f键显示波形。
(4)如下的四个按键作用
第一个: 追踪谁驱动该信号 ctrl+d
第二个: 追踪信号的值变换 ctrl+shift+d
第三个: 追踪未知态
第四个: 追踪用于驱动谁
3.makefile文件的写法
vcs的脚本写法可以帮助快递进行仿真得到波形文件。其中.PHONY可以指定对应哪些关键词进行make操作。
.PHONY:vcs sim dve clean
OUTPUT = adder
VCS = vcs -sverilog +v2k -timescale=1ns/1ns \
-debug_all \
-o ${OUTPUT} \
-l compile.log \
SIM = ./${OUTPUT} -l run.log
vcs:
${VCS} -f verilog_file.f
sim:
${SIM}
dve:
dve -vpd vcdplus.vpd &
clean:
rm -rf *.log csrc simv* *.key *.vpd DVEfiles coverage *.vdb
这样 make vcs执行vcs语句,make sim执行simv语句,make dve打开波形文件,make clean清除一些冗余文件。
其中,verilog_file.f是文件的列表,可以采用下面语句生成,这样将所有以v结尾的文件名写到目标文件中。
find -name ".*v" > file.list