In reply to 100rabhh:
Hi,
I firmly believe it’s related to an array of SVA concept. In this case, I would prefer to go with the generate-block idea.
property p1 (logic a, logic b);
@(posedge clk) a |-> $past(b) && !b ;
endproperty
genvar i;
generate
for(i=0;i<32;i=i+1)
begin:coding
assert property(p1(fifo_full,tag_ram[i]))
$display("Okay");
else
$display("Error seen at i = ",%0d);
end
endgenerate
Concept - at the same time we are dealing with 32 signals. A naive approach would be creating 32 assertions. The best way would be to create for loop and pass the values of each tag_ram bit as one of the arguments. All of them should happen at the same time. As per knowledge, it is possible with the help of generate-block.
Please run it with your code and let me know if it’s okay or not.