基于VCS+Verdi的仿真验证及调试环境设置

原文:http://blog.sina.com.cn/s/blog_4ae03e000102wc2s.html

https://blog.csdn.net/huayangshiboqi/article/details/89525723

https://zhuanlan.zhihu.com/p/38623543

基于VCS+Verdi的仿真验证及调试环境设置

VCS+Verdi是常用的一种芯片仿真验证及调试环境。本文简单介绍环境设置过程。

​(1)VCS编译参数配置

​为了使用fsdbDumpfile等函数,vcs要增加编译参数–P /.../novas.tab /.../pli.a,路径为verdi安装路径下的share/PLI/VCS/LINUX。

然后vcs编译参数中要加上-debug_all,否则会提示fsdb函数参数有问题。

(2)​dump波形函数调用

​使用fsdbDumpfile和fsdbDumpvars等函数产生fsdb格式波形。

(3)verdi打开代码及波形​配置

​verdi -top dut tb.sv -f rtl.f可打开代码视图,再在nWave里打开需要调试的波形。

.vf为全部的fsdb波形的链接,该文件可编辑为部分波形文件的链接。

 

VCS+Verdi 安装及破解过程(Ubuntu)【1】

https://blog.csdn.net/huayangshiboqi/article/details/89525723

 

使用VCS+Verdi对Xilinx IP仿真

https://zhuanlan.zhihu.com/p/38623543

本文档主要介绍VCS对xilinx IP仿真环境的搭建。

仿真环境:centos7

VCS版本:vcs2014

Verdi版本:2015

Vivado版本:2017

一、 编译生成仿真库

首先需要使用vivado工具编译生成仿真库,如下图。打开vivado工具,选择tools->Compile
Simulation Libraries。

仿真器选择vcs,填写要生成的库文件保存目录,选择vcs的可执行文件的位置。勾选编译xilinx IP。

点击生成。生成完成后,打开库目录,如下图。synopsys_sim.setup这个文件比较重要,这个文件中指定了xilinx各个器件库的位置,仿真的时候需要指向这个文件。VCS会到这个文件中索引用到的器件库。

二、 VCS仿真

下面会以一个简单的例子来说明,VCS仿真脚本的编写。先看一个Makefile文件的例子。VCS的仿真可以分为3个步骤:elaborate、compile和simulation。

2.1 编译

这一步主要是将硬件语言编译成库的过程,具体来说可能会涉及3中不同类型的文件,verilog/VHDL/SystemVerilog。这三种文件的编译方法:

verilog使用的是vlogan这个工具。

systemVerilog使用的也是vlogan这个工具,但是要添加-sverilg选项。

VHDL使用的则是vhdlan这个工具。

编译的过程verilog文件中可能会涉及到xilinx的IP或者硬核,这时候需要通过synopsys_sim.setup这个文件来指定IP库的位置,如下图所示。

VCS参考手册对synopsys_sim.setup文件的功能做出了如下解释。VCS使用Synopsys_sim.setup文件来配置其VHDL设计的环境。这个文件将VHDL设计库的名字映射到特定的路径,设置搜索路径,给仿真控制变量赋值。VCS编译工具在运行时会依照先后顺序从以下3个路径查找synopsys_sim.setup文件。

主设置路径 
Home目录 
当前目录

手册中对setup文件的描述很多,这里摘取部分。文档中对Library的解释如下:当你分析一个设计的时候,VCS将中间文件以库的形式保存下来,也称为逻辑库。这个逻辑库指向一个保存在文件系统中的物理库。你可以通过setup文件来指定这个映射关系。

WORK > DEFAULT

DEFAULT : ./worklib

在上面的例子中,WORK是默认的逻辑库,它被映射到了叫做worklib的物理库。使用上面的配置,VCS会将所有中间文件保存到work这个库,如果work库不存在于指定的路径就会报错。

为了命名的灵活性,VCS允许你创建多个逻辑库,并且每个逻辑库映射到不同的物理库,语法如下:

Logical_library : Physical_library

你也可以在setup(B)这个文件中指向另外的setup(A)文件。上一步中,我们用vivado编译库文件时生成了一个setup(A)文件,我们需要在仿真的时候引用A这个文件,通过以下的语法。

OTHERS = [filename]

至此基本上就可以使用VCS对xilinx的IP仿真了。再回过头来看一下前面的Makefile。通过-work参数指定逻辑库的名字,-f参数指向verilog文件列表,而逻辑库对应的物理库的路径我们在setup文件中指定。通过执行下面的语句就可以在当前目录生成一个叫xil_defaultlib的库文件。

2.2 elaborate

这一步是将上面生成的库文件,以及可能用到的xilinx IP的库文件,生成仿真的可执行文件。具体的脚本如下,需要指定设计的顶层和FPGA进行全局复位的glbl模块。如果需要dump波形,还需要在编译中通过-P指定verdi的$fsdbDump函数的库。

2.3 simulation

这一步就是执行上面生成的sim可执行文件,进行仿真。脚本如下所示。-do可以指定ucli交互命令行输入的命令。Auto_run脚本中包含的语句如下图所示,$fsdbDumpfile函数指定了生成的fsdb文件的名称。$fsdbDumpvars指定了波形的记录层级和顶层。

运行完成之后可以看到在当前目录下生成了fsdb波形文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值