Menu
CoddyTech

모듈 구조

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

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

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

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

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

기본 모듈 구조

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

module module_name (
  input  signals,
  output signals
);
  
  // 내부 선언(wires, regs 등)
  // 논리(assign 문, always 블록 등)
  
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</code)가 있습니다</li><li data-list-item-id="e2b20722397addf9afc79ef426560f58c">출력 하나(<code>c</code)가 있습니다</li><li data-list-item-id="e5a1af998db3be7e6240faf5735f09167">논리를 정의하는 <code>assign 문 하나를 포함합니다

모듈 구조 규칙

  1. 파일당 모듈 하나가 일반적인 관행입니다
  2. 모듈 이름은 해당 기능을 설명해야 합니다
  3. 포트는 이름 뒤 괄호 안에 나열됩니다
  1. 입력은 항상 input입니다 (내부에 쓸 수 없음)
  2. 출력은 output입니다 (reg 또는 wire일 수 있음)
  3. endmodule로 모듈을 닫아야 합니다
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실력 점검

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

기초의 모든 레슨

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