3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-08-16 16:27:12 +00:00

sv: support declaration in generate for initialization

This is accomplished by generating a unique name for the genvar,
renaming references to the genvar only in the loop's initialization,
guard, and incrementation, and finally adding a localparam inside the
loop body with the original name so that the genvar can be shadowed as
expected.
This commit is contained in:
Zachary Snow 2021-08-31 11:45:02 -06:00 committed by Zachary Snow
parent b20bb653ce
commit b2e9717419
9 changed files with 209 additions and 1 deletions

View file

@ -0,0 +1,28 @@
`default_nettype none
module gate(x, y);
output reg [15:0] x, y;
if (1) begin : gen
integer x, y;
for (genvar x = 0; x < 2; x++)
if (x == 0)
initial gen.x = 10;
assign y = x + 1;
end
initial x = gen.x;
assign y = gen.y;
endmodule
module gold(x, y);
output reg [15:0] x, y;
if (1) begin : gen
integer x, y;
genvar z;
for (z = 0; z < 2; z++)
if (z == 0)
initial x = 10;
assign y = x + 1;
end
initial x = gen.x;
assign y = gen.y;
endmodule