Menu
Coddy logo textTech

첫 번째 모듈 만들기

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

모듈은 Verilog의 기본 구성 요소입니다. 모든 Verilog 코드 조각은 모듈 내부에 있습니다.

모듈을 다음과 같은 기능을 가진 컴포넌트라고 생각하세요:

  • 입력(Inputs) (들어오는 신호)
  • 출력(Outputs) (나가는 신호)
  • 동작(Behavior) (수행하는 작업)

모듈 구문

module module_name ( inputs, outputs );

  // 여기에 모든 내용이 들어갑니다

endmodule

모든 모듈은 module로 시작하고 endmodule로 끝납니다.

입력과 출력

module and_gate(
  input a,     // a는 모듈 내부로 들어옵니다
  input b,     // b는 모듈 내부로 들어옵니다
  output c     // c는 모듈 외부로 나갑니다
);

  // 동작 로직이 여기에 들어갑니다

endmodule
  • input = 신호가 모듈로 들어옵니다
  • output = 신호가 모듈을 나갑니다

동작 추가하기

이제 모듈이 무언가를 수행하도록 만들어 보겠습니다:

module and_gate(
  input a,
  input b,
  output c
);

  assign c = a & b;  // a와 b가 모두 1일 때만 c가 1이 됩니다

endmodule
  • assign은 오른쪽을 왼쪽에 지속적으로 연결합니다
  • &는 Verilog에서 AND를 의미합니다
challenge icon

챌린지

이 챌린지에서는 OR 연산을 수행하는 간단한 모듈을 만들어야 합니다.

수행할 작업:

  1. 모듈의 이름은 or_gate여야 합니다.
  2. x라는 이름의 입력을 가져야 합니다.
  3. y라는 이름의 입력을 가져야 합니다.
  4. z라는 이름의 출력을 가져야 합니다.
  5. 모듈 내부에서 assign을 사용하여 zx OR y와 같게 만드세요.

참고: Verilog에서 OR는 파이프 기호 |로 작성합니다. 입력 중 적어도 하나가 1(참)이면 1(참)을 출력합니다.

치트 시트

모듈(module)은 Verilog의 기본 빌드 블록으로, 입력, 출력 및 동작을 가진 구성 요소 역할을 합니다.

module module_name (
  input a,
  input b,
  output c
);

  // behavior

endmodule

출력 신호를 지속적으로 구동하려면 assign을 사용하세요:

assign c = a & b;  // AND
assign c = a | b;  // OR
  • & — AND 연산자
  • | — OR 연산자

직접 해보기

// 1단계: or_gate라는 이름의 모듈 생성

  // 2단계: 입력 x 생성

  // 3단계: 입력 y 생성

  // 4단계: 출력 z 생성

  // 5단계: assign을 사용하여 z = x OR y 만들기
  // Verilog에서 OR는 |로 작성됨
quiz icon실력 점검

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

기초의 모든 레슨