我知道在verilog中,多维数组不能通过模块端口传递。我听说systemverilog允许这个,这就是我开始使用systemverilog的原因。但是,对于以下代码,我仍然会遇到x和y下面显示的错误。
A reference to an entire array is not permitted in this context [Systemverilog]
这是代码。
module Chien(p, clk, reset, load);
wire [`m - 1 : 0] x [0 : `t - 1];
wire [`m - 1 : 0] y [0 : `t - 1][0 : `col];
mul_array mularray0(x, y);
endmodule
我使用ncverilog进行模拟,我使用-sv选项。我的代码有问题,还是模拟器的问题?
由于
答案 0 :(得分:2)
在Modelsim / Questa中可以正常使用,除非您需要在端口列表中声明端口,而不仅仅是端口的位置列表。
applesdrp_1
orangesdrp_2
此外,由于我引起了您的注意,请尽量不要在类型声明中使用宏。最好有参数和typedef
module Chien(input wire p, clk, reset, load);