Menu
Coddy logo textTech

XOR XNOR 게이트

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

이 레슨에서는 두 가지 추가 논리 게이트인 XOR (배타적 OR)와 XNOR (배타적 NOR)를 다룹니다. 이 게이트들은 비트를 비교하고 패리티를 검사하는 데 유용합니다.

XOR Gate

XOR 게이트는 입력이 서로 다를1을 출력합니다.

진리표 (2입력):

about
000
011
101
110

Verilog 게이트 프리미티브:

xor(out, a, b);

연속 할당(Continuous assignment) 등가 표현:

assign out = a ^ b;

XNOR Gate

XNOR gate는 입력이 same일 때 1을 출력합니다. 이것은 XOR의 반대입니다.

진리표 (2입력):

about
001
010
100
111

Verilog 게이트 프리미티브:

xnor(out, a, b);

연속 할당(Continuous assignment) 동등 표현:

assign out = a ~^ b;   // 또는 ~(a ^ b)

Multiple Inputs

XOR 및 XNOR gate는 2개 이상의 input을 가질 수 있습니다. output은 다음과 같습니다:

  • XOR: 1인 input의 개수가 홀수 개일 때 1
  • XNOR: 1인 input의 개수가 짝수 개일 때 1
xor(out, a, b, c);      // 3-입력 XOR
xnor(out, p, q, r, s);  // 4-입력 XNOR

예시 (3-input XOR):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

일반적인 용도

용도예시
두 비트가 다른지 비교xor(diff, a, b)
두 비트가 같은지 비교xnor(same, a, b)
패리티 생성 (홀수 개의 1)xor(parity, data[0], data[1], data[2], data[3])
패리티 검사 (짝수 개의 1)xnor(parity, data[0], data[1], data[2], data[3])

코드 예시

module xor_xnor_demo (
  input a, b,
  output xor_out,
  output xnor_out
);
  xor(xor_out, a, b);
  xnor(xnor_out, a, b);
endmodule

요약 표

GateOutput이 1이 되는 조건PrimitiveOperator
XORinput이 서로 다를 때xor(out, a, b)^
XNORinput이 서로 같을 때xnor(out, a, b)~^
challenge icon

챌린지

태스크에 따라 누락된 게이트 프리미티브를 추가하세요.

수행할 작업:

  1. 출력이 xor_result이고 입력이 xy인 XOR 게이트를 생성하세요.
  2. 출력이 xnor_result이고 입력이 xy인 XNOR 게이트를 생성하세요.

직접 해보기

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // TODO: XOR 게이트 추가 (xor_result = x ^ y)
  
  // TODO: XNOR 게이트 추가 (xnor_result = x ~^ y)

endmodule
quiz icon실력 점검

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

기초의 모든 레슨