将数组传递给命名端口连接
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
如果我向 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