Menu
Coddy logo textTech

모듈 구조

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

모듈(Module)은 Verilog의 기본 구성 요소입니다. 모든 설계는 서로 연결되어 더 큰 시스템을 형성하는 모듈들로 구축됩니다.

모듈(module)은 다음과 같은 요소를 가진 하드웨어 구성 요소입니다:

  • 이름
  • 입력 (들어오는 신호)
  • 출력 (나가는 신호)
  • 내부 로직 (모듈이 수행하는 작업)

모듈을 핀과 내부 회로를 가진 으로 생각해 보세요.

기본 모듈 구조

모든 모듈은 다음과 같은 구조를 따릅니다:

module module_name (
  input  signals,
  output signals
);
  
  // 내부 선언 (wires, regs 등)
  // 로직 (assign statements, always blocks 등)
  
endmodule

모듈의 구성 요소

부분목적
module 키워드모듈 정의 시작
module_name모듈 이름
( )입력 및 출력 포트 목록
input / output포트 방향 선언
모듈 본문내부 로직 및 연결
endmodule모듈 정의 종료

간단한 Module 예제

module and_gate (
  input a,
  input b,
  output c
);
  assign c = a & b;
endmodule

이 모듈은 다음과 같습니다:

  • 이름이 and_gate입니다
  • 두 개의 입력(a, b)을 가집니다
  • 한 개의 출력(c)을 가집니다
  • 로직을 정의하는 한 개의 assign 문을 포함합니다

Module 구조에 대한 규칙

  1. 파일당 하나의 module을 두는 것이 일반적입니다
  2. Module name은 해당 기능을 설명해야 합니다
  3. 포트는 이름 뒤의 괄호 사이에 나열됩니다
  1. Inputs는 항상 input입니다 (내부에 쓸 수 없음)
  2. Outputsoutput입니다 (reg 또는 wire가 될 수 있음)
  3. <strong>endmodule</strong>로 모듈을 닫아야 합니다
challenge icon

챌린지

빈칸을 채워 이 모듈을 완성하세요.

해야 할 일:

  1. my_and 모듈 이름을 추가하세요.
  2. x에 대한 input을 추가하세요.
  3. y에 대한 input을 추가하세요.
  4. z에 대한 output을 추가하세요.
  5. assign을 사용하여 내부 로직을 추가하세요.

직접 해보기

module ______ (   // 모듈 이름 추가
  input x,       // 입력 추가
  input y,       // 입력 추가
  output z       // 출력 추가
);
  // 여기에 assign 문 추가 (z = x & y)
  
endmodule
quiz icon실력 점검

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

기초의 모든 레슨