Guys,
I have an assertion for the signal which get its initial value after reset and should not change throughout simulation.
disable (reset) (multi_factor) |-> $stable(multi_factor);
But, I’m getting assertion failure on reset, since it is initialized at the same clock.
Is below is right?
disable (reset) (multi_factor) |=> $stable(multi_factor);
req_length should not change as long as req_valid is high and until req_ready is high.
disable (reset) $rose(req_valid) |-> $stable(req_length)[*0:$] ##1 $rose(req_ready);
I tried…
disable (reset) $rose(req_valid) |=> $stable(req_length)[*0:$] ##1 $rose(req_ready);
disable (reset) $rose(req_valid) |=> $stable(req_length)[*1:$] ##1 $rose(req_ready);
but did not work.
Note: req_length, res_length and multi_factor are intergers.
And,
I have another question about “cover property”.
How do we avoid the “fake” pass?
If property did not start (antecedence fails) , coverage would be pass/fail?
And one more…
basic question.
What is the difference between property and sequence? I know that property has “implication” and sequence doesnt.
See my example below…
property p1;
reqA |-> resA;
endproperty
assert p1;
sequence s1;
reqA ##0 resA;
endsequence
assert s1;
property p2;
reqB |=> resB;
endproperty
assert p2;
sequence s2;
reqB ##1 resB;
endsequence
assert s2;
Please clarify.
John