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的话可以看到所有触发的状态,便于查看触发的时间点。