Transcript Document
Digital design 4장. 조합 논리 1 Logic Circuit Combinational Logic Circuit 출력 = f(현재입력) 현재의 입력에 의해서만 출력이 결정 N 개의 입력에 대하여 일정시간 후 m 개의 출력 생성 No feedback Combinational Logic Circuit … … N input variable M output variable 2 Logic Circuit Sequential Logic Circuit 출력 = f(현재입력, 현재상태) 현재의 입력에 뿐만이 아니라 현재의 상태도 출력에 영향 feedback M M Sequential Logic Circuit … … N input variable M output variable 3 Design Procedure Design Procedure 문제기술(분석) Input, Output Variable 의 개수 결정 Input, Output Variable 의 이름 할당 Truth table 작성 Boolean Function의 minimization Logic Diagram 작성 Design Verification 설게시 고려사항 최소갯수의 논리게이트 게이트당 최소입력수 최소의 전달지연시간 최속의 연결선 수 각 놀리게이트의 구동한계 4 Analysis of Combinational Circuit Bool 식 유도 A B C A B C A B A C B C 입력변수로 부터 각 게이트의 출력에 중간변수 할당 중간변수에 대한 부울식 유도 회로의 출력에 대한 부울 대수기을 얻을때까지 반복 중간변수를 대입하여 최종 출력을 입력변수에 대하여 표현 T2 F1 T1 T3 F’2 F2 F2 = AB + BC + CA T1 = A + B + C T2 = ABC T3 = F’2T1 F1 = T2+T3 = ABC+ F2’T1 = ABC+(AB+BC+CA)’(A+B+C) = A’BC’+A’B’C+AB’C’+ABC =A+ B +C 5 Analysis of Combinational Circuit K-Map 을 이용 A B C A B C A B A C B C T2 F1 T1 T3 F’2 BC A 00 0 1 F2 01 11 1 1 10 1 1 F1 = A + B + C A B C F2 F 2’ T1 T2 T3 F1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 A BC 00 01 0 1 11 10 1 1 1 1 F2 = AB+BC+CA 6 Analysis of Combinational Circuit Bool 식 유도 C D B' A B C' T1 T2 T3 T4 F T1 T3 T4 F T2 = (CD)’ = C’ + D’ = (BC’)’ = B’ + C = (T1B’)’ = ((C’+D’)B’)’ = (B’C’+B’D’)’ = (B+C)(B+D) = B + CD = (AT3)’ = (A(B+CD))’ = (T2T4)’ = (BC’)(A(B+CD))’ = BC’+A(B+CD) 7 Analysis of Combinational Circuit K-Map 을 이용 C D B' A B C' T1 T3 T4 F T2 CD AB 00 01 11 10 00 01 1 1 11 1 1 10 1 1 1 F = AB+BC’+ACD = A(B+CD)+BC’ A B C D T1 T2 T3 T4 F 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 8 Binary Adder-Subtractor Binary Adder Half-Adder : 2비트를 더하는 기능 수행(x+y) Full-Adder : 3비트를 더하는 기능 수행(x+y+z) 2개의 Half-Adder 는 하나의 Full-Adder 가 된다 Binary Subtractor – Adder에 보수회로 추가 9 Half-Adder 두 2진 입력의 합 입력 : X, Y 출력 : S(sum), C(carry) x y S C X y y 0 x 0 0 1 0 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 S = xy’+x’y S HA y x 0 1 C 0 1 1 C = xy 10 Half-Adder x y’ x S S y x’ y C x y C S = xy’ + x’y C = xy S=x + y C = xy 11 Half-Adder x’ y’ S x y C S = (C+x’y’)’ C = xy x y S x’ Y’ x y S x y C S = (x+y)(x’+ y’) C = xy x’ y’ C S = (x+y)(x’+ y’) C = (x’+y’)’ 12 Full-Adder X y z x S FA y z s c 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 00 0 C x yz 1 01 11 10 1 1 1 1 S = xy’z’+x’y’x+x’yz’+xyz = x’(y’z+yz’)+x(yz+y’z’) = x’(y + z)+x(y + z)’ = x +y +z x yz 00 01 0 1 11 10 1 1 1 x yz 00 01 C = xy + yz + xz 1 10 1 0 1 11 1 1 1 C = xy + x’yz + xy’z = xy+z(x’y+xy’) = xy+z(x + y) 13 Full-Adder S = xy’z’+x’y’x+x’yz’+xyz C = xy+yz+xz x y' z' x' y' z x' y S=x+y + z C = xy+z(x + y) S x y z' S x y z C x y y z z x z C 14 Half-Subtractor 두 2진 입력의 차 입력 : X, Y 출력 : D(Difference), B(Borrow) y x y D B x 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 1 X HS y 1 1 S = xy’+x’y =x+y x y D y x 0 B 0 1 1 1 C = x’y D B 15 Full-Subtractor X y z x D FS y z D B 0 0 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 00 0 B x yz 1 01 11 10 1 1 1 1 D = xy’z’+x’y’x+x’yz’+xyz = x’(y’z+yz’)+x(yz+y’z’) = x’(y + z)+x(y + z)’ = x +y +z x yz 0 1 00 01 11 10 1 1 1 1 C = x’y + yz + x’z x yz 0 1 00 01 11 10 1 1 1 1 C = x’y + xyz + x’y’z = x’y+z(xy+x’y’) = x’y+z(x + y)’ 16 Full-Subtractor x y D = x+ y+ z B = x’y+z(x + y)’ D B z x y z HS HS D B 17 4 bit binary Parallel Adder (Binary Ripple Carry Adder) B3B2B1B0 + A3A2A1A0 1011 + 1001 S3S2S1S0 C4C3C2C1C0 10100 B 3 A3 FA C4 S3 B 2 A2 C3 FA S2 B 1 A1 C2 FA S1 B0 A0 C1 FA C0 S0 18 4 bit binary Adder-Subtractor If M = 0, then A + B If M = 1, then A + (B에 대한 1의보수)+1 = A - B B 3 A3 B 2 A2 B 1 A1 B 0 A0 M FA C4 S3 C3 FA S2 C2 FA S1 C1 FA C0 S0 19 캐리의 전파 지연시간의 증가(캐리 지연) Carry lookahead 를 통해 해결 가능 모든 캐리는 Pi,Gi, C0 의 함수이다! Ai Bi Pi Si = A i + B i + C i Gi Ci+1 = Ai Bi +Ci (Ai+ Bi ) Ci Pi = Ai + Bi, Gi = Ai Bi ⇒ Si = Pi + C i , Ci+1 = Gi + Pi Ci C2 = G1 + P1C1 C3 = G2 + P2C2 = G2 + P2(G1+P1C1) = G2+P2G1+P2P1C1 C4 = G3 + P3C3 = G3 + P3(G2+P2G1+P2P1C1) = G3+P3G2+P3P2G1+P3P2P1C1 Ci 는 Ci-1 을 기다릴 필요가 없으므로, S2,S3,S4는 동일한 지연시간을 갖는다 20 캐리 전파 캐리 룩어헤드 생성기 21 캐리 전파 캐리 룩어헤드를 가진 4비트 덧셈기 22 OverFlow n자리 수들의 합에 대한 결과는 n+1자리가 필요 두 수가 같은 부호일때만 발생 (오버플로의 예) 23 BCD Adder (0+0) ≤ BCD 합 ≤ (9+9+1) 이진수 합 BCD 합 십 진 K Z8 Z4 Z2 Z1 C S8 S4 S2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 2 0 0 0 1 0 0 3 0 0 0 1 1 4 0 0 1 0 5 0 0 1 6 0 0 7 0 8 9 이진수 합 BCD 합 S1 십 진 K Z8 Z4 Z2 Z1 C S8 S4 S2 S1 0 0 10 0 1 0 1 0 1 0 0 0 0 0 0 1 11 0 1 0 1 1 1 0 0 0 1 0 0 1 0 12 0 1 1 0 0 1 0 0 1 0 0 0 0 1 1 13 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 14 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 0 1 15 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 0 16 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0 0 1 1 1 17 1 0 0 0 1 1 0 1 1 1 0 1 0 0 0 0 1 0 0 0 18 1 0 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 19 1 0 0 1 1 1 1 0 0 1 • 0 ↔ 9 : 이진수 합 = BCD 합 •10 ↔ 19 : 이진수 합 + 0110 = 합 24 BCD Adder 2개의 BCD수를 합한 BCD 출력 출력이 1010에서 1111 사이의 값이면 캐리 발 생 8 4 8 2 C=K+Z Z +Z Z 1100 1010 1101 1011 1110 1111 25 BCD Adder 486 + 734 1220 0100 1 BCD Adder 3 0100 1 0110 0111 BCD Adder 1 0100 BCD Adder 0010 0010 0000 2 2 0 10 digit 10 digit 10 digit 1 10 digit 0111 2 1 0 0 26 4-6 Binary multiplier 2bit x 2bit = 4bit(max) 1 x 1 1 10 11 0 1 0 0 27 Binary Multiplier Design(4bit x 3bit) (K비트) x (J비트) (K x J)개의 AND 게이트, (J-1)개의 K비트 덧셈기 필요 B₂ A₂ A0B₃ A0 B₂ A2B₃ S6 S5 B₃ B₁ A₁ A0B₁ A1B₃ A1B₂ A1B₁ A1B0 B0 A0 A0B0 A2B₂ A2B₁ A2B0 S4 S3 S2 S1 S0 28 Binary Multiplier Design(4bit x 3bit) 29 Comparator 이진수 A=A3A2A1A0 와 B=B3B2B1B0 의 크기비교 A₃ A₂ A₁ A0 F(A>B) = A3B3’+X3A2B2’+X3X2A1B1’+X3X2X1A0B0’ Comparator B₃ B₂ B₁ B0 F(A>B) = A3’B3+X3A2’B2+X3X2A1’B1+X3X2X1A0’B0 F(A>B) = X3X2X1X0’ A >B 인경우 A : 1XXX B : 0XXX A3B3’ △1XX △0XX △◇1X △◇0X X3A2B2’ X3X2A1B1’ △◇☆1 △◇☆0 X3X2X1A0B0’ 30 Comparator의 회로도 31 Decoder n개의 입력변수에 대해 2ⁿ개까지의 최소항 생성 예)3-to-8 라인 디코더 입 력 x y z 3x8 decoder D0 D1 D2 D3 D4 D5 D6 D7 = = = = = = = = x’y’z’ x’y’z’ x’y’z’ x’y’z’ x’y’z’ x’y’z’ x’y’z’ x’y’z’ 출 력 x y z D0 D1 D2 D3 D4 D5 D6 D7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 32 Decoder 33 Decoder Enable 입력을 갖는 2-to-4 라인 디코더 신호 E로써 회로의 동작을 조절 34 Decoder Enable 입력을 갖는 디코더는 더 큰 디코더로 확 장 가능 35 Encoder(BCD to Decimal) 입 력 출 력 yz 00 01 11 10 00 D0 D1 D3 D2 wx w x y z D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 0 0 0 0 1 0 0 0 0 0 0 0 0 0 01 D4 D5 D7 D6 0 0 0 1 0 1 0 0 0 0 0 0 0 0 11 X X X X 0 0 1 0 0 0 1 0 0 0 0 0 0 0 10 D8 D9 X X 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 = = = = = = = = = = w’x’y’z’ w’x’y’z x’yz’ x’yz xy’z’ xy’z xyz’ xyz wz’ wz 36 Decoder를 이용한 조합회로의 구현 조합 논리의 구현 어떠한 조합 논리 회로라도 라인 디코더와 OR게이트로써 구현 가 능 x y z s c 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 37 Encoder • 디코더의 반대 기능 수행 • 2ⁿ 개의 입력값에 대해 n개의 출력을 생성 예) 8-to-2 인코더 입 력 출 력 D0 D1 D2 D3 D4 D5 D6 D7 x y z 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 D0 D1 D2 D3 D4 D5 D6 D7 38 Priority Encoder 동시에 둘 이상의 입력값이 1인 경우 문제 발생 회로에 우선 순위를 부여 (x100 = 0100, 1100) 39 Multiplexer 많은 입력라인 중에서 하나의 2진 정보를 선택, 출력 선택은 선택라인에 의해서 제어됨 2ⁿ 개의 입력라인에는 n개의 선택라인이 필요 40 Multiplexer 4-to-1 라인 멀티플렉서 S1 S0 Y 0 0 I0 0 1 I1 1 0 I2 1 1 I3 41 Multiplexer 4중 2-to-1 라인 멀티플렉서 42 Multiplexer Boole 함수의 구현 함수의 최소항들이 MUX를 통해 생성됨 N개의 입력벽수와 n-1개의 선택 입력 F=xy+yz′+x′y′z 43 Multiplexer 3상태 게이트 논리1, 논리0, 높은 임피던스 세가지 상태 소유 높은 임피던스 상태는 개방회로처럼 동작 44 Multiplexer 3상태 게이트를 갖는 멀티플렉서 45