• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

EDA09--VCS 操作实践二

武飞扬头像
@BouYue
帮助1

前面介绍过了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界面查看代码覆盖率(如下),和前面一样,直接选择添加波形即可。

make cm

学新通代码覆盖率查看比较简单,直接对应选项双击即可。
至此,前仿真结束,还有门级后仿真,,,,,加油!!!

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfagak
系列文章
更多 icon
同类精品
更多 icon
继续加载