720 likes | 2.07k Views
5 장 대형 조합회로. 반복 시스템 - 조합회로 시스템에서의 지연 - 가산기 , 감산기 , 비교기 디코더 인코더와 우선순위 인코더 멀티플렉서와 디멀티플렉서 3 상태 게이트 게이트 배열 (ROM, PLA, PAL). 개요. 게이트를 통한 지연의 영향 가산기의 설계 : 감산기 , 십진 가산기 자주 사용되는 회로들 : 디코더 , 인코더 , 우선순위 인코더 그리고 멀티플렉서 중간 크기의 시스템 설계에서 사용되는 gate array :
E N D
5 장 대형 조합회로 • 반복 시스템 • -조합회로 시스템에서의 지연 • -가산기, 감산기, 비교기 • 디코더 • 인코더와 우선순위 인코더 • 멀티플렉서와 디멀티플렉서 • 3 상태 게이트 • 게이트 배열 (ROM, PLA, PAL)
개요 • 게이트를 통한 지연의 영향 • 가산기의 설계: • 감산기, 십진 가산기 • 자주 사용되는 회로들 : • 디코더, 인코더, 우선순위 인코더 그리고 멀티플렉서 • 중간 크기의 시스템 설계에서 사용되는 gate array : • 곱의 합 구현을 위해 연결된 여러 개의 AND와 OR 게이트들로 구성 • 세 가지 형태: ROM(read-only memory), • PLA(programmable logic array), • PAL(programmable array logic) • 시스템 설계에 대한 고찰 : • 7-세그먼트 디스플레이 구동기 • error coder/decoder
반복 시스템 • 작은 블록의 회로를 여러 번 복사하여 시스템 구성 • - 1비트 전 가산기 4개의 복사본을 직렬로 연결하여 4비트 가산기구성
조합 회로 시스템에서의 지연 •게이트의 입력 변화시 게이트의 출력은 동시에 변하지 않음 작은 지연 ( ) 발생 • 시간 4에서, B와 C가 동시에 변하면 • 해저드(hazard) 또는 글리치(glitch) 상황 발생
1 bit 가산기를 통한 지연 • 가산기의 덧셈에 걸리는 시간 계산(모든 입력이 동시에 들어간다고 가정) • 입력 a와 b가 변할 때 회로의 다양한 지점에서 생기는 지연을 표시 • 입력 a와 b가 변하는 시점에서 합이 나오는 시점까지 지연 시간은 6△, • 캐리 출력이 나오는 시점까지 지연 시간은 5△ • a, b의 값이 고정되면,Cin에서 Cout까지 지연 시간은 단지 2△,캐리 입력에서 합까지 지연은 3△
2 레벨회로의 지연 • 곱의 합 형식으로 구현한 2 level회로 • Cout = bCin + aCin + ab • s = a´b´Cin + a´bC´in + ab´C´in + abCin • 캐리 출력: 2단 회로 => 각 입력에서 Cout까지의 지연은 2△ • 합은 Cin에 대한 NOT 게이트를 필요로 함(Cin이 다른 전가산기의 출력) • => Cin에서 s 까지 지연 시간이 3△
N 비트 가산기 지연 • n개의 1비트 가산기 회로를 가지고 n비트 가산기 구현시 총 지연 시간 • 1) LSB의 입력에서 Cout까지의 지연 시간 • 2) 중간 가산기들의 Cin에서 Cout까지의 지연 시간×(n-2) • 3) MSB의 Cin에서 Cout혹은 Cin에서 s까지의 지연시간중 긴 것 • => multilevel 가산기 : 5△ + 2(n-2)△ + 3△ = (2n + 4)△ • => 2-level 가산기 : 최소 유효비트에서만 5△가 2△로 3△ 단축됨 • Ex. 64비트 가산기: 132△(multilevel 가산기)와 129△(2-level 가산기) • △가 아무리 작다 해도 총 지연 시간이 길어짐. • 해결책 • 1) 2 level혹은 3 levelmultibit 가산기를 만드는 것 • 2) 캐리 미리보기 가산기(carry-look-ahead adders)
Multibit 가산기(2 level) 2비트 가산기 진리표
2 비트 가산기 • 2비트 가산기에 대한 최소의 곱의 합 표현(2 level 구현) • 2비트 가산기를 사용하는 n비트 가산기 구현 => 지연 시간의 감소 • 처음 2비트와 마지막 2비트를 제외하면 매 두 비트마다 • 캐리 입력으로부터 캐리 출력까지 지연은 단지 2△ • => 총 지연 시간은 2△ + 2(n/2-2)△ + 3△ = (n+1)△ • 이전 방법에 비해 지연 시간이 절반으로 줄어들게 됨
4 비트 가산기의 직렬연결 • 4비트 가산기 : 7483, 74283
Carry-look-ahead adder • adder의 각 단에서 두 개의 신호를 만들어 냄 • Gi(generate) = aibi • Pi(propagate) = ai + bi • ci = aibi + aici-1 + bici-1 • = aibi + (ai + bi)ci-1 • = Gi + Pi ci-1 • c1 = G1 + P1 c0 • c2 = G2 + P2 c1 • = G2 + P2 (G1 + P1 c0) • = G2 + P2 G1 + P2 P1 c0
감산기와 가산기 4 비트 가/감산기
비교기 4 비트 비교기
비교기 typical bit of a comparator
디코더 • 디코더는 코딩된 입력 신호에 의해 여러 출력 선 중 하나를 선택하는 장치 • => 일반적으로, 입력은 n비트 이진수이고 2n의 출력 선이 존재 • 2-입력(4-출력) active high출력 디코더에 대한 진리표 • => 활성화되는 출력은 1이고 비활성화되는 출력은 0 * active low: 활성화되는 출력은 0이고 비활성화되는 출력은 1 인 경우
2-입력 디코더 • 2-입력(4-출력) active high 출력 디코더 • 각 출력은 2변수 함수의 최소항들과 일치 • 출력0 : a'b' • 출력1 :a'b • 출력2 : ab' • 출력3: ab active high 디코더
Active low 출력 형식 • active low 출력 형식의 디코더 회로와 진리표
Enable input(활성화 신호) • active low 활성화 신호가 있는 active high 출력 디코더 • (진리표, 블록 다이어그램, 회로) • active low 신호는 블록 다이어그램에서 작은 원(bubble)으로 표시
74138 (3-to-8 decoder) • active low 출력과 3개의 동작 입력 • => active high : EN1 • active low : EN2', EN3' • => EN1 = 1, EN2' = 0, EN3' = 0 일 때 동작 • 입력은 C, B, A(C가 최상위 비트)로 표기 • 74138에 대한 진리표 (3-입력, 8-출력 디코더)
디코더 응용 • 디코더의 응용 • 각각 고유의 주소를 갖고 있는 많은 장치 중에서 하나를 선택하는 것 • 주소는 디코더의 입력이 되고 하나의 출력이 활성화되면 그 주소에 • 해당하는 하나의 장치를 선택 • 하나의 디코더로 선택할 수 있는 것보다 더 많은 장치가 있는 경우 • 동작 입력을 이용하여 디코드 • 추가적인 디코더를 사용
예제 5.1 동작 입력을 이용 74138 디코더를 사용하여 32개의 장치 중 하나를 선택하기 위한 회로를 설계하라 - 4개의 동일한 디코더를 사용 - 주소가 a, b, c, d, e로 주어졌다면, c, d, e 비트가 4개의 디코더에 공통으로 사용 (C, B, A의 순서) - a, b는 4개의 디코더 중에서 1개를 선택
디코더 각각의 active high 출력은 그 함수의 최소항과 일치 • => 논리함수 구현에 필요한 것은 해당된 출력들을 연결할 OR 게이트 • active low 출력 디코더의 경우는 OR 게이트를 NAND 게이트로 변경 • => AND-OR 회로에서 NAND-NAND 회로로 변경 • f = ab + cd = (ab + cd) = ( ab • cd ) • 같은 입력들로 구성되는 둘 이상의 함수에 대해서도 하나의 디코더만 필요 • => 각각의 출력 함수에 대해서는 하나의 OR 또는 NAND가 필요 디코더를 이용한 논리함수 구현
예제 5.3논리함수 구현 f(a, b, c) = m(0, 2, 3, 7) g(a, b, c) = m(1, 4, 6, 7) 함수를 디코더를 사용하여 설계하라. - 위 함수들은 아래에 보이는 디코더 회로 중 하나로 구현 가능.
인코더와 우선순위 인코더 • 인코더는 여러 장치 중 하나가 신호를 보낼 때 그 장치를 나타내는 • 코드를 만들어 냄 • 만일 A0, A1, A2, A3 4개의 입력 중에서 정확히 한 개의 입력만 1이라고 • 하면, 다음 진리표는 4입력 인코더의 동작을 표현 • 식 • Z0 = A2 + A3 • Z1 = A1 + A3
인코더 • 장치 0 에 신호가 있는 경우와 모든 장치에 신호가 없는 것을 구분 하지 못함 • 어떤 입력도 활성화되지 않았다는 것을 나타내는 출력 N이 필요 • 식 • Z0 = A2 + A3 • Z1 = A1 + A3 • N = A’0A’1A’2A’3 • = (A0+A1+A2+A3)’
우선순위 인코더 • 하나 이상의 입력이 동시에 일어날 수 있다면, 우선 순위가 필요 • => 우선순위가 가장 높은 장치 번호에 대한 code 출력 • 우선순위는 일반적으로 내림차순(또는 오름차순)으로 정렬되어 최우선 • 순위에 가장 큰(또는 가장 작은) 입력 번호가 주어짐 • 표 5.5은 8-입력 우선순위 인코더에 대한 진리표를 나타냄
멀티플렉서 => n 개의 데이터 입력 중 하나를 선택하여 출력으로 보낸다.
Multibit multiplexer • 16비트 숫자 4개에서 1개의 16 비트 숫자 선택 • 각 비트에 대하여 4-to-1 multiplexer 가 필요 • -> 총 16개의 4-to-1 multiplexer • 그림 5.12의 회로를 이용하여 • - 64(4 X 16) 개의 3-입력 AND 게이트 • - 16개의 4-입력 OR 게이트 가 필요 • - 22개의 3-입력 AND 게이트 패키지 • 그림 5.13와 같이 디코더를 사용하면 • - 68개의 2-입력 AND 게이트 • - 16개의 4-입력 OR 게이트 가 필요 • - 17개의 2-입력 AND 게이트 패키지
X Y Z X X Y Z F 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 S2 S1 S0 0 1 1 1 1 0 0 0 0 1 2 3 4 5 6 7 F 멀티플렉서를 이용한 함수 구현
Better Solution X Y X Y Z F 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 F = Z S1 S0 F = 1 0 1 2 3 F = Z’ Z 1 Z’ 0 F F = 0
상용 멀티플렉서 패키지 • 74151 • 8-to-1 mux • active low 동작입력 EN' • active high 와 active low의 출력 • 선택 입력: S2, S1, S0 • 74153 • 2 개의(이중의) 4-to-1 멀티플렉서 • 독립된 active low 동작입력(ENA'와 ENB') • 공통인 선택신호: S1, S0 • 74157 • 4개의 2-to-1 멀티플렉서 • 공통의 active low 동작입력 EN' • 공통의 선택 입력: S
S1 S0 O0 O1 O2 O3 0 0 I 0 0 0 0 0 0 I 0 0 0 0 0 0 I 0 0 0 0 0 0 I S1 S0 O0 O1 O2 O3 I 디멀티플렉서 (Demultiplxer) • 멀티플렉서의 역함수 역할 • enable 입력이 있는 디코더(decoder with enable)의 내부회로와 동일
3-상태(three-state) 게이트 • 두개 이상의 출력을 서로 연결하는데 사용되는 두 가지 방법 • 1) 3-상태(three-state) 출력 게이트 : 일반적 • 2) 개방-컬렉터(open-collector) 게이트 • 3-상태(three-state)게이트에서는 게이트의 측면에 enable 입력이 있음 • => enable 입력이 활성화되면(active high 또는 active low), 게이트는 • 평상시와 같이 동작 • => enable 입력이 비활성화된다면 출력은 연결되지 않은 것처럼 • (개방 회로처럼) 동작하며 그 출력은 Z 로 나타냄 • Z: high impedence 상태 (연결이 안된 것처럼 동작)
3-상태 게이트 심볼과 진리표 • 그림 5.14는 3-상태(three-state) 버퍼(active high 동작)의 진리표와 • 회로 표기 • active low enable 입력 과 active low 출력을 가진 3-상태(three- state) 버퍼 -> three-state inverter
3-상태 게이트로 멀티플렉서 구현 • 3-상태(three-state) 게이트로 OR 게이트 없는 멀티플렉서 구현 가능 • 2-to-1 멀티플렉서=> f = a • EN' + b • EN
3-state 버퍼를이용한 버스 구현 1-비트 버스 구현
게이트 배열- ROMs, PLAs, AND PALs • 게이트 배열은 꽤 복잡한 • 시스템의 구현을 쉽게한다 • 3입력과 3출력 시스템 • 점선들은 가능한 연결 • 곱의 합 식을 구현 • 6개의 곱 항이 가능 • 보수 입력이 필요 없음
예제 5.7a f = a'b' + abc g = a'b'c' + ab + bc h = a'b' + c • 연결점들은 생략하였고 각각의 실선이 연결을 • 나타냄. • a'b' 공유항 • 항 c 를 위한 게이트는 일반 • 회로에서는 필요없는 것
예제 5.7b • 앞의 방식은 입력수, 게이트 수가 • 많아지면 나타내기가 어렵다. • 모든 선을 보여주기보다 보통은 • 각각의 게이트에 대해 한 개의 • 입력선만 보여주고 연결되는 • 교차점에서는 X 또는 점으로 표시
Gate Array의 세 가지 일반적인 유형 • 1) PLA(programmable logic array) : 가장 일반적인 유형 • 사용자가 모든 연결(AND 배열과 OR 배열 모두)을 지정 가능 • 어떤 곱의 합 식(공유하는 공통항)도 가능 • 2) ROM(read-only-memory) • ROM에서 AND 배열은 고정됨 • 2n 개의 AND 게이트들로 구성된 디코더 • 사용자는 단지 OR 게이트로의 연결을 지정 • 따라서 최소항들의 합을 만들어 냄 • 3) PAL(programmable array logic) • OR 게이트 연결이 지정되어 있음 • 사용자는 AND 게이트 입력을 지정 • 각각의 곱 항은 공유할 수 없음
프로그램 가능한 출력 회로 • 출력단에 3-상태(three-state) 버퍼 -> 버스 출력에 적합 • 출력은 AND 배열의 또 다른 입력으로 feedback 되기도 함 • 이것은 2 level 이상의 논리회로를 고려한 것(PAL에서 ) • 그림에서 만약 EN = 0 이면, 출력 대신에 입력으로 사용 가능
ROM에 의한 설계 • ROM을 이용하여 시스템을 설계하기 위해서는 각 함수의 최소항들 • 목록만이 필요 함 • ROM은 각각의 최소항에 대해 한 개의 AND 게이트를 가지고 있고, • 각각의 출력에 해당된 최소항 게이트들을 연결해주면 됨 • 곱의 합 식을 디코더로 구현한 것(예제 5.3)과 같음
예제 5.8 W(A, B, C, D) = m(3, 7, 8, 9, 11, 15) X(A, B, C, D) = m(3, 4, 5, 7, 10, 14, 15) Y(A, B, C, D) = m(1, 5, 7, 11, 15)