Menu
Coddy logo textTech

내장 게이트 프리미티브

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

Verilog에는 실제 게이트 기호를 사용하여 논리 회로를 기술할 수 있는 내장된 gate primitives가 있습니다. 이를 structural modeling이라고 하며, 회로도를 그리는 것처럼 게이트를 연결하여 회로를 구성합니다.

Gate primitives는 기본 논리 게이트를 모델링하는 미리 정의된 키워드입니다. assign out = a & b와 같은 표현식을 작성하는 대신 게이트를 인스턴스화합니다:

and(out, a, b);   // 출력이 out이고 입력이 a와 b인 AND 게이트

기본 구문

gate_type (output, input1, input2, ...);
  • 첫 번째 인자는 항상 output입니다
  • 그다음 인자들은 inputs입니다 (gate에 따라 1개 이상)

사용 가능한 게이트 프리미티브(Gate Primitives)

게이트 유형키워드입력(Inputs) 개수
ANDand2개 이상
ORor2개 이상
NOTnot1
NANDnand2개 이상
NORnor2개 이상
XORxor2개 이상
XNORxnor2개 이상

게이트 프리미티브(Gate Primitives)의 작동 방식

and(out, a, b)를 작성하면 Verilog는 a & b의 결과로 out을 지속적으로 구동하는 AND 게이트를 생성합니다. a 또는 b가 변경될 때마다 실제 게이트와 마찬가지로 out이 즉시 업데이트됩니다.

Gate Primitives vs Continuous Assignment

두 방법 모두 동일한 하드웨어를 생성합니다:

// 게이트 프리미티브
and(out, a, b);

// 연속 할당 (동일한 결과)
assign out = a & b;

Gate primitives는 회로를 gates의 모음(structural 스타일)으로 기술하고 싶을 때 유용합니다. Continuous assignment는 behavioral 스타일(표현식)에 더 적합합니다.

challenge icon

챌린지

수행할 작업:

  1. 이 회로가 작동하도록 올바른 gate primitive를 추가하세요. moduleinput ab의 AND 결과를 output해야 합니다. output 포트 이름은 이미 c로 지정되어 있습니다.

직접 해보기

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: 올바른 게이트 프리미티브를 추가하세요
  // 출력 c는 a AND b여야 합니다

endmodule
quiz icon실력 점검

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

기초의 모든 레슨