在verilog中声明一个二维数组会给我一个非法重新声明变量的错误

时间:2017-01-30 19:56:55

标签: arrays multidimensional-array verilog xilinx-ise

我正在尝试在verilog中初始化一个二维数组,如下面的代码片段所示。

parameter N=4;
 reg [N-1:0] number_c[2**N-1:0];
 reg [N-1:0] result_c;
编译后

我收到以下错误

  

错误:HDLC编译器:27 - “Combinational_output.v”第24行非法重新声明'number_c'   错误:HDLCompilers:27 - “Combinational_output.v”第25行非法重新声明'result_c'

我的模块看起来像这样

module Combinational_outputss(output number_c,output result_c
);

1 个答案:

答案 0 :(得分:2)

您正在混合使用ANSI和非ANSI端口样式。请参阅IEEE Std 1800-2012,第23.2.3节参数化模块。这使用ANSI样式:

module Combinational_outputss #(parameter N=4)
(
    output reg [N-1:0] number_c[2**N-1:0],
    output reg [N-1:0] result_c
);