我具有以下SVA属性:
$rose(hresetn) |-> (
##[0:$] $rose(signal_a)
##[0:2] ($rose(signal_b));
在仿真过程中,如果signal_a
从未上升(在功能上可以接受),我的测试是否会出错?如果模拟器##[0:$]
在运行时从未发生过,是否将其视为错误/违规,或者将其视为从未满足的属性?
谢谢。
答案 0 :(得分:0)
SystemVerilog具有weak
和strong
属性。默认情况下,一切都是弱的,这意味着没有匹配项只是不完整的断言,即不通过也不失败。一些工具可以报告从未完成的任何声明尝试。但是,还有一个strong
属性限定符,如果在模拟结束时与序列不匹配,则会报告错误。 (请注意,并非所有工具都实现了此功能)