Возможно ли иметь переменное имя модуля, которое затем могло быть выбрано каким-либо параметром? Я ищу синтаксис для if...else
внутри определения макроса.
module test;
`define NAME(x) if (x == 0) mod_e else mod_w
generate
for (genvar i = 0; i < 2; i++) begin
`NAME(i) inst_name (.a(a),.b(b),...);
end
endgenerate
endmodule
Один из способов - сделать это, как показано ниже, но он требует подключения всех портов 2 раза, что неудобно для модулей с сотнями IOs и подвержены ошибкам.
module test;
generate
if (SOME_PARAM == 0) begin
mod_e inst_name (.a(a),.b(b),...);
end else begin
mod_w inst_name (.a(a),.b(b),...);
end
endgenerate
endmodule