디지털논리회로 1강
디지털 시스템과 데이터 표현
1. 디지털 시스템 개요
● 시스템의 정의
- 입력 → 처리 → 출력 흐름을 가지는 구성 요소의 집합
- 블랙박스 형태로 표현 가능
● 아날로그 vs 디지털
| 구분 | 아날로그 | 디지털 |
|---|
| 표현 방식 | 연속적인 값 | 이산적인 값(0, 1) |
| 예시 | 아날로그 시계 | 디지털 시계 |
● 디지털 시스템의 장점
- 단순성, 정확성, 편리성, 안정성, 견고성, 융통성
- 0과 1로만 처리되어 잡음에 강함
2. 디지털 시스템의 설계 및 논리회로
- 요구사항 분석
- 회로 설계 (circuit design)
- 논리 설계 (logic design)
- 시스템 설계 (system design)
- 실제적 설계 (physical design)
- 테스트 및 생산
● 논리회로
- 조합논리회로: 가산기, 디코더 등
- 순서논리회로: 플립플롭, 레지스터, 카운터 등
3. 컴퓨터 구성
● 구성 요소
- 입력장치, 기억장치, 제어장치, 연산장치, 출력장치
4. 집적 회로
● IC (Integrated Circuit)
● 집적도에 따른 분류
| 구분 | 소자 수 | 예시 |
|---|
| SSI | 수 개 | 계산기 |
| MSI | 수십~수백 | 레지스터 |
| LSI | 수천~수만 | 초기 마이크로프로세서 |
| VLSI | 수백만 이상 | 현대 CPU, GPU |
● 디지털 논리 계열
| 계열 | 용도 | 기본 회로 |
|---|
| TTL | 초기 디지털 컴퓨터 | NAND |
| ECL | 고속 통신 | NOR |
| CMOS | 현대 CPU | 인버터 |
5. 양논리와 음논리
| 구분 | 논리 1 | 논리 0 |
|---|
| 양논리 | 높은 전압 | 낮은 전압 |
| 음논리 | 낮은 전압 | 높은 전압 |
6. 수치 데이터 표현 (진법)
● 기수 r 진법
- 각 자릿수는 r의 거듭제곱으로 구성됨
- (1011.101)₂ = 11.625₁₀
● 진수 변환
- 10진수 ↔ 2진수, 8진수, 16진수 등
- 예: (28.125)₁₀ = (11100.001)₂
7. 산술 연산
- 이진수로 가산, 감산, 승산, 제산 수행 가능
- 보수 계산을 통한 감산 가능
8. 보수
● r의 보수: rⁿ − N
● (r−1)의 보수: rⁿ − r⁻ᵐ − N
● 관계: r의 보수 = (r−1의 보수) + 1
9. 부호 있는 2진수 표현
| 표현 방식 | 설명 |
|---|
| 절대치 | 부호 + 값 |
| 1의 보수 | 모든 비트를 반전 |
| 2의 보수 | 1의 보수 + 1 |
10. 디지털 코드
● 10진 코드
- BCD 8421, BCD 2421, Excess-3, Gray 코드 등
● 영숫자 코드
- ASCII (7비트), EBCDIC (8비트), 유니코드 (UTF-8 등)
요약
- 디지털 시스템은 정확하고 잡음에 강한 이산 신호 기반 시스템
- 디지털 논리회로는 조합/순서회로로 구성됨
- 컴퓨터는 다양한 회로 설계 단계를 거쳐 구성
- 수치 표현, 진법 변환, 보수 연산 및 디지털 코드 이해가 필수
디지털논리회로 2강
논리게이트와 부울대수 (1)
논리연산의 개요
- 논리연산(부울연산): 참(True)/거짓(False), 즉 1과 0을 다루는 연산
- 논리집합: {0, 1}의 집합, 이산값만 존재
- 부울대수(Boolean Algebra)에 기반한 수학적 논리 체계
논리게이트 개요
- 논리게이트는 논리회로의 기본 단위
- 입력값에 따라 출력값을 결정하는 논리적 스위치
- 모든 입력/출력은 0 또는 1로 처리됨
기본 논리게이트
| 게이트 | 기호 | 연산 | 출력 조건 |
|---|
| AND | ⋅ | 논리곱 | 모든 입력이 1일 때만 1 |
| OR | + | 논리합 | 하나라도 입력이 1이면 1 |
| NOT | ¬ | 부정 | 입력이 0이면 1, 1이면 0 |
복합 논리게이트
| 게이트 | 설명 |
|---|
| NAND | AND 후 부정 |
| NOR | OR 후 부정 |
| XOR | 입력이 서로 다르면 1 |
| XNOR | 입력이 서로 같으면 1 (XOR의 부정) |
부울대수의 개요
- 부울변수: 0 또는 1의 값을 가짐
- 부울함수: 부울변수와 연산자로 구성된 수식
예: F = X·¬Y + Y·Z
부울함수 → 논리회로도 변환
- 각 부울 연산은 해당 논리게이트로 변환됨
- 괄호( ), NOT, AND, OR 등의 우선순위를 반영하여 회로화
부울함수의 진리표
- 입력 변수의 모든 조합에 대한 출력값을 표로 표현
- 진리표는 유일한 출력 표현을 제공함
부울함수의 간소화 필요성
- 게이트 수 감소, 연산 효율 증가, 하드웨어 비용 절감
- 간단한 부울식으로 동등한 출력을 만들 수 있음
부울대수의 기본 공식
| 식 | 의미 |
|---|
| X + 0 = X | 항등 |
| X + 1 = 1 | 우선 1 |
| X·0 = 0 | 우선 0 |
| X·1 = X | 항등 |
| X + X = X | 중복 제거 |
| X + ¬X = 1 | 보완 |
| X·X = X | 중복 제거 |
| X·¬X = 0 | 보완 |
| (X + Y) + Z = X + (Y + Z) | 결합 법칙 |
| X + Y·Z = (X + Y)(X + Z) | 분배 법칙 |
| ¬(X + Y) = ¬X · ¬Y | 드모르간 법칙 |
| ¬(X · Y) = ¬X + ¬Y | 드모르간 법칙 |
부울대수의 쌍대성 원리
- 부울식에서 AND ↔ OR, 0 ↔ 1을 바꾸면 성립
- 예: X + 0 = X ↔ X · 1 = X
부울함수의 간소화 예시
- F = X·¬Y + X·Y·Z + ¬X·Y·Z
→ 간소화: F = X·¬Y + Y·Z
부울함수의 보수
- F의 보수 ¬F는 드모르간 법칙 등을 이용하여 계산
- 보수는 논리 반대 상태를 의미함
요약
- 논리게이트는 디지털 회로의 핵심
- 부울함수는 논리게이트로 변환 가능
- 간소화는 효율성과 비용 절감에 중요
- 부울대수의 기본 공식과 쌍대성 원리를 통해 다양한 간소화 가능
디지털논리회로 3강
논리게이트와 부울대수 (2)
- 논리식을 일관성 있게 표현하는 공식화된 형식
- 최소항의 합 (Sum of Minterms) 또는 최대항의 곱 (Product of Maxterms)
● 최소항 (Minterm)
- 입력 조합 하나에서만 출력이 1이 되는 항
- AND 연산으로 구성됨
- 예: X'Y'Z, X'YZ, XY'Z' 등
● 최대항 (Maxterm)
- 입력 조합 하나에서만 출력이 0이 되는 항
- OR 연산으로 구성됨
- 예: X+Y+Z', X'+Y+Z 등
● 표기법
- 최소항: m₀, m₁, ..., m₇
- 최대항: M₀, M₁, ..., M₇
● 예시
- F(X,Y,Z) = m₀ + m₁ + m₃ → ∑(0,1,3)
- F(X,Y,Z) = M₄ · M₅ · M₆ → ∏(4,5,6)
- 정규형을 간소화한 표현
- 변수의 모든 조합이 포함되지 않아도 됨
● 곱의 합 (Sum of Products, SOP)
- 여러 AND 항을 OR로 묶은 구조
- 예: F = X'Y'Z + X'YZ + XY'Z'
● 합의 곱 (Product of Sums, POS)
- 여러 OR 항을 AND로 묶은 구조
- 예: F = (X+Y+Z)(X'+Y+Z)(X'+Y'+Z)
3. 정규형과 표준형 비교
| 구분 | 정규형 | 표준형 |
|---|
| 정의 | 모든 변수 포함된 표현 | 일부 변수 생략 가능 |
| 특징 | 진리표 기반 완전 표현 | 대수 간소화 결과 |
| 목적 | 정확한 분석 | 회로 최적화 |
4. 진리표 기반 표현 예시
● 출력이 1인 경우의 최소항 조합 (SOP 정규형)
입력:
X: 0 0 0 0 1 1 1 1
Y: 0 0 1 1 0 0 1 1
Z: 0 1 0 1 0 1 0 1
F: 0 1 0 0 1 0 0 1
→ 최소항: m₁, m₄, m₇
→ F = m₁ + m₄ + m₇ = X'Y'Z + XY'Z' + XYZ
● 출력이 0인 경우의 최대항 조합 (POS 정규형)
F = 0인 입력 조합: 000, 010, 011, 101, 110
→ 최대항: M₀, M₂, M₃, M₅, M₆
→ F = M₀ · M₂ · M₃ · M₅ · M₆
5. 부울식 변환 예시
● F = X + YZ̅ 를 최소항의 합으로 변환
- 분배법칙 및 항목 보완
- 정규형으로 확장: 모든 항에 3개의 변수 포함
- 정규형: F = m₂ + m₄ + m₅ + m₆ + m₇ = ∑(2,4,5,6,7)
● F = XY + X'Z 를 최대항의 곱으로 변환
- 드모르간 및 보완법칙 활용
- 정규형 표현: F = M₀ · M₂ · M₄ · M₅ = ∏(0,2,4,5)
6. 회로도 예시
- 곱의 합 형태: AND 게이트 여러 개 → OR 게이트
- 예: F = Y' + X'Y'Z' + XY
7. 활용 목적
- 정규형: 진리표에서 직접 도출 가능
- 표준형: 간소화된 회로로 구현 가능
- 부울함수의 설계 및 최적화에 핵심적으로 사용
디지털논리회로 4강
부울함수의 간소화 및 구현 (1) - 카르노 도표 방법
1. 부울함수 간소화 방법 개요
- 부울대수를 간단한 형태로 바꾸는 다양한 방법 존재
방법 분류
- 대수적 방법: 부울대수의 정리를 이용해 수학적으로 간소화
- 도표 방법: 카르노 도표(Karnaugh Map, K-map) 이용
- 테이블 방법: 퀸-맥클러스키(Quine-McCluskey) 방법 등
2. 카르노 도표(K-map) 개요
- 부울함수를 시각적으로 표현하여 간소화하는 도구
- 2ⁿ개의 셀로 구성된 격자(그레이 코드 순서 사용)
- 각각의 셀은 하나의 최소항(minterm) 또는 최대항(maxterm) 의미
- 변수 수에 따라 구조 변화: 2변수(2×2), 3변수(2×4), 4변수(4×4)
3. 최소항의 합 형태 간소화 (SOP)
- 변수 개수에 맞게 카르노 도표 작성
- 출력이 1인 위치를 도표에서 1로 표시
- 인접한 셀끼리 묶음 (2ⁿ 크기 권장: 2, 4, 8, ...)
- 각 묶음에서 공통된 변수만 유지, 나머지 제거
- 묶음들을 OR 연산으로 연결해 최종식 도출
예시
- X Y F = 1인 항: m₁, m₄, m₇
- 묶음 1: X'Y', X'Y → X'
- 묶음 2: X'Y, XY → Y
- 결과식: F = X' + Y
4. 최대항의 곱 형태 간소화 (POS)
- 변수 개수에 맞게 카르노 도표 작성
- 출력이 0인 위치를 도표에서 0으로 표시
- 인접한 0들끼리 묶음
- 각 묶음에서 공통된 변수만 유지
- 묶음들을 AND 연산으로 연결해 최종식 도출
예시
- F = 0인 최대항: M₀, M₁, M₂
- 묶음: X + Y, X + Y'
- 결과식: F = (X + Y)(X + Y') = X
5. 인접 셀 정의 및 묶음 규칙
- 인접 셀: 하나의 변수만 반대(True/False)이고 나머지는 동일
- 인접 항끼리 묶으면 하나의 변수를 제거 가능
- 가장 큰 묶음을 만들수록 변수 수가 줄고 회로가 단순해짐
6. 카르노 도표와 부울대수 연계
- 카르노 도표에서의 묶음 → 부울대수에서 항 간소화
- 예: X·Y + X·Y' = X
7. 2변수 카르노 도표 예시
→ F = X + Y
8. 3변수 카르노 도표 예시
- 변수: X, Y, Z
- F = ∑m(0, 2, 4, 6, 7)
→ 묶음 1: X'Y'Z, XY'Z, X'YZ, XYZ → Z
→ 묶음 2: XYZ, XYZ' → XY
→ F = XY + Z
9. 핵심 정리
- 카르노 도표는 부울함수를 시각적으로 간소화하는 도구
- SOP, POS 형태로 구분되어 간소화 가능
- 묶음은 가능한 크게, 개수는 적게 만드는 것이 핵심
디지털논리회로 5강
부울함수의 간소화 및 구현 (2)
1. 4변수 카르노 도표 (K-map)
- 변수 4개 → 2⁴ = 16개의 셀로 구성 (4x4 구조)
- 각 셀은 하나의 최소항에 대응
- Gray 코드 순서로 배치되어 인접성 보장
● 묶음 규칙
- 가능한 큰 크기의 2ⁿ 묶음을 구성 (1, 2, 4, 8개 단위)
- 모든 인접 항을 최대한 묶어서 간소화
2. 무관 조건 (Don't Care Condition)
- 특정 입력 조합에서 출력이 정의되지 않거나 의미 없는 경우
- 해당 입력 조합은 0 또는 1로 간주 가능 → 간소화에 활용
- 예: BCD 코드에서 1010~1111은 사용되지 않음
● 활용 방법
- K-map에서 X로 표시
- 인접 항과 함께 묶어 간소화 가능
3. 기타 카르노 도표 - XOR 표현
- 2변수 XOR: 하나의 입력만 1인 경우 출력 1
- 3변수 XOR: 1개 또는 3개 입력이 1인 경우 출력 1
- 4변수 XOR: 홀수 개의 입력이 1이면 출력 1 (Odd function)
● 일반식
- A ⊕ B = A'B + AB'
- 다변수 XOR은 패턴 인식 및 부울식으로 변환 가능
4. NAND 게이트를 이용한 회로 구현
- NAND 게이트 하나만으로 AND, OR, NOT 연산 가능
- 모든 논리 게이트를 NAND로만 구현 가능 → 함수적 완결성
● NAND 연산 변환
| 연산 | 표현식 |
|---|
| NOT A | A NAND A |
| A AND B | (A NAND B) NAND (A NAND B) |
| A OR B | (A NAND A) NAND (B NAND B) |
- 회로를 NAND 게이트로만 구성하여 구현 가능
5. NOR 게이트를 이용한 회로 구현
- NOR 게이트 하나만으로도 함수적 완결성 성립
- AND, OR, NOT 연산 모두 NOR 조합으로 표현 가능
● NOR 연산 변환
| 연산 | 표현식 |
|---|
| NOT A | A NOR A |
| A OR B | (A NOR B) NOR (A NOR B) |
| A AND B | (A NOR A) NOR (B NOR B) |
- OR-NOT, NOT-AND 형태로 표현하여 NOR만으로 회로 구현
6. NAND/NOR 다단계 회로 예시
- 복잡한 부울식도 NAND 또는 NOR 게이트만으로 구현 가능
- 입력 버블 수와 위치 확인 중요 (버블 상쇄)
요약
- 4변수 카르노 도표를 통해 복잡한 함수 간소화
- 무관 조건을 활용하여 더 큰 묶음 구성 가능
- XOR 표현은 K-map에서 패턴으로 추출 가능
- NAND, NOR 게이트는 단독으로 논리회로 구현 가능
- 실용적인 회로 설계 시 NAND/NOR 활용이 일반적