오늘 끝나면
NAND로 모든 게이트
- ✓NAND로 모든 게이트의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 NAND로이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
NAND 하나로 NOT·AND·OR·XOR — 기능적 완전성 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
반도체 설계 · 04
NAND로
모든 게이트
게이트 종류는 여럿이다. 그런데 NAND 하나면 다 만든다.
NOT, AND, OR, XOR 전부 NAND 배선만 바꾸면 나온다.
그래서 칩은 한 종류만 수십억 개 찍는다.
NAND는 AND를 뒤집은 것
NAND는 AND 뒤에 NOT을 붙인 게이트다. 둘 다 1일 때만 0, 나머지는 다 1이다.
이름도 그대로다. NOT-AND를 줄여 NAND가 된다.
AND가 11→1이면 NAND는 11→0으로 한 줄만 뒤집힌다.
이 게이트가 특별한 이유는 하나다.
다른 모든 게이트를 NAND만으로 다시 지을 수 있다.
| A | B | 출력 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| A | B | 출력 |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
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(A, A)
두 입력을 한 신호로 묶는다
NOT( NAND(A, B) )
NAND 뒤에 NOT 한 번 더
NAND( ¬A, ¬B )
각 입력을 뒤집어 NAND에 넣는다, 드모르간
기능적 완전성
한 종류 게이트로 모든 논리 함수를 만들 수 있으면 그 게이트는 기능적으로 완전하다고 한다.
NAND가 그런 게이트다. NOT, AND, OR을 다 만들 수 있다.
NOT, AND, OR만 있으면 어떤 진리표든 짤 수 있으니 NAND로 전부 덮인다.
NOR도 똑같이 혼자 완전하다. 둘은 단짝이다.
이게 설계에 주는 이득이 크다.
공정은 NAND 한 종류만 잘 찍으면 되니 검증과 수율 관리가 단순해진다.
나머지는 배선 도면만 바꿔 깔면 되는 일이다.
직접 NAND로 만들어 본다
NAND만 연결해 목표 게이트를 만든다. 모양이 아니라 동작으로 검증한다.
CHECK를 누르면 00, 01, 10, 11 네 조합을 자동으로 굴려 목표 진리표와 비교한다.
네 줄이 다 맞으면 통과다.
NOT은 NAND 1개, AND는 2개, OR과 XOR은 3개로 만든다.
통과한 배선은 MyChip의 게이트 라이브러리에 그대로 들어간다.
한 입력을 뒤집기 · NAND 하나면 된다
| A | B | 내 예측 |
|---|---|---|
| 0 | – | |
| 0 | – | |
| 1 | – | |
| 1 | – |
입력원: A · B · 앞선 게이트(G1·G2). G3가 최종 출력이다. 탭하면 다음 출처로 바뀐다.
| A | B | G1 | G2 | G3 | 목표 |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | 0 |
모양 말고 동작으로 검증
NAND 더미는 그림으로 보면 다 똑같이 생겼다. 뭐가 AND이고 뭐가 OR인지 모양으로는 모른다.
판별 기준은 하나다. 같은 입력에 같은 출력을 내면 같은 게이트다.
그래서 칩 검증은 진리표 일치로 한다. 배선이 어떻게 꼬였든 출력만 맞으면 된다.
이 관점이 설계 내내 따라온다.
게이트도, 가산기도, ALU도 결국 “입력에 맞는 출력 약속을 지키나”로 검증한다.
Q. 기능적 완전성(functional completeness)이란?
한 종류 게이트만으로 모든 논리를 만들 수 있는 성질이다.NAND가 그 예다. NOT, AND, OR을 다 만들 수 있고, 그 셋이면 어떤 진리표든 짤 수 있다.
그래서 칩을 NAND 한 종류로만 찍어도 모든 회로가 나온다.
NAND 더미 그림은 거의 같다. 갈리는 건 입력에 대한 출력 표 하나다.