Asseritons

Hai folks,

I have a scenario like when fifo_full signal is high then if read_en is asserted high then write_en will become low on the next clock cycle.

I have written like this →

property p1;
@(posedge clk) disableif(!reset) fifo_full |-> ##[1:3] read_en |=> write_en==0;
endproperty

read_en may assert at any time. I cannot say when it will be asserted.

could you please correct me if I am wrong.

In reply to Vickyvinayk:
I think this works.


property P;
@(posedge clk) disable iff (!reset)
$rose(fifo_full) ##[0:$] $rose(read_en) ##1 $fell(write_en);
endproperty

In reply to Bandaru sateesh:

 
first_match($rose(fifo_full)##[1:3] read_en) |=> write_en==0;

Ben systemverilog.us

In reply to Bandaru sateesh:

ya thanks for the response satheesh.

In reply to ben@SystemVerilog.us:

thank you ben. I have also seen your post regarding the first_match usage.