Qualifying SVA's ##[0:$] in a simulation

632 Views Asked by At

I have the following SVA property:

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

During a simulation if signal_a never rose (which is functionally acceptable), will my test finish with an error ? Do simulators qualify ##[0:$] as an error/violation if it never happened during run-time, or it will be treated as a property never satisfied ?

Thanks.

1

There are 1 best solutions below

0
On

SystemVerilog has both weak and strong properties. By default, everything is weak meaning no match is just an incomplete assertion the neither passes or fails. Some tools can report any assertion attempt that has never completed. But there is also a strong property qualifier that will report an error if there is no match to a sequence by the end of simulation. (Note not all tools have implemented this feature)