You can try declaring a property with ports so that you can reuse it for multiple statements. Then declare your statements using the generation loop.
module ... property prop1(signal1,signal2); @(posedge clk) bb_seq |=> signal1 == signal2 ; endproperty ... generate for (genvar i = 0; i < 8; i++) for (genvar j = 0; j < 8; j++) begin : assert_array assert property (prop1(bb_exp[i][j],bb_rtl[i][j])); end endgenerate ... endmodule
You can also embed a property in a statement:
module ... generate for (genvar i = 0; i < 8; i++) for (genvar j = 0; j < 8; j++) begin : assert_array assert property (@(posedge clk) bb_seq |=> bb_exp[i][j] == bb_rtl[i][j]); end endgenerate ... endmodule
user597225
source share