我試圖將一個接口傳遞給一個接口數組。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-生成「塊)的」生成「塊示例。 – sharvil111
好的。謝謝。如果是這種情況,我如何將生成的具有不同數據寬度參數的實例分配給front_interface? –