在模拟中验证SVA的## [0:$]

时间:2018-11-22 15:39:07

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

我具有以下SVA属性:

$rose(hresetn) |-> (
        ##[0:$] $rose(signal_a)
        ##[0:2] ($rose(signal_b));

在仿真过程中,如果signal_a从未上升(在功能上可以接受),我的测试是否会出错?如果模拟器##[0:$]在运行时从未发生过,是否将其视为错误/违规,或者将其视为从未满足的属性?

谢谢。

1 个答案:

答案 0 :(得分:0)

SystemVerilog具有weakstrong属性。默认情况下,一切都是弱的,这意味着没有匹配项只是不完整的断言,即不通过也不失败。一些工具可以报告从未完成的任何声明尝试。但是,还有一个strong属性限定符,如果在模拟结束时与序列不匹配,则会报告错误。 (请注意,并非所有工具都实现了此功能)