sv2v/test/core/interface_genvar_shadow.sv

29 lines
743 B
Systemverilog

interface intf;
parameter P;
logic [P - 1:0] x;
assign x = P;
initial $display("intf %b", x);
endinterface
module mod(intf intf[4]);
genvar i;
for (i = 0; i < 4; i++) begin : blk
for (genvar i = 0; i < 2; i++) begin : blk
initial $display("foo %0d", i);
end
initial $display("mod [%0d] %b", i, intf[i].x);
initial begin
localparam intf = "shadowed_intf";
$display("mod %s %0d %b", intf, i, mod.intf[i].x);
end
end
for (i = 0; i < 2; i++) begin
initial $display("bar %0d", i);
end
endmodule
module top;
for (genvar i = 1; i <= 8; i *= 2) begin : blk
intf #(i) intf[4]();
mod mod(intf);
end
endmodule