Generate with partial triplicated index
Summary
Tmrg triplicate a module without error but the result does not elaborate
Describe your setup
fastrich
TMRG Version
REPRODUCED_127
Steps to reproduce
module test;
logic [31:0] outputs;
logic [2:0] selected_inputs;
generate
for (genvar i = 0; i <= 4; i++)
assign outputs[i] = i * 4;
endgenerate
always_comb
for (int i=0; i<3; i++)
selected_inputs[i] = 1'b1;
endmodule
What is the current bug behavior?
The output does not elaborate as it looks like this
module testTMR;
logic [31:0] outputsA;
logic [31:0] outputsB;
logic [31:0] outputsC;
logic [2:0] selected_inputsA;
logic [2:0] selected_inputsB;
logic [2:0] selected_inputsC;
generate
for(genvar i = 0; i<=4; i++)
assign outputsA[iA] = iA * 4;
endgenerate
always_comb
for(int iA = 0; iA<3; iA++)
selected_inputsA[iA] = 1'b1;
always_comb
for(int iB = 0; iB<3; iB++)
selected_inputsB[iB] = 1'b1;
always_comb
for(int iC = 0; iC<3; iC++)
selected_inputsC[iC] = 1'b1;
endmodule
Possible fixes
- Using a different iterator patches the issue.
- It would be good to raise an error in case of the same index being used in both generate and for loop, if the feature cannot be handled correctly by tmrg