Next Cycle Implication operator does not work

In reply to OE93:

In reply to UVM_LOVE:
Look, I’m not a SVA expert at all, and it’s so embarrassing to even open my mouth when Ben is also responding to you…
But in general I have two basic recommendations:

  1. Add prints that describe the situation when the assert fails:
    asset () else $error(“expect that a = … but a = %b, b = %b, time = %t”, a,b,$time);

[Ben] You need the $sampled

asset property () else 
$error("expect that a = ... but a = %b, b = %b, time = %t", 
         $sampled(a),$sampled(b),$realtime);
  1. Write a property with arguments, and send arguments when you assert:
    property check(clk,a)…endproperty
    assert property (c,x) else $error(…);
    here c = clk and x = a.

Unless you see the need for reuse, which is usually rare, I do not use arguments because they make the assertion hard to read. For me, I have to mentally convert the formal arguments to the actual arguments while I am composing or reading an assertion.
Sorry, it gives me mental “fatigue!”
:)
Ben