パラメータとポート配列(またはフラット化配列メソッド)を使用することのほかに、入力/出力ポートを動的に有効/無効にすることは可能ですか? 具体的には、以下のような単純なモジュールを指定すると、必要な場合のみ(B_EN = 1)、 B_IN、B_OUTを表示することは可能ですか?Verilogで入出力ポートを動的に宣言する方法(show/no show)
例
module WEIRD_MOD#(
parameter integer WIDTH_A=8,
parameter integer B_EN=0,
parameter integer WIDTH_B=13;
)
(
input [WIDTH_A-1:0] A_IN,
output [WIDTH_A-1:0] A_OUT,
// ******************************//
// only valid/show when B_EN =1 //
// ******************************//
//input [WIDTH_B-1:0] B_IN,
//output [WIDTH_B-1:0] B_OUT,
);
genvar idx_bit;
generate
for(idx_bit=0; idx_bit<WIDTH_A; idx_bit= idx_bit+1)
begin
bit_inv inv_inst(.IN(A_OUT[idx_bit]),.OUT(A_OUT[idx_bit]));
end
if(B_EN)
begin
for(idx_bit=0; idx_bit<WIDTH_B; idx_bit= idx_bit+1)
begin
bit_buf buf_inst(.IN(B_OUT[idx_bit]),.OUT(B_OUT[idx_bit]));
end
end
endgenerate
endmodule
ifdef、ifndef –
正しく入力できません。そのifif ifdefとtick ifndef –