verdi中如何查看force信号信息

转载:verdi中如何查看force信号信息 | 骏的世界 (lujun.org.cn)

在仿真中,我们会有对信号进行force的操作,从而实现某些特定的功能。但是在仿真波形中,不能直接从波形上看出,这些信号的驱动,是因为前级电路的驱动,还是因为force的原因的驱动。从而使debug非常的不友好。

其实在verdi中,是可以直接看到force信号的信息的。这样的话,就会方便我们去debug force的信号。

要想要verdi中,查看force信号,就需要vcs在仿真时候,生成fsdb波形时,加入force信号的波形信息。只需要在仿真参数中,加入 +fsdb+force 参数即可。当fsdb波形生成后,就可以在verdi中,直接查看到信号的force信息。

如以下代码:

module tb_top();
    reg a;
    reg b;
    wire c;
  
    my_and u_my_and(a, b, c);
  
    initial begin
        a = 1;
        b = 0;
        #10;
        force u_my_and.a = 1'b1;
        force u_my_and.b = 1'b1;
        #10;
        force u_my_and.a = 1'b0;
        force u_my_and.b = 1'b0;
        #10;
        release u_my_and.a;
        release u_my_and.b;
        #10;
        $finish();
    end
  
    initial begin
        $fsdbDumpfile("force.fsdb");
        $fsdbDumpvars(0, "tb_top");
    end
endmodule: tb_top

其中my_and模块,代码如下:

module my_and(
    input a,
    input b,
    output c
);
    assign c = a & b;
endmodule

编译仿真的Makefile如下:

compile:
    vcs -full64 -sverilog  -debug_acces=all my_and.v tb_top.sv -kdb
  
run:
    ./simv +fsdb+force
  
verdi:
    verdi -dbdir simv.daidir -ssf force.fsdb

在仿真的时候,加上+fsdb+force选项。

打开verdi,查看信号

从波形上,能够清晰的看到force信号的信息。用紫色虚线标识的波形,就表示这一段时间内,信号是被force驱动的。

  • 向下的紫色箭头,表示这个时候,有force语句针对该信号

  • 向上的紫色箭头,表示这个时候,有release语句针对该信号

    通过特殊的紫色波形标记,就可以很清晰的知道信号的force信息了。

在一个环境中,可能force的信号比较多,通过上面的波形方式,去把每一个信号给拉出来,判断信号是否有force,效率就会比较低了。

此时,我们可以使用fsdbreport命令,从波形里面,把所有的信号force的信息,全部给抓出来,保存在一个文件中,这样,我们通过该文件,就可以知道仿真过程中的所有信号force信息。

命令如下:

fsdbreport xxx.fsdb -find_forces -s "/*" -level level_number -o xxx.txt

其中:

  • xxx.fsdb:是输入的fsdb波形文件

  • -s: 指定查找force信息的层次, /* 表示从最顶层开始

  • -level:表示从指定的层次,向下查找层次的数目。0表示指定的层次和以下所有的层次。1表示指定的层次,2表示指定的层次和下一层次。之后依次类推,一般都是直接使用0

  • -o:指定输出文件

针对刚刚上述产生的force.fsdb波形,来提取force信息。命令如下:

fsdbreport force.fsdb -find_forces -s "/*" -level 0 -o force.txt

生成的force.txt信息如下:

该文件中,会打印每一个force信号的信息:

  • force信号的层次路径

  • force信号在什么时刻被force,force的值是多少

  • force信号在什么时刻被release

通过查阅该文件,就可以知道波形文件中,所有的force信号的信息,从而可以帮助我们去debug。

  • 4
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值