module A#(parameter NUM_PORT=2);
logic port_wire[NUM_PORT];
DUT dut_inst(
generate
for(genvar idx=0; idx<NUM_PORT; idx++) begin:num_port
.port[idx] (port_wire[idx]);
end:num_port
endgenerate
);
endmodule
是否可以在生成块的上述实现方式中使用?我的意思是在模块实例化内。抱歉,这个问题太傻了。
答案 0 :(得分:1)
不,您不能在端口列表的中间使用generate构造。
但是,如果列表中的端口之一是数组,则可以这样做
module A#(parameter NUM_PORT=2);
logic port_wire[NUM_PORT];
DUT dut_inst(
.port (port_wire);
);
endmodule
module DUT #(int NP=2)(input logic port[NP]);
...
endmodule