Parameters 接口SystemVerilog的参数化数组

Parameters 接口SystemVerilog的参数化数组,parameters,interface,system-verilog,Parameters,Interface,System Verilog,我试图在SystemVerilog中创建一个接口实例的参数化数组,但不知何故未能做到这一点 interface if_dma(); logic [31:0] addr; logic [31:0] data; endinterface module mux(clk, rst, if_dma dma_ports[n-1:0]); //logic endmodule module dma_top(); if_dma dma(); mux #(n=3)(.clk(clk), .rst(rs

我试图在SystemVerilog中创建一个接口实例的参数化数组,但不知何故未能做到这一点

interface if_dma();
logic [31:0] addr;
logic [31:0] data;
endinterface

module mux(clk, rst, if_dma dma_ports[n-1:0]); 

//logic

endmodule

module dma_top();

if_dma dma();

mux #(n=3)(.clk(clk), .rst(rst), dma_ports[0](rx_channel), dma_ports[1](tx_channel));

endmodule

不能将
dma_端口[0]
dma_端口[1]
作为单独的端口。一次性将它们放在一起:
.dma\u端口({tx\u通道,rx\u通道})

mux
的标题是奇数。不确定您是否正在尝试简化
mux
的标题,或者它是您真正拥有的。如果使用的是非ANSI端口样式,则不要在端口列表中指定范围。范围规格在端口定义中(例如:
输入时钟;
输出[7:0]输出;
如果dma\u端口[N];
)。对于ANSI端口,则端口列表和定义相同。例:

module mux #(parameter N=1) (input clk, rst, if_dma dma_ports[N-1:0]);

请勿混合使用ANSI和非ANSI端口样式。通常建议使用ANSI样式。

错误:“dma\U端口”已在此范围(mux)中声明,与其在注释中添加详细信息,不如编辑问题并将其放在那里。您需要解释什么是rx\U通道和tx\U通道。不能将单个端口拆分为多个端口连接、接口或无接口端口