mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-23 00:55:32 +00:00
fix local name resolution in prefix constructs
This commit is contained in:
parent
90bce04156
commit
a5f4b83637
2 changed files with 62 additions and 2 deletions
|
@ -90,5 +90,61 @@ generate
|
|||
endcase
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
||||
|
||||
// ------------------------------------------
|
||||
|
||||
module gen_test4(a, b);
|
||||
|
||||
input [3:0] a;
|
||||
output [3:0] b;
|
||||
|
||||
genvar i;
|
||||
generate
|
||||
for (i=0; i < 3; i=i+1) begin : foo
|
||||
localparam PREV = i - 1;
|
||||
wire temp;
|
||||
if (i == 0)
|
||||
assign temp = a[0];
|
||||
else
|
||||
assign temp = foo[PREV].temp & a[i];
|
||||
assign b[i] = temp;
|
||||
end
|
||||
endgenerate
|
||||
endmodule
|
||||
|
||||
// ------------------------------------------
|
||||
|
||||
module gen_test5(input_bits, out);
|
||||
|
||||
parameter WIDTH = 256;
|
||||
parameter CHUNK = 4;
|
||||
|
||||
input [WIDTH-1:0] input_bits;
|
||||
output out;
|
||||
|
||||
genvar step, i, j;
|
||||
generate
|
||||
for (step = 1; step <= WIDTH; step = step * CHUNK) begin : steps
|
||||
localparam PREV = step / CHUNK;
|
||||
localparam DIM = WIDTH / step;
|
||||
for (i = 0; i < DIM; i = i + 1) begin : outer
|
||||
localparam LAST_START = i * CHUNK;
|
||||
for (j = 0; j < CHUNK; j = j + 1) begin : inner
|
||||
wire temp;
|
||||
if (step == 1)
|
||||
assign temp = input_bits[i];
|
||||
else if (j == 0)
|
||||
assign temp = steps[PREV].outer[LAST_START].val;
|
||||
else
|
||||
assign temp
|
||||
= steps[step].outer[i].inner[j-1].temp
|
||||
& steps[PREV].outer[LAST_START + j].val;
|
||||
end
|
||||
wire val;
|
||||
assign val = steps[step].outer[i].inner[CHUNK - 1].temp;
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
assign out = steps[WIDTH].outer[0].val;
|
||||
endmodule
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue