いくつかの入力といくつかのパラメータが必要なカスタムモジュールがVerilogにあります。私が使用している特定のハードウェアに関連する様々な理由のため追加のパラメータを使用してVerilogでカスタムモジュールのベクトルをインスタンシエート
module modA (
input inp1, input inp2, ... output out);
parameter my_addr;
...
endmodule
、私はこのモジュール、異なるパラメータを有する各時間(my_addrはメモリ内の特定の場所に対応するので、私は多くのインスタンスを作成する必要がありますホストからのアクセス)。さらに、すべての出力に簡単にアクセスしたいと思います。私は、それでは、私はall_modAの要素のベクトルを持っているでしょう
wire [9:0] outputs;
modA #(.my_addr) all_modA[9:0](.inp1(inp1), .inp2(inp2), .out(outputs));
のような何かを考え、出力のn番目の要素はMODAのn番目のインスタンス化に対応することになります。それはうまくいくように聞こえますが、私は各インスタンシエーションに一意のアドレスを渡す必要があります。一度に1つのインスタンス化を行っていただけでは、パラメータを定義するのは非常に簡単でしたが、毎回一意の識別子をどのように渡すことはできません。
これを行う方法はありますか?問題は、forループを使用すると、各modAを一意の識別子でどのようにインスタンス化できるかわかりません。 forループを使用しないと、一意の識別子を追加する方法がわかりません。
some_identifierが何であるかはどのように判断できますか? – user147177
** 'begin..end'ブロックの** **識別子です。これは、生成ブロックのユーザー定義ラベルです。ここでは任意の文字列を使用できます。 – sharvil111
私の場合、各出力は16ビットのワイヤです。 "wire [15:0] outputs [0:10];"と書くか? – user147177