1. 논리 게이트
논리 게이트란
컴퓨터는 0(거짓)과 1(참) 두 값만 사용. 이를 처리하는 기본 회로 부품이 논리 게이트.
TTL 방식: 0~0.8V는 논리 0, 2~5V는 논리 1
주요 논리 게이트
NOT(인버터): 입력을 뒤집음, 0→1, 1→0, F=A’
버퍼: 입력을 그대로 출력, F=A
AND(논리곱): 모든 입력이 1일 때만 1 출력, F=A·B
OR(논리합): 입력 중 하나라도 1이면 1 출력, F=A+B
NAND: AND의 반대, 모두 1일 때만 0, F=(A·B)’
NOR: OR의 반대, 모두 0일 때만 1, F=(A+B)’
XOR(배타적 OR): 두 입력이 다를 때만 1, F=A⊕B
XNOR(배타적 NOR): 두 입력이 같을 때만 1, F=(A⊕B)’
진리표 요약
NOT
A=0 → F=1
A=1 → F=0
AND (둘 다 맞아야 1)
0,0→0 / 0,1→0 / 1,0→0 / 1,1→1
OR (하나만 맞아도 1)
0,0→0 / 0,1→1 / 1,0→1 / 1,1→1
NAND (AND 정반대)
0,0→1 / 0,1→1 / 1,0→1 / 1,1→0
NOR (OR 정반대)
0,0→1 / 0,1→0 / 1,0→0 / 1,1→0
XOR (다르면 1)
0,0→0 / 0,1→1 / 1,0→1 / 1,1→0
XNOR (같으면 1)
0,0→1 / 0,1→0 / 1,0→0 / 1,1→1
시험포인트: NAND와 NOR는 유니버설 게이트 → 이것만으로 모든 논리회로 구현 가능
유니버설 게이트
NAND만으로 NOT, AND, OR 모두 구현 가능
NOT 구현: NAND 두 입력을 같은 신호로 묶음
AND 구현: NAND 출력에 NOT 추가
OR 구현: 드모르간 정리 적용 (NOT 2개 + NAND 1개)
드모르간 정리 (미리보기)
(A·B)’ = A’ + B’ → AND 전체 부정 = 각각 부정 후 OR
(A+B)’ = A’ · B’ → OR 전체 부정 = 각각 부정 후 AND
2. 불 대수
불 대수란
0과 1만 쓰는 논리 연산의 수학적 체계. AND(·), OR(+), NOT(’)으로 구성
기본 법칙 (암기)
AND 기본
A·0=0 / A·1=A / A·A=A / A·A’=0
OR 기본
A+0=A / A+1=1 / A+A=A / A+A’=1
교환법칙: A·B=B·A / A+B=B+A
결합법칙: (A·B)·C=A·(B·C) / (A+B)+C=A+(B+C)
분배법칙
A·(B+C)=A·B+A·C (일반 수학과 동일)
A+(B·C)=(A+B)·(A+C) (불대수에만 있음, 반드시 외우기)
드모르간
(A·B)’=A’+B’
(A+B)’=A’·B’
이중 부정: (A’)’=A
흡수법칙
A+A·B=A
A·(A+B)=A
곱의 합(SOP)과 최소항
SOP: AND 묶음들을 OR로 연결한 형태 (예: F=AB+A’B’+AB’)
최소항(minterm): 모든 변수를 포함하는 AND항. 입력값 0이면 NOT표시, 1이면 그대로
최소항 식은 출력이 1인 행들을 OR로 연결해서 만듦
합의 곱(POS)과 최대항
POS: OR 묶음들을 AND로 연결한 형태 (예: F=(A+B)·(A’+B)·(A+B’))
최대항(maxterm): 모든 변수를 포함하는 OR항. 입력값 0이면 그대로, 1이면 NOT (최소항과 반대)
최대항 식은 출력이 0인 행들로 만듦
SOP와 POS는 서로 보수 관계
카르노 맵 (논리식 간소화)
1953년 모리스 카르노 고안. 변수 4개 이하일 때 사용
묶음 규칙(반드시 암기)
1. 이웃하는 1끼리만 묶기 (대각선 불가)
2. 묶음 크기는 2의 거듭제곱(1,2,4,8개)
3. 반드시 직사각형/정사각형 모양
4. 최대한 크게 묶기
5. 중복 묶기 가능
6. 무관항(X)은 도움되면 묶고 아니면 안 묶음
간소화 원리: 묶인 그룹에서 값이 0과 1 둘 다 나오는 변수는 제거
예) AB+AB’ = A(B+B’) = A
3변수 카르노맵은 열 순서가 00,01,11,10(그레이코드 순서)이며 양 끝도 인접한 것으로 간주해 묶을 수 있음
3. 조합논리회로
정의: 현재 입력값만으로 출력이 결정되는 회로 (기억 없음)
설계 순서: 시스템 분석 → 진리표 작성 → 논리식 유도 → 논리회로 구성
가산기
반가산기(HA): 1자리 2진수 2개를 더해 합(S)과 캐리(C) 출력
S=A⊕B, C=A·B
전가산기(FA): 캐리 입력(Ci)까지 포함해 3개를 더함. 반가산기 2개+OR게이트 1개로 구성 가능
S=A⊕B⊕Ci
Co=A·B+Ci·(A⊕B)
디코더
n비트 입력 → 최대 2^n개 출력 중 하나만 활성화
예: 2×4 디코더는 2비트 입력으로 4개 출력 중 하나 선택
인코더
디코더의 반대. 2^n개 입력 중 하나 활성화되면 n비트 출력으로 변환
예: 8×3 인코더는 8개 입력 중 하나를 3비트 출력으로
멀티플렉서(MUX)와 디멀티플렉서(DEMUX)
MUX(데이터 선택기): 여러 입력 중 하나 선택 → 출력 1개
DEMUX(데이터 분배기): 입력 1개 → 여러 출력 중 하나로 전달
2×1 MUX 논리식: F=S’·D0+S·D1 (S=0이면 D0, S=1이면 D1 선택)
패리티 발생기와 검사기
패리티 발생기(송신측): 데이터에 패리티 비트 추가, XOR 게이트로 구현
패리티 검사기(수신측): 오류 여부 확인, Y=0 정상 Y=1 오류
4. 순서논리회로
정의: 현재 입력 + 이전 출력 상태(기억)로 결과 결정. 클록 펄스에 맞춰 동작
조합논리회로 vs 순서논리회로
조합논리회로: 현재 입력만으로 결정, 기억 없음, 클록 불필요 (가산기, 디코더, MUX)
순서논리회로: 현재 입력+이전 상태로 결정, 기억 있음(플립플롭), 클록 필요 (플립플롭, 카운터, 레지스터)
클록 펄스(CP)
상승 에지: 0→1로 변하는 순간 트리거
하강 에지: 1→0으로 변하는 순간 트리거
클록이 없으면 출력은 변하지 않음
플립플롭
1비트 정보를 기억하는 기본 소자. 출력은 Q와 Q’(서로 항상 반대)
SR 플립플롭
S=1이면 세트(Q=1), R=1이면 리셋(Q=0)
S=R=1은 금지 상태(불안정)
특성방정식: Q(t+1)=S+R’·Q(t), 단 S·R=0 조건
D 플립플롭
SR의 금지 문제 해결. D가 그대로 Q로 출력
특성방정식: Q(t+1)=D
JK 플립플롭 (가장 많이 사용)
J=K=1일 때 출력 반전(토글)
J=0,K=0: 유지 / J=0,K=1: 리셋 / J=1,K=0: 세트 / J=1,K=1: 토글
특성방정식: Q(t+1)=J·Q’(t)+K’·Q(t)
T 플립플롭
JK에서 J=K를 묶어 T 하나로 만듦
T=0이면 유지, T=1이면 토글. 카운터 설계에 자주 사용
특성방정식: Q(t+1)=T⊕Q(t)
여기표(Excitation Table)
특성표의 반대 방향: 현재상태+다음상태 → 필요한 입력값
순서논리회로 설계 시 필수
JK 여기표
Q(t)=0, Q(t+1)=0 → J=0, K=X
Q(t)=0, Q(t+1)=1 → J=1, K=X
Q(t)=1, Q(t+1)=0 → J=X, K=1
Q(t)=1, Q(t+1)=1 → J=X, K=0
(X는 무관항)
레지스터와 카운터
레지스터: n비트 저장, D플립플롭 n개로 구성
시프트 레지스터: 클록마다 데이터를 1비트씩 이동(직렬↔병렬 변환)
병렬 로드 양방향 시프트 레지스터: 좌우 이동+여러 비트 동시 입력 가능
카운터 설계 순서
1. 상태 수 확인 → 필요한 플립플롭 개수 결정
2. 상태 전이 테이블 작성
3. 여기표로 각 플립플롭의 J,K 입력값 결정
4. 카르노맵으로 논리식 간소화
5. 회로 구성
중간고사 핵심 치트시트
논리 게이트
AND: 모두 1→1 / OR: 하나라도 1→1 / NOT: 반전
NAND=AND반대, NOR=OR반대
XOR: 다르면 1 / XNOR: 같으면 1
NAND, NOR는 유니버설 게이트
드모르간: (AB)’=A’+B’, (A+B)’=A’·B’
불대수
A·A=A, A+A=A / A·A’=0, A+A’=1 / A·0=0, A+1=1
분배법칙 A+(BC)=(A+B)(A+C) ← 불대수에만 있음
SOP: 출력=1인 최소항 OR 연결 / POS: 출력=0인 최대항 AND 연결
카르노맵: 2의 제곱수로 최대한 크게, 직사각형, 중복 가능
조합논리회로
반가산기: S=A⊕B, C=AB
디코더: n비트→2^n개 출력 중 하나 / 인코더: 반대
MUX: 여러 입력 중 하나 선택 / DEMUX: 하나 입력을 여러 출력 중 하나로
패리티 검사기: Y=0 정상, Y=1 오류
순서논리회로
플립플롭: 1비트 기억, Q와 Q’는 항상 반대
SR: S=R=1 금지 / D: Q(t+1)=D / T: T=1이면 토글
JK: 가장 범용, J=K=1이면 토글, Q(t+1)=JQ’+K’Q
카운터 설계: 상태표→여기표→카르노맵→회로