2017-01-30 4 views
1

아래의 코드 조각과 같이 Verilog에서 2 차원 배열을 초기화하려고합니다.Verilog에서 2 차원 배열을 선언하면 변수의 불법적 인 재 선언 오류가 발생합니다.

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

컴파일 한 후 나는 다음과 같은 오류

ERROR:HDLCompilers:27 - "Combinational_output.v" line 24 Illegal redeclaration of 'number_c' ERROR:HDLCompilers:27 - "Combinational_output.v" line 25 Illegal redeclaration of 'result_c'

을 얻고있다 그리고 당신은 ANSI 및 비 ANSI 포트 스타일을 혼합하는이

module Combinational_outputss(output number_c,output result_c 
); 

답변

2

처럼 내 모듈 보인다. 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 
);