如何用vcs输出fsdb格式的波形

由于Verdi只能查看fsdb格式的波形,而vcs可以生成供DVE查看的vpd格式波形,如果想要输出fsdb格式的波形,我们就要额外在testbench中加入两个函数,并且用相应的命令进行编译。

1.首先了解一些vcs的常用命令:

-cm line|cond|fsm|tgl|obc|path  设定coverage的方式
+define+macro=value+      预编译宏定义
-f filename             RTL文件列表
+incdir+directory+         添加include 文件夹
-I                 进入交互界面
-l                 logfile文件名
-P pli.tab             定义PLI的列表(Tab)文件
+v2k                使用推荐的标准
-y                 定义verilog的库
-notice               显示详尽的诊断信息
-o                 指定输出的可执行文件的名字,缺省是simv

  • nospecify            不对SPECIFY 模块进行时序检查和路径延时计算
  • notimingcheck          不进行时序检查;但是还是把path延时加入仿真中

2.下面是我在run一个十分简单的例子:2-4译码器时用的命令:

注:testbench中药加入两个函数:$fsdbDumpfile(“decoder.fsdb”);

$fsdbDumpvars(0);

vcs decoder_tb.v decoder.v -sverilog -fsdb -debug_all -l com.log

如果不加-fsdb,编译时会报出上述两个函数的undefined错;

如果不加-l 会报不能打开test.v的错(这个不知道为什么)。

3.编译完成后,执行simv文件,即可。

4.用verdi查看fsdb文件:

     命令:

               verdi -sv -f filelist –ssf test.fsdb

     其中:

               -sv: 表示 Verdi 软件 要支持systemverilog

               -f filelist:  源代码的文件列表

               -ssf test.fsdb:  指定fsdb文件

     filelist文件:

在这里插入图片描述
启动verdi后,在源代码页面按住鼠标中键选择线名拖到波形界面,向波形界面添加波形。

5.为方便编译、仿真以及查看波形,可以将命令封装成makefile:
在这里插入图片描述
注意 对于看fsdb波形信号,debug_all选项是必须加的!!!!!!!!!!!!

跑覆盖率时,filelist已经加入了所有的verilog文件了,但编译时vcs没能把所有文件吃进去,导致报错有一些模块没被包含进来,
具体原因没能找到,最终通过-y /…/path to rtl file 选项把报错的的相关rtl模块对应的文件路径强行加进来,才得以解决问题,不再报错。。。。 ;
后续发现,是因为有两个文件是采用UitraEdit编辑器编辑,用vim打开后,文件末尾出现类似@^这样的特殊字符,导致vcs在收集覆盖率时,这两个文件对应的模块覆盖率无法收集。把特殊字符乱码删除后,可以正常跑通。
至于出现乱码原因,还不清楚,推测时UitraEdit编辑工具和EDA工具兼容性问题。。。。

https://www.cnblogs.com/Edam-IC/p/8405656.html

  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值