디지털논리회로 6강
조합논리회로(1)
1. 조합논리회로의 개요
- 조합논리회로: 저장 요소가 없이 현재 입력만으로 출력이 결정되는 회로
- 순서논리회로: 플립플롭 등의 저장 요소 포함, 입력과 상태에 따라 출력 결정
● 차이점
| 구분 | 조합논리회로 | 순서논리회로 |
|---|
| 기억소자 | 없음 | 있음 (예: Flip-Flop) |
| 출력 결정 | 현재 입력의 조합 | 현재 상태 + 입력의 순서 |
| 예시 | 가산기, 감산기 | 레지스터, 카운터 |
2. 조합논리회로의 분석과 설계
● 분석
- 논리회로도에서 각 게이트의 출력을 변수로 설정하여 부울 함수 유도
- 진리표 작성하여 출력 관계 명확히 파악
● 설계 절차
- 입력 및 출력 변수 개수 정의
- 진리표 작성
- 각 출력에 대한 부울 함수 도출 및 간소화
- 논리회로도 작성
3. 예제: 홀수만 통과시키는 회로
- 3비트 2진수 입력 → 짝수는 000, 홀수는 그대로 출력
- 입력: X, Y, Z / 출력: F2, F1, F0
● 진리표 요약
| 입력 (X, Y, Z) | 출력 (F2, F1, F0) |
|---|
| 000 | 000 |
| 001 | 001 |
| 010 | 000 |
| 011 | 011 |
| 100 | 000 |
| 101 | 101 |
| 110 | 000 |
| 111 | 111 |
● 출력 부울식
4. 가산기(Adder)
● 반가산기 (Half Adder)
- 입력: X, Y
- 출력: 합(S) = X ⊕ Y, 자리올림(C) = XY
● 전가산기 (Full Adder)
- 입력: X, Y, 이전 자리올림(Cin)
- 출력: 합(S) = X ⊕ Y ⊕ Cin
자리올림(Cout) = XY + X·Cin + Y·Cin
● 직렬 vs 병렬 가산기
| 구분 | 직렬가산기 | 병렬가산기 |
|---|
| 구성 | 전가산기 + 플립플롭 | 전가산기 병렬 연결 |
| 속도 | 느림 | 빠름 |
| 회로 복잡도 | 낮음 | 높음 |
5. 감산기(Subtractor)
● 반감산기 (Half Subtractor)
- 입력: X, Y
- 출력: 차(D) = X ⊕ Y, 빌림(B) = X'Y
● 전감산기 (Full Subtractor)
- 입력: X, Y, Borrow In (Z)
- 출력: 차(D) = X ⊕ Y ⊕ Z
빌림(B) = X'Y + X'Z + YZ
6. 병렬 가·감산기
- 2의 보수를 이용하여 감산을 가산기로 처리
- B의 보수 = NOT(B) + 1
→ A - B = A + (2의 보수 B)
● 제어 신호(S)
디지털논리회로 7강
조합논리회로(2) - 코드변환기, 패리티발생기/검사기, BCD-7세그먼트, 인코더
1. 코드 변환기
- 서로 다른 코드 체계를 사용하는 디지털 시스템 간 데이터 교환을 위해 필요
- 2진 코드 → 다른 형태의 2진 코드로 변환
● 예시 변환기
- BCD → Excess-3
- BCD → 9의 보수
● BCD → Excess-3 코드
- 입력: 4비트 BCD (0000~1001)
- 출력: BCD 값 + 3에 해당하는 4비트
- 나머지 입력(1010~1111)은 무관 조건 처리
● BCD → 9의 보수 코드
- 입력: 4비트 BCD
- 출력: 9 - BCD 값
● 설계 단계
- 진리표 작성
- 카르노 도표 작성 및 간소화
- 출력 부울식 도출
- 논리회로도 작성
2. 패리티 발생기 / 검사기
● 짝수/홀수 패리티
- 짝수 패리티: 전체 1의 개수가 짝수
- 홀수 패리티: 전체 1의 개수가 홀수
● 이중 패리티 방식
- 수평 + 수직 방향의 패리티 동시 적용
- 오류 위치까지 추정 가능
● 홀수 패리티 발생기 예시
- 입력: X, Y, Z
- 출력: P = X ⊕ Y ⊕ Z
● 패리티 검사기 예시
- 입력: W, X, Y, Z, P
- 출력: 에러 여부 = W ⊕ X ⊕ Y ⊕ Z ⊕ P
3. BCD → 7 세그먼트 디스플레이
- 7개의 LED 세그먼트를 이용해 숫자 표시
- 입력: 4비트 BCD
- 출력: a, b, c, d, e, f, g 각 세그먼트 제어 신호
● 설계 방법
- 진리표 구성 (BCD 값 → 표시할 숫자 모양)
- 각 세그먼트에 대한 출력 부울식 도출
- 카르노 도표로 간소화
4. MSI를 이용한 조합논리회로
● MSI (Medium Scale Integration)
- 기능별로 미리 구성된 집적 회로
- 설계 효율 향상, 유지보수 용이
● 대표적인 MSI 회로
5. 인코더
- 비부호화 입력 → 부호화된 출력
- 입력 2ⁿ개 → 출력 n개
- 예: 8입력(0~7) → 3비트 출력 (A2, A1, A0)
● 8→3 인코더 예시
| 입력(D₇~D₀) | 출력(A₂ A₁ A₀) |
|---|
| 00000001 | 000 |
| 00000010 | 001 |
| 00000100 | 010 |
| ... | ... |
| 10000000 | 111 |
- 부울식:
- A0 = D1 + D3 + D5 + D7
- A1 = D2 + D3 + D6 + D7
- A2 = D4 + D5 + D6 + D7
● 우선순위 인코더
- 다중 입력이 동시에 1일 때, 높은 번호 입력 우선 처리
디지털논리회로 8강
조합논리회로(3) - 디코더, 멀티플렉서, 디멀티플렉서
1. 디코더 (Decoder)
- 부호화된 입력 → 부호화되지 않은 출력으로 변환
- n비트 입력 → 최대 2ⁿ개의 출력을 생성
● 2×4 디코더
| 입력 | 출력(Y₃ Y₂ Y₁ Y₀) |
|---|
| 00 | 0001 |
| 01 | 0010 |
| 10 | 0100 |
| 11 | 1000 |
출력 부울식:
- Y₀ = A'B'
- Y₁ = A'B
- Y₂ = AB'
- Y₃ = AB
● 3×8 디코더
- 3비트 입력 → 8개의 출력(D₀~D₇)
- 각 출력은 하나의 최소항 표현
- 확장 방식: 2개의 2×4 디코더를 사용해 3×8 디코더 구성 가능
2. 디코더를 이용한 부울함수 구현
- n 입력 → 2ⁿ 최소항 생성
- 부울함수를 최소항의 합(Σm) 형태로 표현하여 OR 게이트로 묶어 구현
예시:
F(X,Y,Z) = Σm(1,3,4,7) → 3×8 디코더 사용 + OR 게이트
3. 디코더를 이용한 BCD → 3초과 코드 변환
입력: BCD (A,B,C,D)
출력: (W,X,Y,Z)
| 입력 (BCD) | 출력 (3초과 코드) |
|---|
| 0000 | 0001 |
| 0001 | 0100 |
| 0010 | 0101 |
| 0011 | 0110 |
| 0100 | 0111 |
| 0101 | 1000 |
| ... | ... |
- 각 출력은 최소항의 합으로 표현
- 4×16 디코더와 OR 게이트를 이용해 구현
4. 멀티플렉서 (MUX)
- 여러 입력 중 하나를 선택하여 출력
- 선택선: 입력 중 어떤 값을 출력할지 결정
- 2ⁿ 입력 → n개의 선택선
● 4×1 멀티플렉서 예시
선택선 (S₁S₀)에 따라 출력:
- 00 → D₀
- 01 → D₁
- 10 → D₂
- 11 → D₃
MUX = 선택기 역할
● MUX의 내부 동작
- 입력선 AND 게이트 → OR 게이트로 출력
- 선택선에 따라 특정 AND 게이트만 활성화
5. 멀티플렉서를 이용한 부울함수 구현
- n개 선택선, 2ⁿ 데이터 입력 → n+1개의 입력 변수 표현 가능
- 선택선: 입력 변수 일부
- 입력선: 최소항에 해당하는 값 (0,1,A,A')
예시: F(A,B,C) = Σm(1,2,6,7)
- 선택선: B, C
- 입력: A 조합에 따라 0, 1, A, A'
6. 디멀티플렉서 (DEMUX)
- 하나의 입력을 선택선에 따라 여러 출력 중 하나로 분배
- MUX와 반대 동작
- 선택선이 특정 출력 라인을 선택함
● 1×4 디멀티플렉서 예시
| 선택(S₁S₀) | 출력선 |
|---|
| 00 | D₀ |
| 01 | D₁ |
| 10 | D₂ |
| 11 | D₃ |
- 입력 E가 1일 때 선택선 값에 따라 출력 결정
- 디코더와 진리표가 유사
7. MSI 회로 활용 시 유의점
- 논리 게이트나 배선을 자동 최적화해주는 장치는 아님
- 검증된 기능 단위 회로를 효율적으로 사용하는 목적
- 직접 게이트를 배치하는 것보다 시간/비용 효율적