스킬캠퍼스

오늘 끝나면

NAND로 모든 게이트

  • NAND로 모든 게이트의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 NAND로이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

NAND 하나로 NOT·AND·OR·XOR — 기능적 완전성 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

반도체 설계 · 04

NAND로
모든 게이트

게이트 종류는 여럿이다. 그런데 NAND 하나면 다 만든다.
NOT, AND, OR, XOR 전부 NAND 배선만 바꾸면 나온다.
그래서 칩은 한 종류만 수십억 개 찍는다.

P.01반도체 설계 · 04

NAND는 AND를 뒤집은 것

NAND는 AND 뒤에 NOT을 붙인 게이트다. 둘 다 1일 때만 0, 나머지는 다 1이다.

이름도 그대로다. NOT-AND를 줄여 NAND가 된다.
AND가 11→1이면 NAND는 11→0으로 한 줄만 뒤집힌다.

이 게이트가 특별한 이유는 하나다.
다른 모든 게이트를 NAND만으로 다시 지을 수 있다.

NAND 진리표 · 둘 다 1일 때만 0
AND vs NAND, 한 줄만 뒤집힌다
AND
AB출력
000
010
100
111
NAND
AB출력
001
011
101
110
11 한 줄만 1에서 0으로, 나머지는 전부 1
P.02반도체 설계 · 04

NAND로 NOT · AND · OR

NAND 모양은 그대로 두고 배선만 바꾼다. 그러면 다른 게이트가 된다.

NOT은 두 입력을 같은 신호로 묶는다.
NAND(A,A)는 A가 1이면 0, 0이면 1을 내니 곧 NOT이다.

AND는 NAND 뒤에 NOT을 한 번 더 붙인다.
뒤집힌 걸 또 뒤집으니 원래 AND로 돌아온다.
OR은 A와 B를 각각 NOT으로 뒤집어 NAND에 넣는다. 드모르간 법칙 그대로다.

배선만 바꿔 세 게이트
배선만 바꿔 NAND로 NOT, AND, OR
NOT

NAND(A, A)

두 입력을 한 신호로 묶는다

1
AND

NOT( NAND(A, B) )

NAND 뒤에 NOT 한 번 더

2
OR

NAND( ¬A, ¬B )

각 입력을 뒤집어 NAND에 넣는다, 드모르간

3
게이트 모양은 그대로, 입력 배선만 바뀐다
P.03반도체 설계 · 04

기능적 완전성

한 종류 게이트로 모든 논리 함수를 만들 수 있으면 그 게이트는 기능적으로 완전하다고 한다.

NAND가 그런 게이트다. NOT, AND, OR을 다 만들 수 있다.
NOT, AND, OR만 있으면 어떤 진리표든 짤 수 있으니 NAND로 전부 덮인다.
NOR도 똑같이 혼자 완전하다. 둘은 단짝이다.

이게 설계에 주는 이득이 크다.
공정은 NAND 한 종류만 잘 찍으면 되니 검증과 수율 관리가 단순해진다.
나머지는 배선 도면만 바꿔 깔면 되는 일이다.

한 종류로 모든 논리를 덮음
NAND 하나가 모든 논리를 덮는다
NAND이 한 종류로 배선만 바꿔 아래 전부를 짓는다
NOT
AND
OR
XOR
NOR
XNOR
MUX
가산기
한 종류로 모든 함수 = 기능적 완전성
P.04반도체 설계 · 04

직접 NAND로 만들어 본다

NAND만 연결해 목표 게이트를 만든다. 모양이 아니라 동작으로 검증한다.

CHECK를 누르면 00, 01, 10, 11 네 조합을 자동으로 굴려 목표 진리표와 비교한다.
네 줄이 다 맞으면 통과다.

NOT은 NAND 1개, AND는 2개, OR과 XOR은 3개로 만든다.
통과한 배선은 MyChip의 게이트 라이브러리에 그대로 들어간다.

NAND 빌더 · 4조합 자동 검사
NAND 빌더 · NAND만으로 만들기
목표 게이트

한 입력을 뒤집기 · NAND 하나면 된다

예측 먼저, 목표 출력을 채워 본다탭해서 0/1
AB내 예측
0
0
1
1
배선, NAND 입력을 골라 연결 (1개면 충분)
G1NAND0
G2NAND1
G3NAND0출력

입력원: A · B · 앞선 게이트(G1·G2). G3가 최종 출력이다. 탭하면 다음 출처로 바뀐다.

예측 채우고 배선한 뒤 확인
근거, 4조합 전부 굴려 본다
ABG1G2G3목표
001011
011011
100100
110100
P.05반도체 설계 · 04

모양 말고 동작으로 검증

NAND 더미는 그림으로 보면 다 똑같이 생겼다. 뭐가 AND이고 뭐가 OR인지 모양으로는 모른다.

판별 기준은 하나다. 같은 입력에 같은 출력을 내면 같은 게이트다.
그래서 칩 검증은 진리표 일치로 한다. 배선이 어떻게 꼬였든 출력만 맞으면 된다.

이 관점이 설계 내내 따라온다.
게이트도, 가산기도, ALU도 결국 “입력에 맞는 출력 약속을 지키나”로 검증한다.

Q. 기능적 완전성(functional completeness)이란?한 종류 게이트만으로 모든 논리를 만들 수 있는 성질이다.
NAND가 그 예다. NOT, AND, OR을 다 만들 수 있고, 그 셋이면 어떤 진리표든 짤 수 있다.
그래서 칩을 NAND 한 종류로만 찍어도 모든 회로가 나온다.
배선이 달라도 진리표가 같으면 같은 게이트
모양은 같고 진리표로 갈린다
배선 X
AND
00→0 · 01→0 · 10→0 · 11→1
배선 Y
OR
00→0 · 01→1 · 10→1 · 11→1

NAND 더미 그림은 거의 같다. 갈리는 건 입력에 대한 출력 표 하나다.

같은 입력에 같은 출력이면 같은 게이트

3줄 요약

  1. 1NAND 하나로 NOT·AND·OR·XOR — 기능적 완전성
  2. 2NAND로 모든 게이트은 비트·게이트 → ALU → 시간·메모리 → 나만의 CPU → 메모리·GPU·SoC 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

NAND로

NAND 하나로 NOT·AND·OR·XOR — 기능적 완전성

ALU

산술·논리 연산을 하는 회로

ISA

CPU가 이해하는 명령어 집합과 인코딩