在VCS仿真器中使用FSDB
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相关推荐
- verdi使用linux命令,vcs和verdi的调试及联合仿真案例
环境配置 首先搭建好vcs和Verdi都能工作的环境,主要有license问题,环境变量的设置.在220实验室的服务器上所有软件的运行环境都是csh.所以,所写的脚本也都是csh的语法. 生成波形文件 ...
- 数字IC设计各种仿真波形文件
一.仿真波形文件介绍 1. Wlf文件:WLF波形日志文件,是modelsim的专用文件. 这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示. 在用modelsim做仿真 ...
- testbench文件显示波形_各种仿真波形文件
各种仿真波形文件 一.仿真波形文件介绍 1.Wlf文件:WLF波形日志文件,是modelsim的专用文件. 这个wlf文件只能是由modelsim来生成,也只能通过modelsim来显示. 在用mod ...
- sdf反标之RETAIN信息
RETAIN TIME指的是从输入变化后开始计算,输出保持的时间.过了RETAIN TIME后,输出会出现一段X态,直到最终稳定.网表的sdf文件里面会标注路径的RETAIN信息,比如一个两输入的与门 ...
- VCS dump fsdb 波形
文章目录 前言 一.testbench中控制dump fsdb 1.1 testbench中加入的代码 1.2.开启记录波形 二.vcs仿真命令控制dump fsdb 三.irun仿真命令控制dump ...
- Ubuntu虚拟机中VCS安装和启动过程中遇到的问题总结
上篇文件写完后,很多人留言说VCS启动有些问题在文中没有解决,这里总结汇总了下从VCS安装好以后,临时license授权到使用VCS成功运行并用verdi dump波形这个过程中可能会遇到的一些问题及 ...
- 移动开发中的仿真器(Emulator)与模拟器(Simulator)
本文主要涉及到两个概念: Emulator 和 Simulator.通常我们在工作中可能统统习惯称为"模拟器",但实际上二者有所不同.为了分清概念,本文将 Emulator 译作 ...
- 前端开发使用的 安卓模拟器_【译】移动开发中的仿真器与模拟器
译者注: 本文主要涉及到两个概念: Emulator 和 Simulator.通常我们在工作中可能统统习惯称为"模拟器",但实际上二者有所不同.为了分清概念,本文将 Emulato ...
- 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 ...
最新文章
- Windows批处理脚本%1和%1%有区别吗?
- SpringMVC核心流程图
- 按钮设置成透明的方法
- odata.publish = true的CDS view激活之后,后台发生了什么事情
- 【转】 差分约束系统详解(转化为最短路) (概念)
- LeetCode--11.盛最多的水(双指针,暴力)
- SpringCloud学习笔记002---Spring Cloud实战微服务准备
- 商业智能改变汽车行业
- GitHub 撤销解雇犹太员工决定并公开致歉,涉事 HR 辞职
- 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!
- Swift仿写喜马拉雅FM
- [Windows]msvcr110.dll运行库缺失问题解决方案
- 笔记本电脑开机键盘失效
- mtk led子系统概略
- idea怎么设置类备注和方法备注的格式
- 2010年最怪异的25个面试问题,你能回答吗?
- 罗克韦尔(AB)PLC与MySQL/SQLServer/PostgreSQL数据库对接
- 期货居间人一年能赚多少?期货居间人开户手续费有什么优势?
- 给嵌入式ARM+Linux的初学者
- IMPERVA - WAF 如何配置Imperva SNMP
热门文章
- 清远工贸职业技术学校清远大学城网
- 删除windows隐藏的本地连接
- hbase shell显示时间与系统时间不同
- spark-shell连接数据库java.sql.SQLSyntaxErrorException: Unknown databas
- RSA key format is not supported
- ubuntu下面解决mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists
- python 读取数据出现UnicodeDecodeError:: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid contin
- Android Unable to resolve target 'android-8'
- Java编程思想之-主板示例
- 《嵌入式C编程:PIC单片机和C编程技术与应用》一1.2 注释