前面介绍过了VCS的基本知识,现在进行VCS操作实践,介绍两类,即交互式操作和后处理两种。
本次操作所用到的所有文件脚本都在这里,大家下载下来即可:链接: link
本次操作所用到的所有文件脚本都在这里,大家下载下来即可:链接: link
本次操作所用到的所有文件脚本都在这里,大家下载下来即可:链接: link
一、交互式操作步骤
即每一步都要用户手动操作,例如在一个文件夹中只有RTL设计adder4.v和测试文件test_adder4.v,如图:
1.1 编译
输入编译指令:
vcs -full64 -sverilog -debug_all -timescale=1ns/1ns adder4.v test_adder4.v -l com.log
编译成功后有…/simv up to data,界面如下:
此时查看文件夹下内容有如下:
其中com.log存放生产日志文件, 可执行文件simv。
1.2 启动dve
输入命令:
dve &
结果为:
随后跳出DVE初始界面如下:
1、点击simulator下setup选项;
2、点击如下选项;
3、选择simv文件,确定;
4、这时波形已经加进来了,如下:
5、我们需要波形跑多长时间需要用户自己输入,在界面下方找到dve命令输入框,输入命令 run 100 ,则波形运行100仿真单位,我们可以多跑一段时间,这里我们跑1000。
6、把波形调出来查看,选中一个波形,CTRL+a全选,右键add to waves,最后new wave view。
7、随后波形出现,按gf键全屏。
8、接下来就和Modelism操作一致了,该怎么操作就不多讲了…
二、后处理模式
这次我们不手动跑波形,而是让仿真器自己按照我们提前写的Testbench把波形跑好,直接用DVE展示。
2.1 编译
输入编译命令:
vcs -full64 -sverilog -debug_all -timescale=1ns/1ns adder4.v test_adder4.v -l com.log
编译结果和交互式一样,有显示信息,../simv up to data
2.2 运行
输入运行指令:
simv -l sim.log
如图则表示运行成功,
运行会产生波形记录文件,即所产生波形信息,波形文件大体有两种,vcd和vpd,波形文件的产生需要在Testbench中添加代码,
下面是产生vcd文件的一般方法,即在initial激励块前加上一块,initial激励块$finish前加一句即可。
initial begin
$dumpfile("test_adder4.vcd");
$dumpvars(1,test_adder4);
$dumpon;
end
initial begin
测试激励
#100 $dumpoff;
#1000 $finish;
end
下面是产生VPD文件的一般方法,即在initial激励块前加上一块,initial激励块$finish前加一句即可。
initial begin
$vcdplusfile("test_adder4.vpd");
$vcdpluson(0,test_adder4);
$vcdplustraceon(test_adder4);
end
initial begin
测试激励
#100 $vcdplustraceoff(test_adder4);
$vcdplusoff(test_adder4);
#1000 $finish;
end
文件vcd和vpd的产生方法。,具体查看链接: link
另外,本文的工程文件后续打包发出来,大家随意查看…
运行完之后打开文件夹,会产生一个vpd文件,这就是产生记录波形信息的文件。vpd和vcd等其他波形文件的区别上个链接也有介绍,具体查看链接: link
2.3、调试
输入调试命令如下,
dve -full64 -vpd test_adder4.vpd &
直接弹出DVE窗口,可以看到波形文件已经添加进去了。
把波形调出来查看,选中一个波形,CTRL+a全选,右键add to waves,最后new wave view。
三、Makefile脚本
后处理模式下指令要一步一步写,这样比较麻烦,我们可以把需要用到的指令集合为一个脚本,运行脚本即可完成所有操作。写脚本之前需要一个准备工作。
3.1、准备步骤
首先,把所有的.v文件相对位置打包起来,这样运行文件的时候就不用一个一个的把.v文件全写出来,而是直接以-f命令运行存储相对位置的文件。
使用命令:
find -name "*.v" > file.list
将文件内所有.v文件的相对位置打包之后会在文件夹内部创建一个文件,文件加及其file.list内部如下:
如何检查打包是否正确?点击一个.v文件名,按住g+f,ctrl+o,看是否跳转至设计文件即可。
3.2、编写脚本
创建脚本文件Makefile,并用gvim打开,
命令:
g ./Makefile
Makefile用TCL语言编写,语法要求遵守TCL语法,内容在后处理的三条命令上修改得到,大家瞅不明白的可以看看以前写的TCL脚本语言和VCS知识内容等相关篇目。
Makefile内部输入如下脚本:
all:com sim run_dve
com:
vcs \
-full64 -sverilog -debug_all \
-timescale=1ns/1ns \
-f file.list \
-l com.log
sim:
simv -l sim.log
run_dve:
dve -full64 -vpd test_adder4.vpd &
cm:
vcs \
-f file.list \
-timescale=1ns/1ns \
-full64 +v2k \
-debug_all \
-cm line+cond+fsm+tgl
./simv -cm line+cond+fsm+tgl \
-l com.log
dve -full64 \
-cov \
-covdir \
simv.vdb
clean:
rm -rf *~ core csrc simv* vc_hdrs.h ucli.key urg* *.log novas.* *.fsdb* verdiLog 64* DVEfiles *.vpd *.vcd *.dump *.vdb
其中 com编译,sim运行,run_dve调试,cm代码覆盖率。all:com sim run_dve 可以一次性运行三条命令。脚本中加入了clean指令,意思是每次退出前删除运行所产生的垃圾文件,保持好习惯。
输入如下命令即可直接进入DVE界面查看仿真波形(如下),和前面一样,直接选择添加波形即可。
make all
输入如下命令即可直接进入DVE界面查看代码覆盖率(如下),和前面一样,直接选择添加波形即可。文章来源:https://www.toymoban.com/news/detail-663662.html
make cm
代码覆盖率查看比较简单,直接对应选项双击即可。
至此,前仿真结束,还有门级后仿真,,,,,加油!!!文章来源地址https://www.toymoban.com/news/detail-663662.html
到了这里,关于EDA09--VCS 操作实践(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!