Menu
Coddy logo textTech

Port Mapping By Order

Coddy Verilog 여정의 기초 섹션에 포함된 레슨. 90개 중 35번째.

이전 레슨에서는 이름으로 포트 매핑하는 방법을 배웠습니다. 이 방법에서는 .port(signal)를 사용하여 각 연결에 명시적으로 레이블을 지정합니다. 이제 대안인 순서로 포트 매핑하는 방법을 살펴보겠습니다.

모듈 정의에 나타나는 order에 따라 신호를 모듈의 ports에 연결합니다. 괄호 안에 signals를 나열하기만 하면 Verilog가 이를 하나씩 일치시킵니다.

구문:

module_name instance_name (signal1, signal2, signal3);

첫 번째 signal은 첫 번째 port에 연결되고, 두 번째 signal은 두 번째 port에 연결되는 식입니다.

예제

모듈 정의:

module or_gate (
  input in1,      // 첫 번째 포트
  input in2,      // 두 번째 포트
  output result   // 세 번째 포트
);
  assign result = in1 | in2;
endmodule

순서에 따른 포트 매핑을 사용한 인스턴스화:

or_gate or1 (input_a, input_b, output_y);

다음과 같이 연결됩니다:

  • First signal input_a → first port in1
  • Second signal input_b → second port in2
  • Third signal output_y → third port result

순서가 중요합니다

순서에 따른 포트 매핑에서는 순서가 매우 중요합니다:

// 올바른 순서
or_gate or1 (input_a, input_b, output_y);

// 잘못된 순서 - 신호가 잘못된 포트에 연결됨!
or_gate or1 (input_b, input_a, output_y);
or_gate or1 (output_y, input_a, input_b);

순서를 뒤섞으면 연결이 잘못된 포트로 연결됩니다. 코드는 처음 얼핏 보기에는 correct해 보이기 때문에 디버깅하기 어려울 수 있습니다.

이름으로 포트 매핑하기 vs 순서대로 포트 매핑하기

기능이름으로순서대로
Syntax.port(signal)signal1, signal2
순서가 중요한가?아니요
자기 설명적인가?아니요
실수 위험낮음높음
권장 대상대부분의 설계간단한 경우에만

ORDER에 따른 포트 매핑을 사용하는 경우

다음과 같은 경우에는 ORDER에 따른 포트 매핑을 사용해도 괜찮습니다.

  • 모듈에 포트가 매우 적은 경우(2-3개)
  • 포트 순서가 명확하고 변경될 가능성이 낮은 경우
  • 빠른 테스트벤치를 작성하는 경우

대부분의 설계에서는 더 명확하고 오류가 발생할 가능성이 적기 때문에 이름을 통한 포트 매핑이 선호됩니다.

challenge icon

챌린지

올바른 순서로 신호를 나열하여 순서에 따른 포트 매핑을 사용해 인스턴스화를 완료하세요.

할 일:

모듈 포트(이 순서대로):

  1. input en (enable)
  2. input [7:0] d (data input)
  3. output [7:0] q (data output)

연결할 신호:

  • enable_signalen에 연결
  • data_inputd에 연결
  • data_outputq에 연결

직접 해보기

module register (
  input en,
  input [7:0] d,
  output [7:0] q
);
  assign q = en ? d : q;
endmodule

module top (
  input enable_signal,
  input [7:0] data_input,
  output [7:0] data_output
);
  
  // TODO: ORDER 매핑을 사용하여 reg1이라는 이름으로 register를 인스턴스화하세요
  // 올바른 순서로 신호를 나열하세요: enable_signal, data_input, data_output
  // .port(signal) 구문을 사용하지 마세요

endmodule
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 Verilog 컴파일러