verdi 仿真assertion的一些特殊情况

上一篇 / 下一篇  2017-07-06 16:38:28 / 个人分类:IC备忘录

1.   COVER_UART_TX_START_BUSY_1:
assert  property  (@(evt_uart_tx_start_dly)  (dut_uart_busy==1))   \
else  $display (  " ASSERTION   FAILED"  );
针对这种情况,一次成功之后后面不再显示  表示成功的上升箭头。

2.verdi针对1的这种情况,如果失败的话,(会在所有失败的地方飘红,显示下箭头)经过我自己的实验发现并不是这样的,只会出现一次failure的箭头。

3.针对COVER_UART_TX_START_BUSY_1:
assert  property  (@(evt_uart_tx_start_dly)    $rose(dut_uart_busy))   \
else  $display (  " ASSERTION   FAILED"  );
$rose 是采用两个event之间的值变化来判断的,对中间的可能发生的变化并不care。
也因此verdi的event在仿真的最初时刻均有一次触发(即上箭头表示)。
另外,这种情况下失败后在以后的失败中并不会出现其他失败的箭头,因为@event 与$rose,$fell并不能组合使用。

4.在verdi的仿真器中,如果直接assert  property的话,在波形中不会显示全部的触发状态,即使后续的触发并成功了也不会显示成功的信号;而先定义property,再assert property的话可以看到所有触发的状态,便于查看触发的时间点。

TAG:

引用 删除 kuaijin_09   /   2017-07-20 15:25:56
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2017-07-22  
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

我的存档

数据统计

  • 访问量: 75
  • 日志数: 3
  • 建立时间: 2017-07-04
  • 更新时间: 2017-07-11

RSS订阅

Open Toolbar