记录:使用Verdi观察assertion波形进行debug

在auto clock gating的feature 验证的过程中,尝试使用assertion进行检查,期望波形如下:

aclk_cg为gating之后的时钟,llb_dat_clk为模块输入时钟,busy_out是模块的忙信号,期望在busy_out为低时,关闭aclk_cg。

编写assertion如下:

property  prop1(busy_out,aclk_cg);
	@(posedge sys_clk)	disable iff (acg_en===0)  $fell(busy_out) |-> $stable(aclk_cg)[*1:$] ##1 busy_out;
endproperty

波形图片中unnamed$$_5是assertion的判定结果,波形中是一个成功的判定,从图中可以看出:判定的start_time是在busy_out下降沿的下一个时钟,即图中虚线的地方(即$fell函数是判定了一个从1到0的过程),当前$fell(busy_out)和$stable(aclk_cg)[*1:$]同时发生了。

//不确定下面有没有冗余的选项
编译时添加选项

-assert enable_diag

-assert vpiSeqBeginTime

-assert vpiSeqFail

-assert enable_hier

运行时添加选项

+fsdb+sva_success

-assert success

dump选项:

fsdbDumpSVA

使用verdi进行debug过程:

进入assertion debug mode

查看统计界面

双击某个成功或者失败的item后,在instance中会出现该property(自己探索出来的野流程,不知道标准流程是啥样子的)

在instance界面选中prop1可以添加到波形中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值