bitGateLab Digital · 배우기
한국어
시뮬레이터 열기

배우기 › 주제 1

논리 게이트: NOT, AND, OR, NAND, NOR, XOR, XNOR

읽는 시간 7분 · bitGateLab 팀

신호등에서 프로세서에 이르기까지 모든 디지털 전자 회로는 0과 1로 판단을 내리는 몇 가지 블록, 곧 논리 게이트로 만들어집니다. 여기서는 일곱 가지 기본 게이트가 어떻게 그려지고, 부울 대수로 어떻게 표현되며, 진리표가 어떻게 되는지 알아봅니다. 마지막에는 NAND나 NOR 한 종류의 게이트만으로 나머지 게이트를 모두 만들 수 있는 이유도 살펴봅니다.

논리 레벨: 0과 1의 의미

디지털 회로에서 각 신호는 두 가지 상태 중 하나만 가질 수 있습니다. 낮은 전압(0 V 근처)을 논리 0 또는 거짓이라 하고, 높은 전압(전원 전압 근처, 예를 들어 5 V나 3.3 V)을 논리 1 또는 참이라고 합니다. 게이트는 하나 이상의 입력을 받아 출력 하나를 내보내는데, 이 출력은 오직 입력의 현재 값에만 의존합니다. 아무것도 기억하지 않는다는 뜻입니다. 그래서 게이트로 이루어진 회로를 조합 논리라고 합니다.

게이트를 가장 완전하게 설명하는 방법은 진리표입니다. 가능한 모든 입력 조합과 각 조합에 해당하는 출력을 나열한 표입니다. 입력이 n개이면 조합은 2n개이므로, 입력이 두 개인 게이트의 진리표는 4행이고 입력이 세 개인 게이트의 진리표는 8행입니다.

ABY ABY AY ANDORNOT
AND(평평한 뒷면과 둥근 앞면), OR(오목한 입력 쪽과 뾰족한 끝), NOT(삼각형과 버블)의 고유한 기호 모양.

세 가지 기본 게이트

NOT(인버터)

입력이 하나뿐이며 그 반대 값을 내보냅니다. 0이 들어오면 1이 나오고 1이 들어오면 0이 나옵니다. Y = A로 씁니다(A'나 ¬A로 쓰기도 합니다). 기호는 끝에 버블(작은 원)이 달린 삼각형이며, 이 버블은 "여기서 반전된다"는 것을 나타내는 공통 표시입니다.

AY = A
01
10

AND(논리곱)

출력은 모든 입력이 1일 때만 1이 됩니다. 곱셈처럼 Y = A·B 또는 간단히 Y = AB로 씁니다. 직렬로 연결한 스위치 두 개를 떠올려 보세요. 둘 다 닫혀 있어야만 전구가 켜집니다.

OR(논리합)

출력은 입력 중 하나 이상이 1이면 1이 됩니다. 덧셈처럼 Y = A + B로 씁니다. 병렬로 연결한 스위치 두 개와 같습니다. 주의하세요. 부울 대수에서는 1 + 1 = 1이지 2가 아닙니다.

파생 게이트: NAND, NOR, XOR, XNOR

NAND는 AND 뒤에 인버터를 붙인 것입니다: Y = AB. 모든 입력이 1일 때만 출력이 0입니다. NOR는 OR를 반전한 것입니다: Y = A + B. 모든 입력이 0일 때만 1이 됩니다. 기호에서는 둘 다 출력에 버블이 붙습니다.

XOR(배타적 OR)는 입력이 서로 다를 때 1이 됩니다: Y = A ⊕ B = AB + AB. 입력이 셋 이상이면 XOR는 1의 개수가 홀수일 때 1이 되므로 패리티 비트를 계산하는 데 쓰입니다. XNOR는 그 보수로 Y = A ⊕ B = AB + A B이며, 입력이 서로 같을 때 1이 됩니다. 한 비트짜리 일치 비교기인 셈입니다.

다음은 입력이 두 개인 여섯 가지 게이트의 진리표를 하나로 모은 것입니다.

ABANDORNANDNORXORXNOR
00001101
01011010
10011010
11110001
검산 요령: 반전된 열(NAND, NOR, XNOR)은 각각 바탕이 되는 게이트의 열에서 0과 1을 행마다 맞바꾼 것과 정확히 같습니다.

예제: 작은 회로 계산하기. Y = (A + B) · C를 A = 0, B = 1, C = 1일 때 계산해 보세요.

  1. OR: A + B = 0 + 1 = 1.
  2. 반전: 1 = 0.
  3. C와 AND: 0 · 1 = 0.

결과: Y = 0. A = 0, B = 0, C = 1이면 OR는 0, 인버터는 1, AND는 1을 내므로 Y = 1입니다.

NAND와 NOR: 범용 게이트

어떤 게이트 한 종류만 여러 개 써서 NOT, AND, OR를 만들 수 있고, 따라서 어떤 논리 함수든 만들 수 있다면 그 게이트는 범용 게이트입니다. NAND와 NOR가 이 성질을 가집니다. 여기에는 실용적인 의미가 있습니다. 제조사는 한 종류의 셀만 생산해 설계 전체를 구성할 수 있고, 여러분은 74HC 계열의 칩 하나만으로 회로 전체를 해결할 수 있습니다(예를 들어 74HC00에는 입력이 두 개인 NAND가 네 개 들어 있습니다).

NAND만으로 만들기

NOR만으로 만들기

예제: NAND 네 개로 만드는 XOR. N1 = AB, N2 = A·N1, N3 = B·N1, Y = N2·N3라고 합시다. 네 가지 경우를 확인해 보세요.

ABN1N2N3Y
001110
011101
101011
110110

Y 열이 XOR의 열과 일치합니다. 게이트는 네 개, 칩은 하나면 됩니다.

흔한 실수

시뮬레이터에서 해 보기

이 표들을 외우는 가장 좋은 방법은 직접 만들어 보는 것입니다. 회로 편집기에서 게이트를 놓고 입력을 바꿔 가며 출력을 바로 확인할 수 있습니다. 그런 다음 도구가 계산해 주는 진리표와 비교해 보세요.

  1. 입력 두 개, NAND 게이트 하나, 출력 하나를 놓고 서로 연결합니다.
  2. 입력을 네 가지 조합으로 바꿔 가며 각 경우의 출력을 적습니다.
  3. 회로의 진리표를 생성해 이 글의 진리표와 비교합니다.
  4. 예제의 NAND 네 개짜리 XOR를 만들고, 그 진리표가 XOR 게이트 하나의 진리표와 일치하는지 확인합니다.
  5. 가상 브레드보드로 옮겨 보고 싶다면 74HC 계열의 NAND 칩을 놓고 전원을 연결한 뒤 출력 LED를 관찰합니다.

연습문제

  1. Y = A + B의 진리표를 작성하세요.
    정답

    AB = 00, 01, 10, 11일 때 출력은 1, 0, 1, 1입니다. A = 0이고 B = 1일 때만 0이 됩니다.

  2. 입력이 4개인 AND의 진리표는 몇 행이며, 그중 출력이 1인 행은 몇 개입니까?
    정답

    24 = 16행이며, 출력이 1인 행은 하나(1111)뿐입니다.

  3. A = 1, B = 1, C = 1일 때 입력이 세 개인 XOR의 출력을 구하세요.
    정답

    1 ⊕ 1 = 0이고 0 ⊕ 1 = 1입니다. 1이 세 개(홀수 개)이므로 출력은 1입니다.

  4. 이 방법으로 입력이 두 개인 AND를 만들려면 NOR 게이트가 최소 몇 개 필요합니까?
    정답

    세 개입니다. 인버터로 쓰는 NOR 두 개(A용 하나, B용 하나)와, A와 B를 입력받는 세 번째 NOR가 필요하며, 그 출력은 A + B = AB입니다.

이 게이트들로 이루어진 식을 변형하고 간소화하는 방법은 부울 대수에서 이어집니다.