Menu
Coddy logo textTech

Module Structure

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

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

모듈은 다음을 갖춘 하드웨어 구성 요소입니다:

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

모듈을 핀과 내부 회로가 있는 이라고 생각해 보세요.

기본 module 구조

모든 module은 다음 구조를 따릅니다:

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

모듈의 구성 요소

구성 요소목적
module 키워드모듈 정의를 시작합니다
module_name모듈의 이름
( )입력 및 출력 포트 목록
input / output포트 방향을 선언합니다
모듈 본문내부 로직 및 연결
endmodule모듈 정의를 끝냅니다

간단한 모듈 예제

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

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

  • and_gate라는 이름입니다
  • 두 개의 입력(a, b)이 있습니다
  • 하나의 출력(c)이 있습니다
  • 논리를 정의하는 하나의 assign statement를 포함합니다

모듈 구조 규칙

  1. 파일당 하나의 모듈이 일반적인 관행입니다
  2. 모듈 이름은 해당 모듈의 기능을 설명해야 합니다
  3. 포트는 이름 뒤의 괄호 안에 나열됩니다
  1. 입력은 항상 input입니다(내부에 작성할 수 없음)
  2. 출력output입니다(reg 또는 wire일 수 있음)
  3. <strong>endmodule</strong>은 module을 닫아야 합니다
challenge icon

챌린지

이 모듈을 완성하려면 누락된 부분을 채우세요.

수행할 작업:

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

직접 해보기

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

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

기초의 모든 레슨

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