11

カスタムモジュールのインスタンスの配列を作成できますか?

例:次のようにすることができますinput [15:0] a;-これによりバスが作成されます。カスタムモジュールに対して同じことを行うことができますか?つまりDFF [15:0] d;、DFFはカスタムモジュールです。ここでは、DFFモジュールのインスタンスを16個作成する予定です。

4

2 に答える 2

26

インスタンスの Verilog 配列は、Verilog-1995 (IEEE 1364-1995) で追加されました。これらは、ゲート、ユーザー定義のプリミティブ、およびモジュールで使用できます。Verilog-2001 では、より強力で複雑なジェネレートが追加されました。

モジュール インスタンスの配列の例を次に示します。

DFF d[15:0] (clk, DFF_i, DFF_o);

ポート接続ごとに、サイズが仮パラメータのサイズと一致する場合、すべてのインスタンスに接続されます。それ以外の場合、各インスタンスは式の部分選択 (またはビット選択) に接続されます。

于 2009-09-04T16:06:32.647 に答える
9

これを直接行うことはできません(更新: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

それ以外の場合は、合成中に正しいカスタム モジュールを使用する可能性がありますが、私はその専門家ではありません。

乾杯、ダニエル

于 2009-09-04T10:54:17.173 に答える