I wanted to know when to use ->
and =>
in SVA ?
Are there any differences between
sequence A;
req |-> ##1 gnt;
endsequence
and
sequence B;
req |=> ##1 gnt;
endsequence
Please let me know.. Thank you.
I wanted to know when to use ->
and =>
in SVA ?
Are there any differences between
sequence A;
req |-> ##1 gnt;
endsequence
and
sequence B;
req |=> ##1 gnt;
endsequence
Please let me know.. Thank you.
The difference is when the antecedent (the expression on the left) succeeds, does the consequent (the expression on the right) start on the same clock cycle |->
(overlapping) or the next clock cycle |=>
(non-overlapping).
A handy way to remember this is there is only one bar in -
, so that is overlapping. And there is are two bars in =
, so that is non-overlapping.
|=>
is equivalent to |-> ##1
Therefore, req |=> ##1 gnt;
is equivalent to req |-> ##2 gnt;
Refer to IEEE Std 1800-2012 ยง 16.12.6 Implication
property name();
Enabling sequence (|-> or |=>) Consequent sequence
endproperty
Result :
when enabling sequence is 'true (1'b1) than it checks consequent sequence ..if consequent seq is 'true than assertion passes and if consequent seq is 'false than assertion fails..
When enabling seq is `false than it pass but gives display as "viscus success" and you won't able to see green arrow in waveform
while...
property name();
sequence1 (## delay) sequence2
endproperty
This is main difference of this things..I think it might help