1.25k likes | 5.14k Views
논리회로 설계. 제 6 장 조합회로의 분석과 설계. 개 요. 논리회로의 분류 조합회로 (combinational circuit): 현재의 입력값들만 이용하여 출력값을 결정하는 회로로서 , 입력 신호들을 받는 즉시 그들을 조합 (combine) 하여 최종 출력을 발생 . 순차회로 (sequential circuit): 현재의 입력들 뿐 아니라 과거의 입력 혹은 출력 값도 함께 고려하여 현재의 출력 값을 결정하는 회로로서 , 조합회로에 기억 소자 (memory element) 를 추가하여 구성 .
E N D
논리회로 설계 제6장 조합회로의 분석과 설계
개 요 • 논리회로의 분류 • 조합회로(combinational circuit):현재의 입력값들만 이용하여 출력값을 결정하는 회로로서, 입력 신호들을 받는 즉시 그들을 조합(combine)하여 최종 출력을 발생. • 순차회로(sequential circuit):현재의 입력들 뿐 아니라 과거의 입력 혹은 출력 값도 함께 고려하여 현재의 출력 값을 결정하는 회로로서, 조합회로에 기억 소자(memory element)를 추가하여 구성.
6.1 조합회로의 기본 구조 • 다수의 입력 신호들을 받아서, 회로의 동작 특성에 따라 입력 신호들을 조합하여, 한 개 혹은 그 이상의 출력 신호들을 생성하는 논리회로
조합회로: 부울 함수를 게이트들만 이용하여 구현[비교] 순차회로는기억소자(플립-플롭)들과 게이트들을 이용하여 구현 [예] F = AB + CD를 구현한4-입력 1-출력 조합회로 • 동작 지연 시간 = 5ns x 2 = 10ns (각 게이트 지연이 5ns일 경우)
[예] 3-입력 2-출력 조합회로 • 동작 지연 시간 = 5ns x 3 = 15ns (각 게이트 지연이 5ns일 경우)
6.2 조합회로의 분석 • 분석 방법들 • 부울 함수를 이용한 분석 • 진리표를 이용한 분석 • 입출력 신호 파형을 이용한 분석
부울 함수를 이용한 분석 (1) 회로의 게이트 출력들에 변수를 할당한다. (이때 게이트 출력에 대한 변수명은 분석을 위하여 임시적으로 배정하는 것이므로, 조합회로의 입력들 및 최종 출력 변수명과는 다른 유형의 기호들을 이용하는 것이 혼동을 방지할 수 있다.) (2) 각 게이트의 입력 변수들을 이용하여 게이트 출력에 대한 부울 함수를 구한다. (3) (2)번 과정을 최종 출력에 도달할 때까지 반복한다. (4) 임시 변수들에 대한 표현을 대입함으로써, 최종 출력 변수에 대한 완전한 부울 함수를 구한다.
부울 함수의 유도 x = ABC y = (B+C) z = (AB+BC)' = (A'+B')(B'+C') = A'B' + A'C' + B' + B'C' = B' + A'C' T = yz = (B+C)(B' + A'C') = A'BC' + B'C 최종 출력 (F) : F = x + T = ABC + A'BC' + B'C
진리표를 이용한 분석 * 각 게이트의 출력값을 단계적으로 구하여 최종 출력(F)을 결정
입출력 신호 파형을 이용한 분석 [예] F =[(A+B)C]′ = A′B′+C′ [요령] 중간 결과(각 게이트의출력) 파형을 단계적으로 구하여 최종 파형을 찾음
6.3 조합회로의 설계 방법 • 조합회로 설계의 목표 • 최소 개수의 게이트 이용 구현 최저 비용 • 간단한 구조 최소 공간 • 적은 수의 단계를 거치도록 설계 고속 • 설계 절차 (1) 구현할 기능 표현 (2) 입력 및 출력 변수 결정 (3) 입출력 관계를 분석하여 진리표 작성 (4) 카노프 맵을 이용하여 간략화 된 부울 함수 유도 (5) 회로 구성
조합회로의 설계 방법(계속) [설계 사례] 다수결 회로(majority circuit) (1)회로 기능 정의:세 명의 위원들이 스위치를 한 개씩 배당받아서, 의사결정 과정에서 찬성한다면 투표 스위치를 누르고(출력=1), 반대한다면 누르지 않는다(출력=0). 만약 두 개 이상의 스위치가 눌러진다면, 출력 램프가 켜진다. (2)변수 결정:세 명의 위원들에 배정된 투표 스위치들을 통하여 회로로 들어오는 입력 신호들에 2진 변수 A, B, C를 각각 배정한다. 그리고 출력 램프의 on/off를 구동하는 출력 변수로는 F를 배정한다.
조합회로의 설계 방법(계속) (3)진리표 작성:A위원이 반대하더라도 B위원과 C위원이 찬성하거나, A위원이 찬성하고 B혹은 C위원 중의 한 명이 찬성하거나, 모든 위원들이 찬성한다면, 출력 F=1이 되어 램프가 켜지게 한다. F = A'BC + AB'C + ABC' + ABC
조합회로의 설계 방법(계속) (4) 부울 함수의 간략화 :F = A'BC + AB'C + ABC' + ABC F = AB + AC + BC
조합회로의 설계 방법(계속) (5) 다수결 회로의 구성도
6.4 가산기 • 가산기(adder):수치적 데이터들 간의 덧셈을 수행하는 조합회로 • 반가산기(Half adder: HA): 두 비트들을 더하고, 합(sum)과 올림수(carry)를 발생하는 회로. • 전가산기(Full adder: FA): 세 개의 비트들을 더하고, 합과 올림수 비트를 발생하는 회로. (일반적으로 세 개의 입력들 중의 두 개는 더해질 비트들이며, 나머지 한 비트는 아래 자리수로부터 올라오는 올림수 비트)
반가산기(HA) • 2-비트 덧셈 규칙 0 + 0 = 0 , 올림수 = 0 0 + 1 = 1, 올림수 = 0 1 + 0 = 1, 올림수 = 0 1 + 1 = 0, 올림수 = 1
반가산기 (계속) S = A'B + AB' = A ⊕B C = AB
전가산기(FA) • 3-비트 덧셈 회로: 두 입력 비트들 및 올림수 간의 덧셈을 수행
전가산기 (계속) • 카노프 맵을 이용한 간략화 • 합(S)에 대한 맵올림수(Co)에 대한 맵 S = AB'Ci' + A'B'Ci Co = AB + ACi + BCi + ABCi + A'BCi'
전가산기 (계속) S에 대한 회로Co에 대한 회로
전가산기 (계속) • 부울 함수의 변형을 통한 회로의 간략화 Co에 대한 카노프 맵에서 하단 우측 그룹만 묶음 (그림 6-14)
전가산기 (계속) • 한 개의 조합회로로 통합된 전가산기
6.4.3 병렬가산기(Parallel Adder) • 여러 비트들로 이루어진 2진수들 간의 덧셈을 수행하는 회로 [예] 4-비트 병렬가산기: 네 개의 전가산기(FA)들로 구성
8-비트, 16-비트, 32-비트 병렬가산기: 그 수만큼의 FA들을 같은 방법으로 구성 • 덧셈에 걸리는 시간 (각 게이트 지연시간 : 2ns로 가정) • 각 FA에서 두 비트 덧셈에 걸리는 시간 = 6 ns • 4-비트 덧셈 시간 = 6 ns ⅹ 4 = 24 ns • 8-비트 덧셈 시간 = 48 ns • 16-비트 덧셈 시간 = 96 ns • 32-비트 덧셈 시간 = 192 ns 시간 단축을 위하여 올림수 미리보기(carry-lookahead) 방식 사용(6.11절에서 설명)
6.5 디코더(Decoder) • 해독기라고도 부름 • 입력 :N-비트 2진수 • 출력 : 입력값에 따라 2N개의 출력들 중의 하나를 지정 [예] 2x4 디코더(2-to-4 line decoder)
디코더 (계속) • 2x4 디코더의 진리표 • 각 출력에 대한 부울 함수 :
3x8 디코더 : 입력 수가 3개이고, 출력 수가 8개인 디코더
인에이블(En) 신호가 있는 디코더 • En신호에 따른 디코더의 상태 • En = 0 : 활성화 상태(activated state) : 디코더가 정상 동작 • En = 1 : 비활성화 상태(de-activated state) : 디코더의 어떤 출력도 선택되지 않음 : 선택된 출력 = ‘0’ [active-low]
4x16 디코더의 구성 • 두 개의 3x8 디코더를 이용하여 구성하는 방법 : MSB를 En신호로 사용
디코더를 이용하여 SOP 표현을 구현하는 방법 [예] F(A,B,C) = ∑(1,3,4,6)을 3x8 디코더를 이용하여 구현하라.
6.6 엔코더(Encoder) • 디코더와 반대 기능을 수행하는 조합회로 • 입력 : 2N개 • 출력 : 입력값에 대응되는 2진 코드 [예] 10진-BCD 엔코더(Decimal-to-BCD encoder) : 10 개의 입력 단자들(D0~ D9) 중에서 1로 세트 되는 입력에 대한 BCD 코드를 출력으로 발생하는 조합회로. (입력 단자는 어느 한 순간에 하나만 ‘1’로 세트 되고, 다른 입력들은 모두 ‘0’으로 리셋)
10진-BCD 엔코더의 부울 함수 및 회로도 [응용 예] 엘리베이터에서 각 층의 버튼이 눌러진 경우에, 해당 층을 나타내는 BCD 값을 제어장치로 전송
6.6.2 우선순위 엔코더(Priority encoder) • 우선순위를 판단하는 기능을 가진 엔코더 • 두 개 이상의 입력들이 동시에 ‘1’로 세트 된 경우에, 그들 중에서 우선순위가 더 높은 입력에 대한 BCD 값을 출력하는 조합회로
[예] 네 개의 입력 단자들(P3,P2,P1,P0)에 대하여 2-비트 출력을 발생하며, 유효(v) 비트를 가진 우선순위 엔코더 설계
6.7 그레이 코드 변환기(Gray code converter) • 2진 코드를 그레이 코드로 변환하는 조합회로 [예] 2진-그레이 코드 변환기