在sv testbench中加checker的几种办法

1.最简单的if else

      if (property) begin
          $error("Error");
      end  
      else begin
        $display("Pass");
      end  

同时可以在脚本中加入筛选错误信息的判断语句,如果有error这个关键词,就return出FAIL 信息在terminal。


# Search for error message
if grep -q error "$wrapper_tb_sim.log"; 
  then
    echo "***************************************"
    echo "              TEST FAIL               "
    echo "***************************************"
  else
    echo "***************************************"
    echo "              TEST PASSED              "
    echo "***************************************"
fi  

2. MACRO宏定义

VCS不支持立即断言,那么可以写一个宏:

  • 查一下为什么VCS不支持立即断言,cadence是否有支持立即断言的tool

`define CHECKER(CHKNAME, PROPERTY, ERROR_CODEBLOCK, ERROR_MSG, PASS_CODEBLOCK, PASS_INFO) \
  if (!(PROPERTY)) begin \
    $error(`"CHKNAME`", ": ", ERROR_MSG) \
    ERROR_CODEBLOCK \
  end \
  else begin \
    PASS_CODEBLOCK \
    PASS_INFO \
  end \
  CHKNAME: assert(PROPERTY);

在test中可以进行如下调用:

 `CHECKER(default_value_none_zero, data_out == 0, , ("Error"), ,("OK"))

3. SVA断言

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值