将数组传递给命名端口连接

Passing an array to a named port connection

如果我向 verilog 中的任何模块发送一些参数,例如:

SUM( .a(a), .b(b), .out(out));

它将正常工作。如果我想将数组作为输入传递或想将数组作为输出怎么办?例如:

integer  a=10;
  integer  b=20;
  integer  c[2:0]={2,4,6};
  integer  d=0;

any module(.input1(a), .input2(b), .input3(c),.....)

但是会报错"cannot access memory c directly".

那么,如何在命名端口连接中发送或接收数组?

输入可以是 SystemVerilog 2009 中的数组。Verilog 1995、2001 和 2005 不支持数组端口。

module dut(
  input [7:0] a [3:0]
);

endmodule