sv2v/test/basic/unnamed_genblk_cascade.sv

37 lines
801 B
Systemverilog

module example;
parameter P = 0;
`define BLK genblk1
if (P == 1) integer w = 1;
else if (P == 2) integer x = 2;
else if (P == 3) integer y = 3;
else integer z = 9;
`undef BLK
`define BLK genblk2
case (P)
1 : integer w = 1;
2 : integer x = 2;
3 : integer y = 3;
default: integer z = 9;
endcase
`undef BLK
`define BLK genblk3
if (1) wire a = 1;
endmodule
module top;
`define TEST(i, v) \
example #(i) e``i(); \
initial #i begin \
$display(`"e``i.genblk1.v: %0d`", e``i.genblk1.v); \
$display(`"e``i.genblk2.v: %0d`", e``i.genblk2.v); \
$display(`"e``i.genblk3.a: %0d`", e``i.genblk3.a); \
end
`TEST(1, w)
`TEST(2, x)
`TEST(3, y)
`TEST(4, z)
endmodule