7 장조합논리회로
7. 조합논리회로해석 조합논리회로 과거의입력에상관없이현재의입력값에의해출력이결정되는회로 n 개의입력변수에의해 2 n 개의입력 2 진조합이가능 입력 조합논리회로 출력 조합회로해석 주어진논리회로로부터부울함수와진리표를구한후, 논리회로의동작을해석. 조합회로해석과정 입 / 출력에대한변수의수와변수명을결정한다. n 개의입력변수에대해 2 n 개의 2 진조합에대한각게이트의출력부울함수를표시한다. 진리표에의해각출력함수를간소화한다. 출력부울함수와진리표를분석하여논리회로의동작해석 2
조합논리회로의해석 예 ) 다음조합논리회로에서부울함수를구하여간소화하고진리표를작성하라.. 입력변수 (x,y,z), 출력변수 (F) 를선정 2. 입력변수에대한진리표를작성 3. 입력변수가 3개-> 2 3 가지의조합입력각게이트의출력부울함수를구한다. T = x' y z T 2 = x' y z' T 3 = x y x y z T T 2 T 3 F 진리표에의한부울함수를구한다. F = T + T 2 + T 3 = x'y z + x'y z' + x y 부울함수식으로간소화한다. F = x' y z + x' y z' + x y = x' y( z+ z') + x y = y(x' + x) = y 3
7.2 조합논리회로설계 설계하려고하는회로의사양을분석하고, 분석된동작을실행하기위한함수를구한다. 조합논리회로를구성하는논리회로의설계과정. 주어진문제를분석한다. 2입력변수, 출력변수그리고출력의변수명을결정 3 진리표를작성한후진리표로부터부울함수를구한다. 4 진리표에의해카르노맵또는그외방법으로간소화한다. 5 간소화된부울함수에의해논리회로를설계한다. 설계시유의사항 게이트의입력을최소화한다. 게이트의수를최소화한다. 논리회로의전파지연시간을최소화한다. 상호연결되는수를최소화한다 4
코드변환기 (code converter) 2 진코드 그레이코드변환 입력 : 이진코드 3 자리 x,y,z 출력 : 그레이코드 3 자리 a, b, c 진리표작성 논리최소화 2 진수 / 그레이코드의변환과정. 2 진수의첫번째비트는그레이첫번째비트 2. 왼쪽부터오른쪽으로이웃하는 2 개의비트를 XOR 하면각각그레이코드 3. 2 번과같은방법으로모든자리수를반복 입력 2 진코드 x y z 출력그레이코드 a b c x y z (2진수) 2 진 / 그레이코드변환회로구성 a b c ( 그레이코드 ) 5
코드변환기 (code converter) 그레이코드 이진코드변환 입력 : 그레이코드 3 자리 a, b, c 입력그레이코드 출력이진코드 출력 : 이진코드 3 자리 x,y,z a b c x y z 진리표작성 논리최소화 그레이코드 / 2 진수의변환과정. 그레이코드의첫번째비트는이진코드의첫번째비트 2. 결과의이진코드비트와이웃하는오른쪽의그레이코드비트를 XOR 하면각각그레이코드 3. 2 번과같은방법으로모든자리수를반복 그레이코드 /2 진변환회로구성 a b c ( 그레이코드 ) x (2 진수 ) y z 6
w BCD 코드의 242 코드변환 입력 : BCD 코드 4 자리 w, x,y,z 출력 : 242 코드 4 자리 a, b, c, d 진리표작성 : 사용하지않는입력 6 개는 don't care 논리최소화 : 출력 a,b,c,d, 에대한각카르노맵최소화 논리도작성 y x x x x x x x x x x x x x BCD 코드입력 w x y z 242 코드출력 a b c d z a=w+xz+xy b=w+xz'+xy w x y z a b x x x x x x x x x x x x c c=w+x'y+xy'z d=z d 7
7.3 패리티발생기와패리티검사기 4 비트데이터에대한짝수패리티발생기 (generator) 회로설계 출력짝수패리티비트, P E 진리표와부울식유도 P E = D 3 ' 'D ' + D 3 ' 'D ' + D 3 ' D ' '+ D 3 ' D + D 3 'D ' ' + D 3 'D + D 3 D ' + D 3 D ' = D 3 ' '(D ' + D ') + D 3 ' (D ' ' + D ) + D 3 '(D ' ' + D ) + D 3 (D ' + D ') = D 3 ' '(D ) + D 3 ' (D )' + D 3 '(D )' + D 3 (D ) = (D ) (D 3 ' '+ D 3 ) + (D )'(D 3 ' + D 3 ') = (D )(D 3 )' + (D )'(D 3 ) = D D 3 = ((D 3 ) D ) <-- XOR 사용, 3 개의 XOR 게이트사용 = ((D 3 ) (D )) <-- better design D 3 D P E P P E 카르노맵 홀수패리티발생기 P O = ((D 3 ) (D ))' 전송시 4 비트의데이터 + 패리티비트의 5 비트를함께전송홀수패리티나그외어떤수의추가비트라도사용가능 8
패리티검사기 (checker) 짝수패리티검사기진리표 5비트입력PD 3 D 출력 C E = if error, = no error 부울식유도 C E = P D 3 D 4 개의 XOR 게이트사용 Odd 패리티사용회로 4 비트데이터에대한생성기 P O = (D 3 D )' <= XNOR 5 비트검사기회로 C O = (P O D 3 D )' Even function 과 Odd function 짝함수 - 입력에포함된 의개수가 을포함하여짝수개인함수 홀함수 - 입력에포함된 의개수가홀수개인함수 예 : 짝수패리티발생기및검사기는홀함수 홀수패리티발생기및검사기는짝함수 짝함수와홀함수는서로 complement 함수이다. n 입력짝함수와홀함수의 minterm 개수는각각 2 n / 2 P = P = P = P = D 3 D D 3 D C E C E 짝함수카르노맵 9
7.4 인코더 최대 M (<= 2 N ) 개의입력과 N 개의출력으로구성되며, M 개의입력중한개의입력이동작하여그에대응하는 n 비트의출력코드를생성하는조합회로 일반적인인코더 M-to-N 인코더, M <= 2 N 인코더블록도예 (-to-4) 4-to-2 인코더 4 개의입력과 2 개의출력으로구성, 4 개의입력에따라 2 진조합출력 진리표와논리회로 DD.D8D9encoderW2X..4Y88Z9X = D2 + D3 D D 3 Y = D + D 3
8 개의입력에대한 3 비트의코드생성 8-to-3 인코더 D X=D 4 +D 5 +D 6 +D 7 D 3 D 4 Y= +D 3 +D 6 +D 7 D 5 D 6 D 7 Z=D +D 3 +D 5 +D 7 입력이 low active 인경우의 8-to-3 encoder input : active low output :active high O 2 = A 4 '+A 5 '+A 6 '+A 7 ' O = A 2 '+A 3 '+A 6 '+A 7 ' O = A '+A 3 '+A 5 '+A 7 ' A ' 입력 floating 다른모든입력이 일때 A ' 입력에상관없이출력 <- ambiguity 인코더에 A3' 와 A5' 입력이동시에 일때인코더의출력은? 논리식에따라 A3' 와 A5' 를포함하는모든출력이 이되므로출력은 이결과는입력의어느경우에도맞지않는출력이다. <- ambiguity 2
우선순위 (Priority) 인코더 여러개의입력이동시에인가되었을때우선순위 (priority) 를주어높은우선순위를가지는입력값에대한코드만출력 ambiguity 2 제거 앞의회로에서높은자리에우선순위를부여하면 A 5 ' 만유효하게입력받아출력은 7448, 74LS48, 74HC48 : 8-to-3 priority encoder 입력및출력은모두 low active GS 출력은 ambiguity 을제거 : GS= 유효출력 EI와 EO는확장연결시사용 EI=H, 엔코딩입력에상관없이출력코드 =, EO=H EI=L, 엔코딩입력의유효유무에따라 GS와 EO 결정 고순위입력인가시에저순위입력은 dont'care 7448 의확장연결 : 6-to-4 priority 엔코더 2
decimal-to-bcd priority encoder : 7447 진수를 BCD 코드로변환 : 개입력 (9 개만사용 ), 4 개출력 active low 입력및출력 스위치인코더 7447 을이용하여 개의키보드입력을받아 BCD 코드로변환하는회로 예 : 스위치를누르면 인가, 개방하면 pullup 저항을통해 에연결 두개이상스위치가동시에눌러지면높은자리 ( 고순위 ) 키로처리 출력은반전하여정상 BCD 로변환 3
7.5 디코더 (Decoder) n개입력선의코드화된 2진정보를최대 2 n 개의출력으로변환하는조합회로일반적인디코더회로 N개의입력과 M개의출력 : N-to-M, NxM N 입력에대하여 2 N 개의입력조합으로 M 2 N 입출력에버블 low active 2 진디코더 : 2 진디코더는 2 개의입력과 4(2 2 ) 개의출력으로구성 2X4 디코더논리회로 x y D 3 D x y = x y D = x y = x y D 3 = x y 4
3-to-8 decoder binary-to-octal decoder/converter, -of-8 디코더 Enable 입력 디코더의모든출력을활성 / 비활성화 예 : 3-to-8 디코더의 3 입력 AND 게이트를전부 4 입력 AND 게이트로하고 4번째입력에 enable 입력, E를인가하면, E=이면정상디코더동작 E=이면모든출력은 enable 입력은디코더의확장시사용 x y Z Enable 입력을가지는 2X4 디코더 2개로구성된 3X8디코더 Decoder A 2 2 2 Enable 3 Decoder B 2 2 2 Enable 3 D D 3 D 4 D 5 D 6 D 7 5
74LS38 3-to-8 디코더 NAND 출력 -> active low 출력 enable 입력 : E ', E 2 ',(active low), E 3 (active high) 디코더가활성화되려면 : E 'E 2 'E 3 = 디코더의확장 4 개의 74LS38 과인버터를사용하여 -of-32 디코더를구성 -of-32 디코더는 5-to-32 디코더, 즉 5 개의입력필요 7438 을 4 개사용, 출력은 8 개 x 4 = 32 의출력을 rename 7438 의원래입력과 E 3 E 2 'E ' 를이용하여 5 입력 A 4 A 3 A 2 A A 생성 7438의각소자 (Z -Z 4 ) 는 A 4 A 3 에인가된신호가각각,,, 일때순차적으로그디코더를활성화하게되고이때의 A 2 A A 값에따라출력신호중하나만활성화 6
BCD to decimal 디코더 : 7442 4-to- 디코더, -of- 디코더 output : low active BCD 무효입력 출력이모두 high ( 비활성 ) 7
디코더에의한조합회로구현 디코더는 n개의입력에대하여 2 n 개의 AND 게이트로구성되는 minterm 회로 디코더의외부에 OR 게이트를추가하면 Sum of minterms 회로구성 조합회로를구현할때출력함수들을 SOP로표현 예 ) 부울함수로부터 3 8 디코더를사용하여전가산기 (full adder) 회로를구성전가산기 3 자리이진수의덧셈기 입력 : x, y, z ( 캐리입력 ) 출력 : S( 합 ), C( 캐리 ) x y z C S x y z 2 2 3X8 디코더 2 2 2 3 4 5 6 7 S C 8
BCD to 7 세그먼트디코더 BCD 코드를입력으로 7 세그먼트 LED 에 ~9 의숫자표시 각세그먼트의이름 - a, b, c, d, e, f, g a f g b 세그먼트의공통단자에따라 CA (common anode) - active low logic CC (common cathode) active high logic e d c CA CC LED 구동전류 : 세그먼트당 ~4 ma ( 예 ) 전류제한저항계산 : 7 세그먼트 LED 형태의각세그먼트는정상적인밝기에대해 2.7V, ma에서동작한다. 세그먼트당 ma를흐르게하는전류 - 제한저항값을구하라. R = (5-2.7)V / ma = 23 Ω 각세그먼트의밝기를일정하게하려면각세그먼트당저항연결 9
7446/7447/7448 BCD-to-7 segment decoder/driver 7446,7447 active low output, CA 형, open collector (OC) 7448, 7449(OC) active high output, CC 형 2
7.6 멀티플렉서 (MUX, Multiplexer) 데이터선택기 (data selector) - 여러개의데이터입력중하나를선택하여출력 일반적인 MUX : N-to-, out of N N개의입력중하나를선택하기위한선택선 : M, N <=2 M 2 input MUX : 2-to- MUX S Z D D Z 데이터입력, D 선택입력 S, 출력 Z = S' + D S S 2
MUXs 4 to MUX 8 to MUX 745 enable input (low enable, E) 3 개의선택선 : S 2 S S 정규및반전출력 : Z, Z' - 2 개의 745 을사용한 6-to- MUX 회로 S 3 =, 위의 745 동작, S 2 S S 값에따라입력 I 7 -I 중하나를출력 S 3 =, 아래 745 동작, S 2 S S 값에따라입력 I 5 -I 8 중하나를출력 22
Quad 2 입력 MUX - 7457 4 개의 2 입력 MUX, with low enable 두개의입력군 (input nibble) 중하나를선택, 4 비트데이터 ( 니블 ) 연결회로에많이사용 SELECT = Zi = Xi i = - 3 = Zi = Yi SELECT x 2 x x 3 x y 3 y 2 y y Z 3 Z 2 Z Z 23
MUX 를사용한논리회로구현 진리표에서직접논리기능을구현하는데사용 선택입력은논리의입력변수로사용 각데이터입력은진리표를만족하기위한 또는 로연결 다른방법 : 3 입력논리함수인경우 2(3-) 개의선택선을가진 MUX 로구현가능 4-to- MUX 사용으로위함수를구현가능입력 BA 신호를선택선 S S 에연결 ( 신호순서주의!) 입력 C 신호에대한 implementation table 작성구현표의열은입력선에인가할신호의반전및정규열구성행에는선택선에인가할신호의이진값차례로구성총2 N 개의 minterm을나타낼수있는항이생긴다. 이항에진리표에서 이되는 minterm을원으로표시각열의단위로원이둘다 (C와 C') 그려지면, 둘다없으면, C' 행만있으면 C', C행만있으면 C로표시 MUX 입력에인가될신호값 최종회로 : Z= C'B'A+C'BA'+CBA <- 진리표만족 HW - 전가산기회로를 4-to- MUX 로구현 24
MUX 응용회로 데이터라우팅 - 여러소스 (source) 에서오는데이터중의하나를출력목적지로연결 두개의여러자리 BCD 카운터를같은디스플레이로보여주는회로 counter select =, counter 의 BCD 값이 LED 에나타남 counter select =, counter2 의 BCD 값이 LED 에나타남 MUX 는디코더 / 구동기들을시분할하여사용 LED 에서전력소모가클때전력감소효과 25
x 7.7 디멀티플렉서 (DeMUX) 멀티플렉서의역동작 데이터분배기 DeMUX 는하나의입력정보를 2 n 개의가능한출력선중하나로전송하며특정출력의선택은 n 개의선택선에의해제어 일반적인디멀티플렉서 : -to-n N개의출력으로분배하기위한선택선이 M이라면 N 2 M -to-8 디멀티플렉서 demultiplexer D D 3 D 4 D 5 D 6 D 7 - 디코더를 DEMUX 로사용 7438 디코더를 DEMUX 사용예인에이블 E ' 은데이타입력 I 로사용, A 2,A,A 입력은선택선으로사용 S 2 S S 26
7.8 MUX 와 DEMUX 의조합논리 전화기 전화기 2 전화기 3 전화기 전화기 2 전화기 3 [A 국과 B 국을연결된 MUX 와 DEMUX ] 전화기 4 전화기 4 A 국 B 국 입력 입력 입력 N. 멀티플렉서 디멀티플렉서. 출력 출력 출력 n.... 번지 선택선.... 번지 선택선 [MUX/DEMUX 의블록도 ] 27
MUX-DeMUX 응용회로 안전감시시스템많은문의개폐가필요한곳을감시하는공장에서안전감시의경우를고려각문은스위치의상태에따라제어. 감시소에설치된원거리모니터판의각 LED 에스위치상태표시 MUX/DEMUX 를이용한감시시스템 - 8 개의문을가진감시시스템 8 개의문스위치가 MUX 입력으로문이열릴때, 문이닫힐때 MOD-8 카운터 ( 부터 까지순차적으로카운팅 ) 출력을 MUX 와 DEMUX 의선택선에연결, DEMUX 의각출력은 LED 에연결되어출력이 일때 ON 문 6 이개방 : I 6 =, Z'=, count= 일때 O 6 '= => LED 6 ON 문 2 가닫힘 : I 2 =, Z'=, count= 일때 O 2 '= => LE OFF 28