Verilog generate语句:条件端口连接

Verilog generate语句:条件端口连接,verilog,system-verilog,Verilog,System Verilog,我声明了几个连接端口的模块,如下所示: mymodule m0 ( .a(myreg[0]), .b(myreg[3]), .c(2'd0), .d(oreg1)); mymodule m1 ( .a(myreg[1]), .b(myreg[0]), .c(2'd1), .d(oreg1)); mymodule m2 ( .a(myreg[2]), .b(myreg[1]), .c(2'd2), .d(oreg1)); mymodule m3 ( .a(myreg[3]), .b(myreg[2

我声明了几个连接端口的模块,如下所示:

mymodule m0 ( .a(myreg[0]), .b(myreg[3]), .c(2'd0), .d(oreg1));
mymodule m1 ( .a(myreg[1]), .b(myreg[0]), .c(2'd1), .d(oreg1));
mymodule m2 ( .a(myreg[2]), .b(myreg[1]), .c(2'd2), .d(oreg1));
mymodule m3 ( .a(myreg[3]), .b(myreg[2]), .c(2'd3), .d(oreg2));
我正在尝试使用generate语句,但不知道如何获得连接权限

genvar i;
generate
for(i=0; i<3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(???), .c(???), .d(???);
end
endgenerate
genvari;
生成

对于(i=0;i对于0,1,2,3序列的端口连接,需要生成以下序列
3,0,1,2
。传递函数为+3模4

genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(???));
end
endgenerate
toolic建议首先创建一条导线,然后一点一点地连接:

wire [3:0] d = {oreg2,{3{oreg1}}};
genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(d[i]);
end
endgenerate
wire[3:0]d={oreg2,{3{oreg1}};
genvar i;
生成

对于(i=0;i对于0,1,2,3序列的端口连接,需要生成以下序列
3,0,1,2
。传递函数为+3模4

genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(???));
end
endgenerate
toolic建议首先创建一条导线,然后一点一点地连接:

wire [3:0] d = {oreg2,{3{oreg1}}};
genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(d[i]);
end
endgenerate
wire[3:0]d={oreg2,{3{oreg1}};
genvar i;
生成

对于(i=0;i对于0,1,2,3序列的端口连接,需要生成以下序列
3,0,1,2
。传递函数为+3模4

genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(???));
end
endgenerate
toolic建议首先创建一条导线,然后一点一点地连接:

wire [3:0] d = {oreg2,{3{oreg1}}};
genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(d[i]);
end
endgenerate
wire[3:0]d={oreg2,{3{oreg1}};
genvar i;
生成

对于(i=0;i对于0,1,2,3序列的端口连接,需要生成以下序列
3,0,1,2
。传递函数为+3模4

genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(???));
end
endgenerate
toolic建议首先创建一条导线,然后一点一点地连接:

wire [3:0] d = {oreg2,{3{oreg1}}};
genvar i;
generate
for(i=0; i<=3; i=i+1) begin : mymodules
    mymodule m (.a(myreg[i]), .b(myreg[(i+3)%4]), .c(i[1:0]), .d(d[i]);
end
endgenerate
wire[3:0]d={oreg2,{3{oreg1}};
genvar i;
生成
对于(i=0;i