【问题标题】:SVA (SystemVerilog Assertions) : Difference between $assertoff and $assertkill?SVA(SystemVerilog 断言):$assertoff 和 $assertkill 之间的区别?
【发布时间】:2013-03-01 14:21:17
【问题描述】:

使用 SystemVerilog 断言,$assertoff;$assertkill; 有什么区别?

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

【问题讨论】:

    标签: verilog system-verilog system-verilog-assertions


    【解决方案1】:

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

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

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

    来自 Cadence 帮助:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 2015-06-22
        • 1970-01-01
        • 2019-08-09
        • 1970-01-01
        • 2021-07-15
        • 1970-01-01
        相关资源
        最近更新 更多