0
votes

Suppose I have an assertion as follows. Now here I want signal A to remain stable for some time after rising up. That is, A should be high until the first occurrence of D == 4 after that it can go low at any time it wants. Also I dont want to use ##[0:$] in this assertion.

Any help/advice would be very much appreciated. Thank you.

property p_check(A,B,C,D,E);
     @(posedge clk) disable iff(!resetn)
      $rose(A) ##1 B ##0 (C == 3) ##0 (D != 2) |=> (D == 4)[->1] ##[0:2] (!E throughout A);
   endproperty : p_check


1

1 Answers

1
votes

You should write this as a separate property.

 @(posedge clk) disable iff(!resetn)
    $rose(A) |=> $stable(A) until (D==4);