在VCS仿真器中使用FSDB-程序员宅基地

技术标签: vcs  

来源:https://www.cnblogs.com/catannie/p/8099331.html

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) then
    setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${NOVAS_HOME}/share/PLI/VCS/LINUX
else
    setenv 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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/suixintt/article/details/83119847

智能推荐

MCS-51单片机的硬件结构_51单片机有哪些硬件资源-程序员宅基地

文章浏览阅读2.9k次,点赞2次,收藏22次。MCS-51单片机的硬件结构_51单片机有哪些硬件资源

ORB-SLAM2 论文全文翻译_r. mur-artal and j. d. tard麓os, 鈥淥rb-slam2: an ope-程序员宅基地

文章浏览阅读135次。ORB-SLAM2: An Open-Source SLAM System form Monocular, Stereo, and RGB-D Cameras 是SLAM领域的一篇经典论文。网上也有很多的中文翻译稿,但感觉翻译的都不是太好。本文的翻译是我的本科毕设的外文文献翻译内容,自己翻译的,感觉更通顺些,如果其中有错误欢迎大家指出。PDF本文提出了ORB-SLAM2,它是基于单目、双目或RGB-D相机的一个完整的SLAM系统,其中包括地图重用、回环检测和重定位功能。_r. mur-artal and j. d. tard麓os, 鈥淥rb-slam2: an open-source slam system f

如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问_群晖密码管理工具-程序员宅基地

文章浏览阅读1.8k次,点赞94次,收藏79次。如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问_群晖密码管理工具

使用了body { overflow-y: scroll; /* 显示垂直滚动条 */ overflow-x: hidden; /* 隐藏水平滚动条 */}以后如何使滚动条隐藏并且不影响页面其它内容_body滚轮不占位-程序员宅基地

文章浏览阅读233次。这段代码会隐藏滚动条并且不占位。需要注意的是,这种方法并不完美,因为它仍然会导致滚动条在某些情况下被显示或闪烁,这可能会影响用户体验。_body滚轮不占位

Transfer Learning Toolkit (TLT) + DeepStream (DS)快速部署深度学习模型(以口罩检测为例)_nvidia transfer learning toolkit-程序员宅基地

文章浏览阅读4.3k次,点赞9次,收藏45次。拉取镜像:# TLTdocker pull nvcr.io/nvidia/tlt-streamanalytics:v2.0_py3# DeepStreamdocker pull nvcr.io/nvidia/deepstream:5.0.1-20.09-base注册一个NGC账户,并获取一个API Key:API key仅显示一次,请注意保存,如丢失可以重新生成一个。拉取demo项目github仓库到xxx/tlt-demo文件夹cd xxx/tlt-demogit clone htt_nvidia transfer learning toolkit

MySQL主从复制与读写分离( 主从复制原理 、读写分离原理 、配置 MySQL 主从复制 、配置 MySQL 读写分离)_只有一个服务器 数据库 主从复制-程序员宅基地

文章浏览阅读865次。在实际的生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,一般来说 都是通过主从复制(Master-Slave)来同步数据,再通过读写分离来提升数据库并发负载能力的方案来进行部署与实施。MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。_只有一个服务器 数据库 主从复制

随便推点

node npm python 环境配置、安装_安装python npm-程序员宅基地

文章浏览阅读1.3w次,点赞4次,收藏11次。node安装后,默认会自动配置环境变量,但是如果有时重装系统后,系统环境变量被重置,这时就需要重新手动配置环境变量。配置环境变量首先添加一个node的path,NODT_PATH 值配置为node文件夹中的node_modules的位置,如D:\nodeJs\node_modules,然后在path中加入node安装文件夹的路径即可 如D:\nodeJs。npm在出现如上系统重置问题,在工..._安装python npm

大数据生态系统入门必看:pig、hive、hadoop、storm、mapreduce等白话诠释_提供关于hadoop、spark、hive和pig的学习的博客文章-程序员宅基地

文章浏览阅读2k次,点赞3次,收藏11次。本文非原创,转载自:大数据生态系统入门必看:pig、hive、hadoop、storm、mapreduce等白话诠释http://www.aboutyun.com/thread-12869-1-1.html(出处: about云开发)1.本文是如何诠释pig与hive区别的?2.数据分析人员使用hive还是Impala?3.hive、pig适用哪些人群?4.本文是如何形_提供关于hadoop、spark、hive和pig的学习的博客文章

GBASE 8s的触发器_gbase8s 触发器-程序员宅基地

文章浏览阅读506次。触发器(Trigger)是一个特殊的存储过程。在对表进行INSERT、DELETE或UPDATE操作时,可以通过定义一些触发器使数据库服务器自动调用存储过程或SQL语句。触发器通过维持不同表中逻辑上相关数据的一致性,保持数据的相关完整性。 触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。 触发器有时也被称作事_gbase8s 触发器

AIPassbye论文免费查重-程序员宅基地

文章浏览阅读860次,点赞18次,收藏11次。大多数学校都会给出一个毕业论文选题的参考目录,如果你的学校提供了这样的目录,你可以从中挑选自己感兴趣的,或者相对来说容易完成的主题。例如,如果你选择了"医疗行业中人工智能技术的伦理和法律问题"这个主题,你会发现,在医疗领域,你可以搜集到的数据远远多于其他特定领域,这将使你的数据分析过程更容易得出有意义的结果。如果不懂降重或者是不想浪费时间去降重的可以选择智能降重工具,比如passyyds的智能降重,只需要上传文件,就可以一键降重,还不会打乱原本格式,比你去某宝上找那些乱七八糟的人工降重的靠谱多了。

【Springboot】笔记1-程序员宅基地

文章浏览阅读1.5k次。01、基础入门-SpringBoot2课程介绍在B站边看视频边补充笔记,是在b站那里获取的文档和资料,自己进行笔记的修修改改,仅供参考,方便个人使用的,在源码分析部分,我感觉我看的不是很懂,有没有大佬分享一下源码分析的方法或者技巧,我一看源码就犯困!!!Spring Boot 2核心技术Spring Boot 2响应式编程学习要求-熟悉Spring基础-熟悉Maven使用环境要求Java8及以上Maven 3.3及以上学习资料Spring Boot官网Sprin

d3dcompiler_47.dll缺失怎么修复?那个方法修复更简单_edius9.55安装d3dcompier-47.dll-程序员宅基地

文章浏览阅读1.1k次。如果您的计算机是32位系统,则将文件到C:\Windows\System32,如果是64位系统,则将文件到C:\Windows\SysWOW64。Windows 7或8 64位系统,将64位版本的文件复制到Windows安装目录的System32文件夹中,将32位版本的文件复制到Windows安装目录的SysWOW64文件夹中。1.找到可靠的d3dcompiler_47.dll文件:您可以从互联网上找到可靠的d3dcompiler_47.dll文件,确保从可信任的网站上下载文件以避免下载病毒或恶意软件。_edius9.55安装d3dcompier-47.dll

推荐文章

热门文章

相关标签