インターフェイスの配列であるモジュールにインターフェイスを渡そうとしています。systemverilog - >別のインターフェイスをインスタンス化するインターフェイスからパラメータを渡す
interface front_port #(parameter DATA_WIDTH = 4);
logic [DATA_WIDTH - 1 : 0] data;
logic acknowledge;
modport f_interface(input data, output acknowledge);
endinterface
interface front_interface #(parameter NO_OF_IN_PORTS = 3);
front_port front_ports[NO_OF_IN_PORTS]();
endinterface
module A #(parameter NO_OF_IN_PORTS = 3)
(
interface front_port;
);
module testbench;
font_interface #(.NO_OF_IN_PORTS(3)) my_front_interface();
A #(.NO_OF_IN_PORTS(3)) (.front_port(my_front_interface));
endmodule
だから、私の質問は、my_front_interfaceの配列要素は、DATA_WIDTHの異なる値を持つことができます。もしそうなら、どうですか? my_front_interfaceのすべての配列要素の上に定義されたコードでは私のコメントから、次の4
おかげ
をあなたが使用について確信していますネストされたモジュール?モジュールAをインスタンス化するとき、入力引数は 'front_interface'型の' my_front_interface'ですが、 'my_front_interface'インスタンスは' front_interface'型です。モジュール宣言は 'module A ...(front_interface fr_if) '。 – sharvil111
変数 'DATA_WIDTH'では、単純にインスタンスの配列を作成するのではなく、さまざまなデータ幅パラメータで複数のインスタンスを作成するための' generate'ブロックが必要です。 [このリンク](http://www.asic-world.com/verilog/verilog2k2.html)と[この質問]を参照してください(http://stackoverflow.com/questions/17734329/system-verilog-parameters-in- generate-block)のブロック例を示しています。 – sharvil111
ありがとうございました。その場合、生成されたインスタンスにさまざまなデータ幅のパラメータをfront_interfaceに割り当てるにはどうすればいいですか? –