FSDB(Fast Signal Database)是Verdi支持的文件格式,用于保存仿真产生的信号波形。据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快。要用VCS仿真器生成FSDB文件,就要调用Verdi提供的FSDB dumping命令,较常用的方法是在Testbench中调用。

首先要把FSDB dumper库的路径添加到LD_LIBRARY_PATH环境变量,32位Linux环境使用的C Shell命令格式如下:

if ($?LD_LIBRARY_PATH) thensetenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${NOVAS_HOME}/share/PLI/VCS/LINUX
elsesetenv LD_LIBRARY_PATH ${NOVAS_HOME}/share/PLI/VCS/LINUX
endif

注意:如果使用的是64位Linux,需要把LINUX替换成LINUX64,其他操作系统参考Verdi文档。后面步骤使用的路径也要做同样的替换。

使用不同语言写Testbench和设计文件,VCS和Verdi的命令格式不同,下面分情况说明:

1) Testbench和设计文件都用Verilog

Verilog中常用的FSDB dumping命令包括$fsdbDumpfile和$fsdbDumpvars等,调用格式如下:

$fsdbDumpfile("test.fsdb");
$fsdbDumpvars(1, Testbench.inst);

用VCS仿真时,需要使用-P选项调用FSDB dumper,命令格式如下:

vcs +v2k -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a Testbench.v Counter.v

其中+v2k表示使用Verilog-2001标准,-R表示自动运行仿真,-nc表示不显示版权信息,-debug_pp和-LDFLAGS -rdynamic是Verdi要求的选项。

用如下命令启动Verdi查看波形:

verdi -2001 Testbench.v Counter.v -ssf test.fsdb -sswr test.rc

其中-2001表示使用Verilog-2001标准,-ssf用于指定FSDB文件,-sswr用于指定一个配置文件,包含要显示那些信号以及显示格式等,该配置文件可以在Verdi中配置完波形后生成。

示例文件:verilog

2) Testbench和设计文件都用VHDL

VHDL中常用的FSDB dumping命令包括fsdbDumpfile和fsdbDumpvars等,调用前需要引用Novas程序包,调用格式如下:

USE Work.Novas.ALL;fsdbDumpfile("test.fsdb");
fsdbDumpvars(1, "Testbench:Inst");

在VCS中仿真VHDL需要在当前目录有一个synopsys_sim.setup文件,格式如下:

-- Mapping default work directory
WORK > DEFAULT
DEFAULT : ./work -- Library Mapping
IEEE : $VCS_HOME/linux/packages/IEEE/lib
SYNOPSYS : $VCS_HOME/linux/packages/synopsys/lib --Simulation variables
ASSERT_STOP = ERROR
TIMEBASE = ns
TIME_RESOLUTION = 1 ps

其中./work是WORK库对应的路径,默认情况下编译到WORK库中。也可以使用不同的路径,需要将./work修改为你使用的路径。

用VCS仿真时,需要先编译novas.vhd,该文件中的Novas程序包声明了FSDB dumping命令及其使用的库,因此不需要在命令行使用特别的选项,然后编译VHDL文件,最后执行仿真,命令格式如下:

if (! -d work) mkdir work    # Create work directory if not exist
vhdlan -nc ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd
vhdlan -nc Testbench.vhd Counter.vhd
vcs -R -nc -debug_pp Testbench__Arch

分步仿真VHDL需要在最后一步调用vcs时指定顶层配置/实体/架构,一种格式为“实体名__架构名”,用两个下划线分隔,如果只有一个架构,则可以省略架构名。包含VHDL文件时必须指定顶层配置/实体/架构。

用如下命令启动Verdi查看波形:

verdi -vhdl -93 ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd Testbench.vhd Counter.vhd \-top "Testbench(Arch)" -ssf test.fsdb -sswr test.rc

其中-vhdl选项表示使用VHDL文件,-93表示使用VHDL-1993标准,-top用于指定顶层实体/架构,格式为“实体名(架构名)”,如果只有一个架构,则可以省略架构名。

示例文件:vhdl

3) Testbench和设计文件都用SystemVerilog

SystemVerilog的FSDB dumping命令与Verilog相同。

用VCS仿真的命令格式与Verilog类似,只是把+v2k替换成-sverilog,格式如下:

vcs -sverilog -R -nc -debug_pp -LDFLAGS -rdynamic \
-P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab \
${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a \
Testbench.sv Counter.sv CounterItf.sv

其中-sverilog表示仿真SystemVerilog文件。

用如下命令启动Verdi查看波形:

verdi -sv Testbench.sv Counter.sv CounterItf.sv -ssf test.fsdb -sswr test.rc

其中-sv表示使用SystemVerilog文件。

示例文件:systemverilog

VCS混合语言仿真需要先分别编译HDL文件,然后执行仿真,如果包含VHDL文件,则需要synopsys_sim.setup文件,并且需要先编译novas.vhd。

Verdi调试混合语言设计也要先分别编译HDL文件到同一个库,然后打开该库进行调试。

4) Testbench用Verilog,设计文件用VHDL

VCS仿真命令格式如下:

if (! -d work) mkdir work    # Create work directory if not exist
vlogan -nc +v2k Testbench.v
vhdlan -nc Counter.vhd
vcs -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a Testbench

包含VHDL文件时必须指定顶层配置/实体/架构,这里使用了只指定实体名不指定架构名的格式。

用如下命令启动Verdi查看波形:

vhdlcom -93 Counter.vhd
vericom -2001 Testbench.v
verdi -lib work -top Testbench -ssf test.fsdb -sswr test.rc

其中-lib用于指定要调试的库,vhdlcom和vericom默认编译到work库中。

示例文件:verilog_tb

5) Testbench用VHDL,设计文件用Verilog

VCS仿真命令格式如下:

if (! -d work) mkdir work    # Create work directory if not exist
vhdlan -nc ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd
vhdlan -nc Testbench.vhd
vlogan -nc +v2k Counter.v
vcs -R -nc -debug_pp Testbench__Arch

用如下命令启动Verdi查看波形:

vhdlcom -93 ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd Testbench.vhd
vericom -2001 Counter.v
verdi -lib work -top "Testbench(Arch)" -ssf test.fsdb -sswr test.rc

示例文件:vhdl_tb

转载于:https://www.cnblogs.com/catannie/p/8099331.html

在VCS仿真器中使用FSDB相关推荐

  1. verdi使用linux命令,vcs和verdi的调试及联合仿真案例

    环境配置 首先搭建好vcs和Verdi都能工作的环境,主要有license问题,环境变量的设置.在220实验室的服务器上所有软件的运行环境都是csh.所以,所写的脚本也都是csh的语法. 生成波形文件 ...

  2. 数字IC设计各种仿真波形文件

    一.仿真波形文件介绍 1. Wlf文件:WLF波形日志文件,是modelsim的专用文件. 这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示. 在用modelsim做仿真 ...

  3. testbench文件显示波形_各种仿真波形文件

    各种仿真波形文件 一.仿真波形文件介绍 1.Wlf文件:WLF波形日志文件,是modelsim的专用文件. 这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示. 在用mod ...

  4. sdf反标之RETAIN信息

    RETAIN TIME指的是从输入变化后开始计算,输出保持的时间.过了RETAIN TIME后,输出会出现一段X态,直到最终稳定.网表的sdf文件里面会标注路径的RETAIN信息,比如一个两输入的与门 ...

  5. VCS dump fsdb 波形

    文章目录 前言 一.testbench中控制dump fsdb 1.1 testbench中加入的代码 1.2.开启记录波形 二.vcs仿真命令控制dump fsdb 三.irun仿真命令控制dump ...

  6. Ubuntu虚拟机中VCS安装和启动过程中遇到的问题总结

    上篇文件写完后,很多人留言说VCS启动有些问题在文中没有解决,这里总结汇总了下从VCS安装好以后,临时license授权到使用VCS成功运行并用verdi dump波形这个过程中可能会遇到的一些问题及 ...

  7. 移动开发中的仿真器(Emulator)与模拟器(Simulator)

    本文主要涉及到两个概念: Emulator 和 Simulator.通常我们在工作中可能统统习惯称为"模拟器",但实际上二者有所不同.为了分清概念,本文将 Emulator 译作 ...

  8. 前端开发使用的 安卓模拟器_【译】移动开发中的仿真器与模拟器

    译者注: 本文主要涉及到两个概念: Emulator 和 Simulator.通常我们在工作中可能统统习惯称为"模拟器",但实际上二者有所不同.为了分清概念,本文将 Emulato ...

  9. VCS视频学习中的一个例子代码:dff.v和dff_tb.v

    前言 VCS课程中的一个例子! dff.v //r/dff_exp.v module dff_exp(//Inputsinput wire clk_i,input wire rst_l_i,input ...

最新文章

  1. Windows批处理脚本%1和%1%有区别吗?
  2. SpringMVC核心流程图
  3. 按钮设置成透明的方法
  4. odata.publish = true的CDS view激活之后,后台发生了什么事情
  5. 【转】 差分约束系统详解(转化为最短路) (概念)
  6. LeetCode--11.盛最多的水(双指针,暴力)
  7. SpringCloud学习笔记002---Spring Cloud实战微服务准备
  8. 商业智能改变汽车行业
  9. GitHub 撤销解雇犹太员工决定并公开致歉,涉事 HR 辞职
  10. 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!
  11. Swift仿写喜马拉雅FM
  12. [Windows]msvcr110.dll运行库缺失问题解决方案
  13. 笔记本电脑开机键盘失效
  14. mtk led子系统概略
  15. idea怎么设置类备注和方法备注的格式
  16. 2010年最怪异的25个面试问题,你能回答吗?
  17. 罗克韦尔(AB)PLC与MySQL/SQLServer/PostgreSQL数据库对接
  18. 期货居间人一年能赚多少?期货居间人开户手续费有什么优势?
  19. 给嵌入式ARM+Linux的初学者
  20. IMPERVA - WAF 如何配置Imperva SNMP

热门文章

  1. 清远工贸职业技术学校清远大学城网
  2. 删除windows隐藏的本地连接
  3. hbase shell显示时间与系统时间不同
  4. spark-shell连接数据库java.sql.SQLSyntaxErrorException: Unknown databas
  5. RSA key format is not supported
  6. ubuntu下面解决mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists
  7. python 读取数据出现UnicodeDecodeError:: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid contin
  8. Android Unable to resolve target 'android-8'
  9. Java编程思想之-主板示例
  10. 《嵌入式C编程:PIC单片机和C编程技术与应用》一1.2 注释