カスタムモジュールのインスタンスの配列を作成できますか?
例:次のようにすることができますinput [15:0] a;
-これによりバスが作成されます。カスタムモジュールに対して同じことを行うことができますか?つまりDFF [15:0] d;
、DFFはカスタムモジュールです。ここでは、DFFモジュールのインスタンスを16個作成する予定です。
カスタムモジュールのインスタンスの配列を作成できますか?
例:次のようにすることができますinput [15:0] a;
-これによりバスが作成されます。カスタムモジュールに対して同じことを行うことができますか?つまりDFF [15:0] d;
、DFFはカスタムモジュールです。ここでは、DFFモジュールのインスタンスを16個作成する予定です。
インスタンスの Verilog 配列は、Verilog-1995 (IEEE 1364-1995) で追加されました。これらは、ゲート、ユーザー定義のプリミティブ、およびモジュールで使用できます。Verilog-2001 では、より強力で複雑なジェネレートが追加されました。
モジュール インスタンスの配列の例を次に示します。
DFF d[15:0] (clk, DFF_i, DFF_o);
ポート接続ごとに、サイズが仮パラメータのサイズと一致する場合、すべてのインスタンスに接続されます。それ以外の場合、各インスタンスは式の部分選択 (またはビット選択) に接続されます。
これを直接行うことはできません(更新:mark4oの回答の後、方法があることがわかりました)が、generate
ステートメントを使用してカスタムモジュールの複数のインスタンスを作成し、それらをシグナルに接続することができます。次のようになります。
wire DFF_i[15:0];
wire DFF_o[15:0];
generate
genvar i;
for (i=0; i<15; i=i+1) begin : dff
custom i_custom(
.clk(clk)
,.input(DFF_i[i])
,.output(DFF_o[i])
);
end
endgenerate
それ以外の場合は、合成中に正しいカスタム モジュールを使用する可能性がありますが、私はその専門家ではありません。
乾杯、ダニエル