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