2010-02-26 2 views
3

나는 다음과 같은 모듈이 있습니다구문 입력으로 전선의 배열을 사용하는

module add_8bit (output wire co, 
       output wire [7:0] r, 

       input wire ci, 
       input wire [7:0] x, 
       input wire [7:0] y); 

나는 다음과 같은 코드를 통해 그것을 사용하는 것을 시도하고있다 :

wire rbit [7:0]; 
wire onebit [7:0]; 
wire twocomp [7:0]; 

wire tco, tci; 

add_8bit t9 (tco, twocomp, tci, rbit, onebit); 

이 때문에의 컴파일되지 않습니다를 마지막 줄, 왜?

감사합니다.

답변

5

두 번째 코드 스 니펫에서 와이어 선언이 맨 앞줄에 나타납니다. 해야합니다

모듈의 정의에서
wire [7:0] rbit; 
wire [7:0] onebit; 
wire [7:0] twocomp; 
+0

대단히 고맙습니다 ... 오랫동안 나를 괴롭혔습니다! – Cheetah

4

, 당신이 선언 한 3 개의 8 비트 wire 포트 :

output wire [7:0] r, 
input wire [7:0] x, 
input wire [7:0] y 

그러나, 당신의 호출 모듈에서, 당신은 8에 의해 세 개의 1 비트 폭 선언 비트 깊은 wire배열 (Verilog를, 1364-2005에 대한 IEEE 표준을 참조, 4.9 절 "배열) :

wire rbit [7:0]; 
wire onebit [7:0]; 
wire twocomp [7:0]; 

을 이 와이어 어레이를 모듈 인스턴스에 연결하면 포트 연결 유형 불일치가 발생하여 컴파일 오류가 발생합니다.

상황을 수정하려면 인스턴스에 연결하는 데 사용되는 신호 유형이 모듈 포트 유형과 일치해야합니다. 마티가 지적한 바와 같이, 대부분, 당신은 당신의 호출 모듈 wire 선언을 변경하려면 :

wire [7:0] rbit; 
wire [7:0] onebit; 
wire [7:0] twocomp; 

다른 가능성은 호출 모듈 와이어에 맞게 모듈 포트를 변경하는 것입니다,하지만 난 진심으로 의심 즉 무엇을 필요.

관련 문제