1

$assertoff;SystemVerilog Assertions和有什么区别$assertkill;

他们似乎都停止了断言的执行。

4

2 回答 2

3

$assertoff将停止断言,除了那些已经处于活动状态的断言。

断言一旦被触发就处于活动状态,并等待移动到失败或完成。$assertoff不会停止或终止处于活动状态的断言。

$assertkill将停止所有断言,将所有断言移至关闭状态。

来自 Cadence 帮助:

$assertoff
暂停检查所有指定的断言,直到遇到 $asserton。一个已经在执行的断言,包括断言动作块,将继续执行。

$assertkill
停止检查当前正在执行的所有指定断言,然后暂停检查所有指定断言,直到遇到 $asserton。
注意: 根据 IEEE 1800 SystemVerilog 标准,由于调度问题,$assertkill 任务对立即断言和非临时并发断言没有影响。

于 2013-03-01T14:21:17.703 回答
-2

$assertoff 什么都不是,但它会停止检查所有指定的断言,除非并且直到 $assert 的 sunsequent 开启。

当你处理一个断言时,它不会影响我的断言是通过还是失败。

于 2015-04-30T11:27:06.457 回答