Digital design 4 1 Logic Circuit n Combinational
Digital design 4장. 조합 논리 1
Logic Circuit n Combinational Logic Circuit n n 출력 = f(현재입력) 현재의 입력에 의해서만 출력이 결정 N 개의 입력에 대하여 일정시간 후 m 개의 출력 생성 No feedback Combinational Logic Circuit … … N input variable M output variable 2
Logic Circuit n Sequential Logic Circuit n n n 출력 = f(현재입력, 현재상태) 현재의 입력에 뿐만이 아니라 현재의 상태도 출력에 영향 feedback M M Sequential Logic Circuit … … N input variable M output variable 3
Design Procedure n 문제기술(분석) n Input, Output Variable 의 개수 결정 n Input, Output Variable 의 이름 할당 n Truth table 작성 n Boolean Function의 minimization n Logic Diagram 작성 n Design Verification n 설게시 고려사항 n 최소갯수의 논리게이트 n 게이트당 최소입력수 n 최소의 전달지연시간 n 최속의 연결선 수 n 각 놀리게이트의 구동한계 n 4
Analysis of Combinational Circuit K-Map 을 이용 T 2 F 1 T 3 F’ 2 BC A 00 0 1 F 2 01 1 1 11 10 1 1 F 1 = A + B + C A B C F 2’ T 1 T 2 T 3 F 1 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 1 A BC 00 01 0 1 11 10 1 1 F 2 = AB+BC+CA 6
Analysis of Combinational Circuit Bool 식 유도 T 1 T 3 T 4 F T 2 T 1 = (CD)’ = C’ + D’ T 2 = (BC’)’ = B’ + C T 3 = (T 1 B’)’ = ((C’+D’)B’)’ = (B’C’+B’D’)’ = (B+C)(B+D) = B + CD T 4 = (AT 3)’ = (A(B+CD))’ F = (T 2 T 4)’ = (BC’)(A(B+CD))’ = BC’+A(B+CD) 7
Analysis of Combinational Circuit K-Map 을 이용 T 1 T 3 T 4 F T 2 CD AB 00 01 11 10 00 01 1 1 10 1 1 1 F = AB+BC’+ACD = A(B+CD)+BC’ A B C D T 1 T 2 T 3 T 4 F 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 8
Binary Adder-Subtractor n Binary Adder n n Half-Adder : 2비트를 더하는 기능 수행(x+y) Full-Adder : 3비트를 더하는 기능 수행(x+y+z) 2개의 Half-Adder 는 하나의 Full-Adder 가 된다 Binary Subtractor – Adder에 보수회로 추가 9
Half-Adder 두 2진 입력의 합 n 입력 : X, Y n 출력 : S(sum), C(carry) n x y S X y C x y 0 0 0 1 1 0 0 1 0 1 1 1 S = xy’+x’y S HA x y 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 1 1 0 0 1 0 1 1 1 00 0 C x yz 1 01 11 10 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 0 1 C = xy + yz + xz 1 11 10 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 S=x+y + z C = xy+z(x + y) 14
Half-Subtractor 두 2진 입력의 차 n 입력 : X, Y n 출력 : D(Difference), B(Borrow) n x y D B 0 0 0 1 1 1 1 0 1 0 X D HS y 1 1 1 S = xy’+x’y =x+y x y 0 0 B 1 1 1 C = x’y 15
Full-Subtractor X y z x D FS y z D B 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 00 0 B x yz 1 01 11 10 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 C = x’y + yz + x’z x yz 0 1 00 01 11 10 1 1 C = x’y + xyz + x’y’z = x’y+z(xy+x’y’) = x’y+z(x + y)’ 16
Full-Subtractor D = x+ y+ z B = x’y+z(x + y)’ x y z HS HS D B 17
4 bit binary Parallel Adder (Binary Ripple Carry Adder) B 3 B 2 B 1 B 0 + A 3 A 2 A 1 A 0 1011 + 1001 S 3 S 2 S 1 S 0 C 4 C 3 C 2 C 1 C 0 10100 B 3 A 3 FA C 4 S 3 B 2 A 2 C 3 FA S 2 B 1 A 1 C 2 FA S 1 B 0 A 0 C 1 FA C 0 S 0 18
4 bit binary Adder-Subtractor If M = 0, then A + B n If M = 1, then A + (B에 대한 1의보수)+1 = A - B n B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 M FA C 4 S 3 C 3 FA S 2 C 2 FA S 1 C 1 FA C 0 S 0 19
BCD Adder n (0+0) ≤ BCD 합 ≤ (9+9+1) 이진수 합 BCD 합 십 진 K Z 8 Z 4 Z 2 Z 1 C S 8 S 4 S 2 S 1 0 0 0 0 0 1 0 0 0 2 0 0 0 1 0 0 0 3 0 0 0 1 1 0 4 0 0 1 0 0 5 0 0 1 0 6 0 0 1 7 0 0 8 0 9 0 이진수 합 BCD 합 십 진 K Z 8 Z 4 Z 2 Z 1 C S 8 S 4 S 2 S 1 0 10 0 1 0 1 0 0 0 1 11 0 1 1 1 0 0 0 1 0 12 0 1 1 0 0 0 1 1 13 0 1 1 0 0 14 0 1 1 1 0 1 0 1 15 0 1 1 1 0 0 0 1 1 0 16 1 0 0 1 0 1 1 1 0 0 1 17 1 0 0 0 1 1 1 1 0 0 0 18 1 0 0 1 1 0 0 0 1 0 1 0 0 1 19 1 0 0 1 • 0 ↔ 9 : 이진수 합 = BCD 합 • 10 ↔ 19 : 이진수 합 + 0110 = 합 24
BCD Adder 2개의 BCD수를 합한 BCD 출력 n 출력이 1010에서 1111 사이의 값이면 캐리 발 생 n C=K+Z 8 Z 4+Z 8 Z 2 n 1100 1010 1101 1011 1110 1111 25
BCD Adder 486 + 734 1220 0100 1 1 103 digit 0111 BCD Adder 0100 1 0110 0111 BCD Adder 1 0100 BCD Adder 0010 0000 2 2 0 102 digit 101 digit 100 digit 0 26
4 -6 Binary multiplier n 2 bit x 2 bit = 4 bit(max) 1 x 1 1 10 11 0 0 27
Binary Multiplier Design(4 bit x 3 bit) n (K비트) x (J비트) (K x J)개의 AND 게이트, (J-1)개의 K비트 덧셈기 필요 n B₂ A₂ A 0 B₃ A 0 B₂ A 2 B₃ S 6 S 5 B₃ B₁ A₁ A 0 B₁ A 1 B₃ A 1 B₂ A 1 B₁ A 1 B 0 A 0 B 0 A 2 B₂ A 2 B₁ A 2 B 0 S 4 S 3 S 2 S 1 S 0 28
Binary Multiplier Design(4 bit x 3 bit) 29
Comparator n 이진수 A=A 3 A 2 A 1 A 0 와 B=B 3 B 2 B 1 B 0 의 크기비교 A₃ A₂ A₁ A 0 F(A>B) = A 3 B 3’+X 3 A 2 B 2’+X 3 X 2 A 1 B 1’+X 3 X 2 X 1 A 0 B 0’ Comparator B₃ B₂ B₁ B 0 n F(A>B) = A 3’B 3+X 3 A 2’B 2+X 3 X 2 A 1’B 1+X 3 X 2 X 1 A 0’B 0 F(A>B) = X 3 X 2 X 1 X 0’ A >B 인경우 A : 1 XXX B : 0 XXX A 3 B 3’ △ 1 XX △ 0 XX △◇1 X △◇0 X X 3 A 2 B 2’ X 3 X 2 A 1 B 1’ △◇☆1 △◇☆0 X 3 X 2 X 1 A 0 B 0’ 30
Comparator의 회로도 31
Decoder n n개의 입력변수에 대해 2ⁿ개까지의 최소항 생성 n 예)3 -to-8 라인 디코더 입 력 x y z 3 x 8 decoder D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 = = = = x’y’z’ x’y’z’ 출 력 x y z D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 1 32
Decoder 33
Encoder(BCD to Decimal) 입 력 출 wx 력 yz 00 01 11 10 00 D 1 D 3 D 2 w x y z D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 D 9 0 0 1 0 0 0 0 01 D 4 D 5 D 7 D 6 0 0 0 1 0 0 0 0 11 X X 0 0 1 0 0 0 0 10 D 8 D 9 X X 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 1 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 D 9 = = = = = w’x’y’z’ w’x’y’z x’yz’ x’yz xy’z’ xy’z xyz’ xyz wz’ wz 36
Multiplexer n 4 -to-1 라인 멀티플렉서 S 1 S 0 Y 0 0 I 0 0 1 I 1 1 0 I 2 1 1 I 3 41
Multiplexer n 4중 2 -to-1 라인 멀티플렉서 42
- Slides: 45