조합 논리 회로 설계 예

Download Report

Transcript 조합 논리 회로 설계 예

제 2 장 디지털 논리회로
 논리 게이트(gate)
구성
 부울 대수(Boolean Algebra)
 조합 논리 회로
 순차 논리 회로
Computer System Architecture
논리 게이트

논리회로는 서로 다른 두 가지 값 (0,1)을 다루는 회로


동작 특성 : 부울 대수로 표현
디지털 컴퓨터에서 이진 정보 : ADC(Analog to Digital Conversion)
0 : 0.5V

Physical Quantity
예 : V, A, F, 거리
Computer System Architecture
Signal
Binary Information
Discrete Value
1 : 3V~5V
논리 게이트

게이트

이진 정보를 처리하는 가장 기초적인 논리회로 소자

각 게이트의 동작 : 부울 대수/함수

게이트의 입출력 관계 : 진리표(Truth table)
 George Boole
 출생 : 영국의 링컨에서 출생
 사고법칙에 대한 고찰(Investigation of the Laws of
Thought)이라는 제목으로 책을 만들었는데, 여기에서
형식논리와 오늘날 부울 대수라 알려진 집합의 대수인
새로운 대수학을 확립.
 부울 대수는 전기 스위치 회로이론 등과 같은 수많은
분야에 응용되고 있다.
1859년에 부울은 <미분방정식론, Treatise on
Differential Equations>, 1860년에는 <차분법론, the
Calculus of finite differenes>을 발표
Computer System Architecture
논리 게이트
 표 2-1 Digital Logic Gates
AND, OR, INVERTER, BUFFER, NAND, NOR, XOR, XNOR

A
F
B
A
F = A·B
A
F
F = A’
F =A+B
OR gate
AND gate
NOT gate
A
A
F
B
B
F = (A·B)’
NAND gate
F
F = (A + B)’
NOR gate
A
A
F
B
F =A B
XOR gate
Computer System Architecture
F
B
B
F
F =A B
XNOR gate
A
F
F=A
Buffer gate
논리 게이트
 [문제 2-1] 두 개의 입력(two input)을 가지는 게이트에서 입
력 신호 A, B의 조합에 따른 출력 타이밍도(timing diagram)
를 그려라.
0
1
1
0
0
0
1
1
0
A
B
1
AND : AB
0
1
OR : A+B
0
1
NOT : A'
0
Computer System Architecture
0
유니버설 게이트

NAND와 NOR 게이트 : 표준 논리 게이트

모든 부울 함수 : NAND와 NOR 게이트로서 쉽게 구현
NOT 게이트

A
A
AND 게이트

A
B
A
A
OR 게이트
A
AB
B
AB
Computer System Architecture
A+B
A
A
B
Fig. 2-2
A+B
B
W IRED -L OGIC
 NAND와 NOR 게이트 : 둘 이상의 게이트 출력을 선(Wire)으로 연결
하면 AND/OR 논리를 수행
Wired-logic
 개방 콜렉터형 NAND 게이트
vcc
Fig. 2-3
R
A
B
Fig. 2-4
F=(AB)'(CD)'=(AB+CD)'
C
 ECL NOR 게이트
D
A
B
C
D
Computer System Architecture
F=(A+B)'+(C+D)'
=[(A+B)(C+D)]'
부울 대수( BOOLEAN A LGEBRA )

부울대수(Boolean Algebra)
이진 변수(binary variable) + 논리 동작(logic operation) 을 취급하는 대수

(A, B, x, y 등)
(AND, OR, NOT…)
 부울대수의 기본 연산
 AND, OR, NOT 연산
 부울대수의 사용 목적 : 디지털 회로의 설계와 해석을 용이
Computer System Architecture
부울 대수( BOOLEAN A LGEBRA )

부울대수를 이용하면

① 변수 사이의 진리표 관계를 대수형식으로 표시하기가 용이

② 논리도의 입출력 관계를 대수형식으로 표시하기가 용이

③ 동일 기능을 가진 더 간단한 회로(논리식의 간소화)를 설계하는 것이 용이
 Truth Table : Fig. 2-5
 Logic Diagram : Fig. 2-5
Relationship between
a function and variable
2n Combination
Variable n = 3
Computer System Architecture
A B C
F
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
대수적 표현
논리도(Logic
Diagram)(gates로 표현)
A
F
B
C
부울 대수( BOOLEAN A LGEBRA )
p60~p65 참조
 부울대수 법칙 : Table. 2-5 참조
- Operation with 0 and 1: x + 0 = x , x + 1 = 1 , x • 1 = x , x • 0 = 0
- Idempotent Law: x + x =x , x • x = x
- Complementary Law: x + x' = 1 , x • x' = 0
- Commutative Law: x + y = y + x , x • y = y • x
- Associative Law: x + (y + z) = (x + y) + z , x • ( y • z) = (x • y) • z
- Distributive Law: x • ( y+ x) = (x • y) + (x • z) , x + (y • z) = (x + y) • (x + z)
- DeMorgan's Law: (x + y)' = x' • y’ , (x • y )’ = x’ + y’
n개의 변수로 확장한 일반식
(x1 + x2 + x3 + … xn)' = x1' • x2' • x3' • … xn’
(x1 • x2 • x3 • … xn) ' = x1' + x2' + x3' + … xn’
Computer System Architecture
드모르강 정리
 드모르강의 정리
 DeMorgan's Law: (x + y)' = x' • y’ , (x • y )’ = x’ + y’
 연산자와 변수로 구성된 임의의 함수가 있을 때 이 함수의 전체 부정은
연산자 +는 ·로, ·는 +로 바꾸고(+ ↔ ·) 함수에 포함된 변수는 긍정은
부정으로 부정은 긍정으로(A' ↔ A)으로 바꾸어 각각의 변수에 대한
부정을 취하는 것과 결과가 같음을 나타내는 법칙으로 NAND와 NOR를
취급하는데 유용
 graphic symbols for NOR gate
x
y
z
(x+y+z)’
(a) OR-invert
Computer System Architecture
=
x
y
z
x’ y’z’
(b) invert-AND
 graphic symbols for NAND gate
x
y
z
(xyz)’
(a) AND-invert
=
x
y
z
(x’+y’+z’)
(b) invert-OR
 [표 2-5]의 부울대수 기본관계식의 적용 예
A
Fig. 2-6
B
F
C
F=AB'C+AB'C'+A'C
Computer System Architecture
 [표 2-5]의 부울대수 기본관계식의 적용 예
F=AB'C+AB'C'+A'C
=AB'(C+C')+A'C
=AB'+A'C
[표 2-5]의 1-5와 2-2에 의해
Fig. 2-7
A
B
F
C
F=AB'+A'C
간소화된 함수식에 의한 회로로서 다섯 개의 게이트들만을
이용하여 [그림 2-6]과 동일한 결과
Computer System Architecture
수식의 보수
 수식의 보수
어떤
함수 F의 보수는 F'이며, 드모르강 정리를 이용하여 얻을 수
있다. 드모르강 정리는 부울 함수식에서 모든 OR연산은 AND로, 모든
AND 연산은 OR로 바꾸어 주고, 함수 내의 각 변수를 보수화하면
된다.
예를
F
들어 다음과 같은 부울 함수식의 보수를 만들어 보자.
= AC + C'D + B'D'의 보수는
F'= (A'+C')(C+D')(B+D) 이 된다.
Computer System Architecture
부울 함수

부울함수(Boolean Function) :
variable + operation(AND, OR, NOT) + 괄호 + 등호

예
F1 = ABC'
F2 = A + B'C
F3 = AB'C+AB'C'+A'C
F4 = AB' + A'C

위 부울함수의 입출력 관계  진리표
n개의 2진 변수  2n개의 조합

F1은 A=1, B=1, C=0일 때만 출력 F1 = 1

마찬가지로 함수 F2, F3, F4도 같은 방법 적용
Computer System Architecture
부울 함수
 부울 함수 F1 , F2 , F3 , F4 에 대한 진리표
A
B
C
F1
F2
F3
F4
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
Tab. 2-6
F1 = ABC', F2=A+B'C, F3 = AB'C+AB'C'+A'C, F4 = AB'+A'C에 대한 진리표
진리표에서 F3과 F4는 동일한 함수값,
같은 부울 함수에 대해 서로 다른 대수적 표현이 가능하다는 것을 의미,
이 두 함수는 같다고 말한다. 함수 F4는 함수 F3을 간소화 한 것이다.
Computer System Architecture
부울 함수
 부울 함수
논리도(Logic Diagram)
A
A
B
F1
F2
C
C
B
(a) F1 = ABC'
(b) F2=A+B'C
A
A
B
B
F3
C
F4
C
(c) F3 = AB'C+AB'C'+A'C

Computer System Architecture
(d) F4 = AB'+A'C
함수 F4가 함수 F3 보다 더 경제적
부울 함수의 표준형( STANDARD
FORM )
 2 variables example
 최대항(Minterm)과 최소항(Maxterm)

최소항(Minterm) : n variables product ( x=1, x’=0)

최대항(Maxterm) : n variables sum (x=0, x’=1)
x
0
y
0
Minterm
x'y' m0
Maxterm
x + y M0
0
1
x'y
m1
x + y'
M1
1
0
x y'
m2
x'+ y
M2
1
1
xy
m3
x'+ y'
M3
m0 + m1 + m2 + m3
Computer System Architecture
M0  M1  M2  M3
A
B
AB
AB
AB
AB
최소항의 합( SUM OF PRODUCT )
 부울 함수는 주어진 진리표를 보고 대수적으로 표시
최소항의 합
최대항의 곱
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
F1
0
1
0
0
1
1
1
0
F2
1
0
1
1
0
0
0
1
 최소항의 합  진리표에서 출력값이 1이 되는 최소항을 구하고 이 최소
항에 대해 모두 OR연산을 취함
 F1 = x'y'z + xy'z' + xy'z + xyz' = m1 + m4 + m5 + m6 = ∑(1, 4, 5, 6)
= M0 · M2 · M3 · M7 = ∏(0, 2, 3, 7) (Complement = M0 
Computer System Architecture
M2  M3 M7 )
최대항의 곱( PRODUCT OF SUM)
 부울 함수는 주어진 진리표를 보고 대수적으로 표시
최소항의 합
최대항의 곱
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
F1
0
1
0
0
1
1
1
0
F2
1
0
1
1
0
0
0
1

최대항의 곱  진리표에서 출력값이 0이 되는 최대항을 구하고 이들 최대항들에
대해 모두 AND연산을 취함

F2 = (x+y+z')·(x'+y+z)·(x'+y+z')·(x'+y'+z) = M1 · M4 · M5 · M6
= ∏(1,4, 5, 6)
Computer System Architecture
부울함수의 간소화
 식에 포함된 문자와 항들의 개수를 줄여 간단한 형태로 유도하는 절차
논리 게이트를 이용한 설계가 간단하여 구현시 가격, 유지보수에 유리
(1) 정리와 가설을 이용한 간소화 방법
Tab. 2-5
A
B
F = AB' + B
1-7 적용
= B + A B'
1-12 적용
= (B + A)(B + B')
= (B + A)·1
1-5 적용
=B+A
2-3 적용
=A+B
1-7 적용
F = AB' + B
A
B
Computer System Architecture
F=A+B
부울함수의 간소화
(2) Map을 이용한 간소화 방법
 3 variables
2 variables

B
A
0
1
2
3
 4 variables
C
B
A
0
1
3
2
4
5
7
6
A
C
 5 variables
0
1
3
2
4
5
7
6
12 13 15 14
8
C
B
9
11 10
D
A
0
1
3
2
6
7
5
4
8
9
11 10 14 15 13 12
B
24 25 27 26 30 31 29 28
16 17 19 18 22 23 21 20
E
D
F
 논리적으로 인접한 항이 포함되도록 2, 4, 8, 16개 그룹으로 묶으면
그만큼 지워지는 변수가 많아지므로 가능한 한 많은 수의 항을
묶어야 하며, 간소화된 항들은 최소항의 합형이나 최대항의 곱형으로 표현
Computer System Architecture
부울함수의 간소화
 [예제] F= x + y’z
(2) F ( x, y , z )  (1,4,5,6,7)
(1) 진리표
x
0
y
0
z
0
F
0
Minterm
0
0
1
1
m1
0
1
0
0
m2
0
1
1
0
m3
1
0
0
1
m4
1
0
1
1
m5
1
1
0
1
m6
1
1
1
1
m7
Computer System Architecture
(3) 인접 영역을 묶는다
y
m0
0
x
1
4
1
1
1
5
3
1
7
z
F= x + y’z
2
1
6
부울함수의 간소화

인접 영역

인접 영역의 수 = 2n (1, 2, 4, 8, ….)

The squares at the extreme ends of the
same horizontal row are to be considered
adjacent

The same applies to the top and bottom
squares of a column
0
1
3
2
4
5
7
6
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
3
2
0


The four corner squares of a map must be
considered to be adjacent
Groups of combined adjacent squares may
share one or more squares with one or
more group
Computer System Architecture
4
1
5
7
6
0
1
3
2
4
5
7
6
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
부울함수의 간소화
 [예제]F ( A, B, C )  (3,4,6,7)
B
A
F=AC’ + BC
 [예제] F ( A, B, C )  (0,2,4,5,6)

0
1
3
2
4
5
7
6
 F=C’ + AB’
A
0
1
3
2
4
5
7
6
 F=C’ + AB’
 Product-of-Sums Simplification
F ( A, B, C , D )  (0,1,2,5,8,9,10)
A
A
Product of Sum
Computer System Architecture
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
0
1
3
2
4
5
7
6
12
13
15
14
8
9
11
10
D
B
C
D
Sum of product
F’=AB + CD + BD’(square marked 0’s)
(F’)’=(A’ + B’)(C’ + D’)(B’ + D)
C
C
 [예제] F ( A, B, C , D )  (0,1,2,6,8,9,10)
F=B’D’ + B’C’ + A’C’D
B
C
B

MAND/NOR 게이트로의 구
현
NAND Implementation

Sum of Product : F=B’D’ + B’C’ + A’C’D
B’
D’
C’
A’
D

A’
B’
C’
D’NOR
Implementation
D’
Product of Sum : F=(A’ + B’)(C’ + D’)(B’ + D)
B
A
0
1
1 X
4
5
X
C
Computer System Architecture
3
X
7
1
1
2
6
조합 논리 회로
(C OMBINATIONAL C IRCUIT)
 조합 논리 회로(Combinational Circuits)
Fig. 2-12 조합회로
블록도
i0
Combinational
i1
...

입력과 출력을 가진 논리 게이트(logic gates)의 집합으로 출력은
현재의 입력값에 의해 결정
in
Circuits
(Logic Gates)
...

f0
f1
fm
Experience
 해석(Analysis)

Logic circuits diagram
 설계(Design)(Analysis의 반대)
Computer System Architecture
Boolean function or Truth table
조합 논리 회로
(C OMBINATIONAL C IRCUIT)
in
Combinational
Circuits
(Logic Gates)
...
i0
i1
...
 조합 논리 회로(Combinational Circuits)
f0
f1
fm
【문제2.6】위의 그림과 비교하면서 다음 문제를 생각해 봅시다.
그림 2-13에서 몇 개의 입력 조합이 나타나는가?
또 몇 개의 출력이 나오는가?
A
B
C
F1
D
E
F2
Computer System Architecture
Fig. 2-13
조합 논리 회로 해석 예
 조합 회로의 해석은 주어진 논리 회로도로부터 부울 함수나
진리표 를 구하고 논리 회로의 동작을 해석
 해석 과정
(1)논리 회로도에서 해석을 위해 필요한 입·출력 변수명을
결정한다.
(2) n개의 입력 변수에 대한 2n개의 입력조합과 출력
변수에 대한 진리표를 작성하거나 각 게이트의 출력
부울 함수를 구한다.
(3) 최종 출력 부울 함수를 구한 후 간소화한다.
(4) 출력 부울 함수와 진리표를 통해 논리 회로의 동작을
해석한다.
Computer System Architecture
조합 논리 회로 해석 예
 그림 2-14와 같은 조합 회로를 해석
 3개의 입력변수와 1개의 출력변수
A
B
T1
T2
C
Fig. 2-14
F
T3
(1) 입력변수 : A, B, C 출력변수 : F
해석을 위한 임시변수 : T1, T2, T3을 결정
(2) 입력변수에 대한 진리표를 작성 혹은 각 게이트의 출력을 구한다.
T1 = AB', T2 = AB'C, T3 = A'B
간소화
(3) 최종 출력 부울 함수를 구한다.
F = T1 + T2 + T3 = AB' + AB'C + A'B
F = AB' + A'B
Computer System Architecture
조합 논리 회로 설계 예
C0
 가산기( Adder)
전가산기(Full Adder : FA)
A
A
반가산기(Half Adder : HA)
┼
B
C
┼
B
C1
S
 반가산기
S
 전가산기
A
B
C0
0
0
0
0
0
1
A
B : 2 입력(A,
S
CB)과 2 출력(합 : S, 자리올림
 반가산기
:
C)
0
1
0
0
0
0
0
0
1
1
전가산기
0
1: 3 입력
1 (Carry
0 considered)(A, B, 1C0)과0
0
1
0
1
0
1
0
1
2 출력 (합 : S, 자리올림 : C1)
1
1
0
1
1
0
1
1
1
1

1비트의 두 2진수를 더하는 조합 논리 회로

진리표
Computer System Architecture
하위 비트 캐리
S
0
1
1
0
1
0
0
1
C1
0
0
0
1
0
1
1
1
조합 논리 회로 설계 예
 설계 예 : 전가산기(Full Adder)를 설계하시오.

1. 문제 분석

2. 입출력 변수의 개수를 결정/ 변수를 할당
 4. 맵을 이용한 간소화
3 입력(A, B, C0), 2 출력(S: sum, C1: carry)

A
0
3.
0
0
0
1
1
1
1
B
C0
0
0
진리표
0
1
1
0
1
1
0
0
0
1
1
0
1
1
S
C1
0
0
작성
1
0
1
0
0
1
1
0
0
1
0
1
1
1
A
BC0
00
01
0
11
10
A
1
1
1
BC0
00
0
1
1
C1 = AB’C0 + A’BC0 + AB
=C0(AB’ + A’B) + AB
= C0 (A B) + AB
 5. 논리 회로도
1
01
11
1
1
10
1
1
S=AB’C0’ + A’B’C0 + ABC0 + A’BC0’
= C0’(AB’ + A’B) + C0(A’B’ + AB)
= C0’(A B) + C0(A B)’
= a’b + ab’ (let a= C0, b=AB)
= A  B  C0
A
B
S
A
B
C0
C1
Computer System Architecture
C0
S
FA
C1
(AB)’=(AB’+A’B)’
=(A’+B)(A+B’)
=A’A+A’B’+AB+BB’
=A’B’+AB
조합 논리 회로 설계 예
상위 비트 빌림
 감산기( Subtractor)
반감산기(Half Subtractor : HS)
X
X
┼
Y
B0
┼
Y
전감가산기(Full Subtractor : FS)
B
 반감산기



B1
D
D
 전감산기
X
Y
B0
0
0
0
0
0
1
X
Y : 2 입력(X,
D
BY)과 2 출력(차 : D, 자리빌림
반감산기
:
B)
0
1
0
0
0
0
0
0
1
1
전감산기
Y,1 B0)과 2 출력 (차 : D,
자리빌림
0
1: 3 입력(X,
1
1
0
0 : B1)
1
0
1
0
1
0
1
진리표
1
1
0
1
1
0
0
1
1
1
1비트의 두 2진수를 감산하는 조합 논리 회로
Computer System Architecture
D
0
1
1
0
1
0
0
1
B1
0
1
1
1
0
0
0
1
조합 논리 회로 설계 예
 디코더(Decoder)
 n비트의 2진 입력을 받아 2n 개의 출력 중 하나를 활성화
 활용 : 메모리 칩 선택 신호, 명령어 해독과 제어 장치 등에 사용
A

n×2n 디코더 : n개의 입력과 2n개의 출력0

0
1
1
2 × 4 디코더를 설계

1. 입출력 변수의 개수를 결정/변수를 할당
A
2 입력 (A, B), 4 출력(D
0, D 1, D 2, D 3)

D1
0
1
0
0
D2
0
0
1
0
D0
D1
4. 논리회로 작성
B
2×4 디코더
D2
D3
Computer System Architecture
D0
1
0
0
0
2. 진리표를 작성
Fig.3.2-21
맵을 이용한 간소화

B
0
1
0
1
D3
0
0
0
1
조합 논리 회로 설계 예
 디코더(Decoder)
A
 회로동작 제어를 위해 인에이블(enable)
입력 사용
 예 : 그림 [2-22]
D0
B
C
D1
 enable input =Fig.
1, 2-22
정상 동작
D2
 enable input = 0, 모든 출력 0
D3
인에이블 입력을 가지는 3×8 디코더
D4
Input
3X8
디코더
D5
Output
D6
Enable
블록도
D7
Enable
Computer System Architecture
조합 논리 회로 설계 예
 디코더(Decoder)를 이용한 조합 논리 회로 설계
 n개의 입력변수들에 대한 2n개의 최송항 표현
 이를 이용하여 임의의 조합 논리 회로 설계시 디코더를 사용
 즉, 모든 부울함수는 최소항의 합형으로 표현 가능
디코더  최소항 표현, 합  OR게이트 이용
 n개의
입력과) m개의
S(A,B,C
= ∑(1,출력을
2, 4, 7)가지는 임의의 조합 회로를 설계하려
0
면
C1(A,B,C0) = ∑(3, 5, 6, 7)
n × 2n 디코더와 m개의 OR 게이트로 구현 가능
0
1
2
3
4
5
6
7
 예 A: 전가산기를
디코더로 설계(입력변수 3개, 출력변수 2개)
22
Computer System Architecture
B
21
C0
20
3X8
디코더
S
C1
Fig. 2-23
조합 논리 회로 설계 예
 인코더(Encoder)
 디코더의 반대 기능을 수행, OR 게이트로 구성
 2n개의 입력과 n개의 출력
 8진× 2진 인코더 설계


Computer System Architecture
1. 입출력 변수의 개수를 결정/변수를 할당
D0 D1 D2 D3 D4 D5 D6 D7
18 입력
0 (D
0 0, D01, D20, D3,0 D4,0D5, D
0 6,
0
1
0
0
0
0
0
0
02. 진리표를
0
1
0작성
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
A B C
D
0 7),03 출력(A,B,C)
0
0 0
1
0 1
0
0 1
1
1 0
0
1 0
1
1 1
0
1 1
1
조합 논리 회로 설계 예
D0
A = D4+D5+D6+D7
D1
Fig. 2-24
D2
D3
B = D2+D3+D6+D7
D4
D5
C = D1+D3+D5+D7
D6
D7
8진-2진 인코더
 입력 D0은 어떤 OR 게이트에도 연결되지 않았는데 이 경우에
2진 출력은 모두 0이 되어야 하기 때문이다.
회로에서 인코더의 입력은 단지 하나의 입력만이 1이 된다고 가정.
왜냐하면 이 회로에서 입력은 8개이므로 28=256가지의 입력 조합이
나타난다. 그러나 이들 중 단지 8개만이 의미 있는 입력이므로
다른 입력들은 전부 무관조건이 된다.
Computer System Architecture
조합 논리 회로 설계 예
 멀티플렉서(Multiplexer)
 여러 개의 입력선 중의 한 선으로부터 정보를 받아들여 단일의 출력
선
으로 정보를 출력하는 조합 논리 회로
 특정 입력선의 선택은 선택선(Select line)에 의해 제어
Fig. 2-25(a)
 2n개의 입력과 1개의 출력, n개의
선택선
 3. 논리회로
작성
S0
S1
Y
 4× 1 멀티플렉서
설계


I0
0
0
I0
I1
1. 입출력
변수의
개수를
결정/변수를
할당
0
1
I1
1 (I0, I01, I2, I3),
I2 1 출력(Y), 2 선택선(S
4 입력
I2
0, S 1)
1
1
I3
2. 함수표(진리표)를 작성
I3
S1
Computer System Architecture
S0
Y
조합 논리 회로 설계 예
 4개의 2×1 멀티플렉서(Multiplexer)
 Enable input = 0 , 정상 동작
 선택선 S와 인에이블 입력선 E는 공통으로 인가
B0
2X1
MUX
1
E
S
Y0
A1
0
2X1
MUX
1
E
S
Y1
A0
B1
A2
B2
0
2X1
MUX
1
E
S
0
Y2
Fig. 2-25(a)
E
S
Yi
1
X
0
0
0
0
1
Ai
Bi
(b) 함수표
A3
B3
2X1
MUX
1
E
S
0
E
S
(a) 블록도
Computer System Architecture
Y3
조합 논리 회로 설계 예
 디멀티플렉서(DeMultiplexer)
 멀티플렉서의 역기능을 수행
 하나의 입력선과 2n개의 출력선, n개의 선택선으로 구성 Fig. 2-27
 1×4 디멀티플렉서
S0
0
0
1
1
Y0
Y1
Y2
I
S1
0
1
0
1
Y
Y0
Y1
Y2
Y3
(b) 함수표
0
Y3
입력
I
1X4
DEMUX
S1
S1
S0
S0
선택
(a) 회로도
Computer System Architecture
(c) 블록도
1
출력
2
3
조합 논리 회로 설계 예
 코드 변환 회로(2진/그레이 코드 변환기)
 그레이 코드 : 서로 이웃한 수끼리 1비트만 다르게 구성된 코드

3비트의 2진수를 그레이 코드로 변환하는 회로 설계

1. 입출력 변수의 개수를 결정/변수를 할당
 4. 논리 회로 작성
a
b b, c),
c 3 출력(x,
x
y
3 입력
(a,
y, z)

Fig. 2-28(a)
2.
0
0
0
0
진리표를
0
1
0
1
1
0
1
0
1
1
1
1
0
1
작성
0
1
0
1
0
1
0
0
0
0
1
1
1
1
a
z
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
b
x
c (2진수)
y
z
(그레이 코드)
 3. 맵을 이용한 간소화 : 출력 부울 함수 유도
bc
a
00
01
11
10
0
1
bc
a
00
01
0
1
1
1
x=a
Computer System Architecture
1
1
1
11
10
1
1
1
y = a'b + ab'
bc
a
00
01
11
10
0
1
1
1
1
1
z = b'c + bc'
조합 논리 회로 해석 예

2진수/그레이 코드 변환 과정
① 2진수의 최상위 비트는 그레이 코드의 최상위 비트가
된다.
② 최상위 비트부터 한 비트씩 오른쪽으로 진행하면서
이웃하는 2개의 2진수에 대한 XOR 연산을 수행하면
그 결과가 그레이 코드가 된다.
③ 마지막 코드가 얻어질 때까지 ②번을 반복한다.
① 그레이 코드의 최상위 비트는 2진수의 최상위 비트가
된다.
② 최상위 비트와 두 번째 비트를 XOR 연산하면 결과가
된다.
 그레이 2진수가
코드/2진수
변환 과정
③ 두 번째 2진수 비트와 세 번째 그레이 코드의 비트를
XOR 연산하면 결과가 2진수가 된다.
④ 마지막 코드가 얻어질 때까지 ③번을 반복한다.
Computer System Architecture
조합 논리 회로 설계 예
 ROM을 이용한 조합 회로 설계

2.3.4에서 디코더를 이용한 조합회로 설계

ROM = 디코더 + OR

디코더의 출력들과 OR게이트의 입력들을 서로 연결  ROM을 프로그
래밍
A
Fig. 2-34
A
n개의
입력선과 m개의 출력선으로 구성

2n개의
An

1
2
A3
2nx m
ROM
MAR
MBR
워드(word)와 워드당 m 비트로 구성
(DECODER)
ROM 블록도
 n개의 입력과 m개의 출력을 가지는 조합회로를 ROM을 이용하여 구현
 2n x m ROM이 필요
예
A
0
0
1
1
Computer System Architecture
B
0
1
0
1
F1
0
1
1
1
F2
0
1
0
1
F1(A, B) = ∑(1, 2, 3)
F2(A, B) = ∑(1, 3)
조합 논리 회로 설계 예
 ROM을 이용한 조합 회로 설계

구현 : 2개의 입력과 2개의 출력을 가지는 ROM 필요

ROM의 크기 4 x 2
0
2X4 1
DECODER 2
3
A1
A2
A
0
0
1
1
B
0
1
0
1
F1
0
1
1
1
F2
0
1
0
1
F1(A, B) = ∑(1, 2, 3)
F2(A, B) = ∑(1, 3)
Computer System Architecture
Fig. 2-35
F1
F2
4 x 2 ROM으로 조합 회로 구현
순차 논리 회로(S EQUENTIAL
LOGIC
CIRCUIT
)
 순차 논리 회로
Combinational Circuit = Gate
Sequential Circuit = Gate + F/F

조합 논리 회로 + 메모리 요소(플립플롭)

출력 : 입력변수의 값과 현재상태[
입
력
조합회로
Q(t)]의 값에 의해 결정
출
력
Fig. 2-36
순차회로 블록도
메모리요소
[현재상태 : Q(t)]
Clock
동기식(synchronous)
비동기식(asynchronous)
Computer System Architecture
플립 플롭(F LIP
FLOP )
 기본 플립 플롭 회로


2개의 NAND 게이트 혹은 NOR 게이트로 구성
Fig. 2-38
SR 래치(latch)
1
0
S(set)
1
0
1
0
R(reset)
R(reset)
1
0
Computer System Architecture
S(set)
Q
Q'
Q
Q'
S
1
1
0
1
0
R
0
1
1
1
0
Q(t)
0
0
1
1
1
Q'(t)
1
1
(after S=1, R=0)
0
0
(after S=0, R=1)
1
(불능 상태)
S
1
0
0
0
1
R
0
0
1
0
1
Q(t)
1
1
0
0
0
Q'(t)
0
0
(after S=1, R=0)
1
1
(after S=0, R=1)
0
(불능 상태)
플립 플롭(F LIP
 SR(Set/Reset) 플립플롭
Fig. 2-39
R
Q
CP
(클럭 펄스)
Q'
S
논리도
SR
Q
00
01
11
10
X
1
0
Q
Q'
1
S
1
X
R
CP
기호
Computer System Architecture
Q( t +1) = S + R' Q
SR = 0
특성 방정식
FLOP )
1
Q
0
0
0
0
1
1
1
1
S
0
0
1
1
S
0
0
1
1
0
0
1
1
R
0
1
0
1
R
0
1
0
1
0
1
0
1
Q(t)
0
1
?
Q(t+1)
0
0
1
불능
1
0
1
불능
Q(t+1)
no change
clear to 0
set to 1
Indeterminate
특성표
플립 플롭(F LIP

FLOP )
D(Data) 플립플롭
D
Q'
Q
D
D
0
1
0
1
Q(t+1)
clear to 0
set to 1
0
Q
1
0
1
1
1
Q( t +1) = D
CP
Fig. 2-40
Fig. 2-41
“no change”플립플롭
condition이 없다 : Q(t+1)=D
 
JK(Jack/King)

Q'
Q
K
J
CP
Computer System Architecture
해결방법
1) Disable Clock
J :K
Q(t+1)
2)0 Feedback
output
input
0
Q(t)
no into
change
0 1
0
clear to 0
1 0
1
set to 1
1 1
Q(t)' Complement
JK
Q
00
0
1
01
11
10
1
1
1
1
Q( t +1) = JQ' + K' Q
플립 플롭(F LIP
FLOP )
 T(Toggle) 플립플롭
Fig. 2-42
T
Q
CP
Q'
T
0
1
Q(t+1)
Q(t) no change
Q'(t) Complement
논리도
T
Q
Q'
Q
특성표
0
0
1
1
1
1
T
Q(t +1) = TQ' + T' Q
CP
기호
Computer System Architecture
특성 방정식
주-종(MASTER -S LAVE ) 플립
플롭
 주-종 플립플롭
 CP = 0 : 주(master) 플립플롭 비활성화
 CP = 1 : 종(slave) 플립플롭 비활성화
S
Y
S
R
R
Q
S
Master
Slave
Y'
R
Q'
CP
CP
주-종 플립플롭
S
Y
Q
Computer System Architecture
Fig. 2-43
주-종 플립플롭에서의 시차 관계
플립 플롭의 트리거링
( TRIGGERING )
Positive clock transition
 에지 트리거 플립플롭(Edge-Triggered F/F)


상태 변화 : Clock Pulse

상승 에지(Rising Edge) : positive-edge transition

하강 에지(Falling Edge) : negative-edge transition
minimum time that D input must remain at constant value before the
transition.
홀드 시간(Hold time : 5ns)


th
셋-업 시간(Setup time : 20ns)


ts
minimum time that D input must not change after the positive
transition.
전파 지연(Propagation delay : max 50ns )

time between the clock input and the response in Q

일반 논리 gate에서는 2-20 ns이며 setup 및 hold time은 F/F에서만 정
의되며 일반 논리 gate에서는 정의되지 않음.
Computer System Architecture
플립 플롭의 트리거링
( TRIGGERING )
 Race 현상

조건 - Setup time > Propagation delay

증상 - 0 과 1을 반복하다가 Unstable한 상태가 된다

CP
해결책 - Edge triggered F/F 또는
Master/Slave F/F 사용
Fig. 2-46
R
 예제
S
상승 에지
하강 에지
Q(상승)
Q(하강)
(a) 클록 펄스의 에지
Q
Q'
Q
Q'
S
R
S
R
CP
(c) 상승 에지 플립플롭 블록도
Computer System Architecture
(b) 출력 파형(초기상태 = low)
CP
(d) 하강 에지 플립플롭 블록도
플립 플롭의 트리거링
( TRIGGERING )
 레벨 트리거 플립플롭(Level -Triggered F/F)

상태 변화 : Clock Pulse가 1인 상태를 유지하는 동안의 입력신호
변화가 출력에 반영
Fig. 2-45
 예제
CP
Q
Q'
S
R
R
S
CP
Q
(a) 출력 파형(초기상태 = low)
Computer System Architecture
(b) 블록도
플립 플롭의 여기표
 여기표(Excitation Table)


현재 상태와 다음 상태를 알 때 플립플롭의 입력 조건 정의한 표
현재 상태(Present
표현
SR F/F State) 와 다음 상태(Next
JK State)로
F/F
Q(t) Q(t+1)
S R
Q(t) Q(t+1) J K
0
0
0 X
0
0
0 X
0
1
1 0
0
1
1 X
1
0
0 1
1
0
X 1
1
1
X 0
1
1
X 1
1 : Set to 1
0 : Complement
Don’t Care
D F/F
Q(t) Q(t+1)
0
0
0
1
1
0
1
1
Computer System Architecture
D
0
1
0
1
T F/F
Q(t) Q(t+1)
0
0
0
1
1
0
1
1
1 : Clear to 0
0 : No change
T
0
1
1
0
순차 논리 회로의 해석
 순차 논리 회로의 해석
 논리도로 부터 상태표 혹은 상태도를 도출

Input
Clocked Combinational
synchronous
Circuit
sequential circuit
Fig. 2-47
Output
1
Flip-Flops
Clock
Clock
xx
1
DA
DA
A
A
A
A'
A'
A’
B
B
B
B'
B’
B'
C
DB
 플립플롭 입력식(
)
clock

Boolean expression for F/F input

입력식

Computer System Architecture
DA = Ax + B’x, DB = A’x
DB
C
Clock
y
y
순차 논리 회로의 해석

상태표(State Table)

Present state, input, next state, output 표현
Input Equ. = Next State
Present State
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
Input
x
0
1
0
1
0
1
0
1
Input Equ.
DA
0
1
0
0
0
1
0
1
DB
0
1
0
1
0
0
0
0
Next State
A
0
1
0
0
0
1
0
1
B
0
1
0
1
0
0
0
0
0/1
Output

상태도(State Diagram)
10
1/0
y
1
0
0
0
1
0
1
0
0/1
1/0
0/0
1/0
01
1/0
Computer System Architecture
0/1
00
11
순차 논리 회로의 설계
 순차 논리 회로 설계 과정
① 설계 사양으로부터 상태표와 상태도를 구한다.
② 사용할 플립플롭의 종류를 선택하고 플립플롭의 수를 결정한다.
③ 플립플롭의 입력과 출력 각각에 문자 기호를 붙인다.
④ 상태표를 확장하여 여기표와 출력표를 구한다.
⑤ 맵을 이용하여 간소화된 플립플롭의 입력함수와 조합 회로 부분의
출력함수를 구한다.
⑥ 논리도를 그린다.
Computer System Architecture
순차 논리 회로의 설계
 설계 예 : 이진 카운터 설계
 2비트 이진 카운터를 설계, JK 플립플롭 사용
JK F/F 상태 00,01,10,11,00,…를
 단 상태의 변화는 외부입력 x=1일 때 이진
Q(t) Q(t+1) J K
반복
0
0
0 X
x=0 0/00
0
1
1
x=0
 00
1. 상태도 작성
x=1
1
0
1
01
x=0
Computer System Architecture
x=1
JK특성표
Next State =
Output
10

Present State
x=1 1/01
1 X
X 1
X 0
x=1
11
x=0
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
2. 상태표/여기표 작성
Input
x
0
1
0
1
0
1
0
1
Next State
A
B
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
F/F Input(여기표)
JA
0
0
0
1
x
x
x
x
KA
x
x
x
x
0
0
0
1
JB
0
1
x
x
0
1
x
x
KB
x
x
0
1
x
x
0
1
순차 논리 회로의 설계


3. 맵을 이용한 간소화
Bx
A
00
01
0
1
Bx
A
0
10
X
X
X
X
00
01
11
10
X
X
X
X
1
11
10
0
1
X
X
1
1
X
X
JA = Bx
Q'
Q
Q'
Q
KA
JA
KB
JB
CP
KA = Bx
00
2비트 이진 카운터 논리도
JB = x
Fig. 2-52
Bx
00
01
11
0
X
X
1
1
X
X
1
A
B
x
01
A
A
1
1
Bx
11
4. 논리 회로 작성
Computer System Architecture
10
KB = x
카운터의 설계
 동기식 카운터, 비동기식 카운터(리플 카운터)
Fig. 2-53
 비동기식 예제
CP
Q1
Q2
Q3
Q4
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
(a) 타이밍 차트
Q4
Q3
Q
J
1
Q2
Q
J
1
Q1
Q
J
1
Q
J
1
CP
K
1
K
1
K
1
K
1
Clear
(b) 10진 카운터 회로
Computer System Architecture
카운터의 설계
 동기식 예제(3비트 이진 카운터)
 n비트의 2진 카운터는 n개의 플립플롭으로 구성되며 0에서 2n-1
까지 카운터
 1. 상태도 작성
 2. 상태도 작성
000
상태표
111
001
010
110
101
011
100
상태도
Computer System Architecture
현재상태
A
B
C
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
여기표
다음상태
플립플롭 입력
A* B* C* TA TB TC
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
(b) 상태도와 여기표
카운터의 설계
 동기식 예제(3비트 이진 카운터)
 3. 맵을 이용한 간소화
BC
A
00
01
11
10
BC
A
00
01
11
BC
10
A
00
01
11
10
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
TA = BC
TB = C
TC = 1
 4. 논리 회로 작성
A
Q'
Q
TA
B
Q'
Q
TB
Fig. 2-56
C
Q'
Q
TC
CP
(카운터 펄스)
1
Computer System Architecture
레지스터
 레지스터
 2진 정보를 저장하는 기억소자
 여러 개의 플립플롭으로 구성
Fig. 2-57

n비트 레지스터 : n개의 플립플롭으로 구성

A4
A3
기능 : 저장,
시프트(Shift),
회전 등 A2
A1
Q
Q
Q
Q
D
D
D
D
CP
I4
I3
4비트 레지스터
Computer System Architecture
I2
I1
시프트 레지스터
 시프트 레지스터
 오른쪽, 왼쪽으로 이진 정보를 시프트
n비트 시프트 레지스터 : n개의 플립플롭 + 제어 게이트

Parallel outputs
Fig. 2-58
Shift-right
REGISTER A
Serial output
Serial input
오른쪽 시프트 레지스터의 블록도
직렬
직렬
병렬
병렬
Computer System Architecture
입력
입력
입력
입력
- 직렬
- 병렬
- 직렬
- 병렬
출력
출력
출력
출력
집적 회로

집적 회로

크기가 작다.

동작 속도가 빠르다.

전력 소모가 적다.

수명이 길며, 고장률이 낮아 신뢰도가 높다.

외부 회로와 연결 회로가 간단하다.

따라서, 경제적이다.
하이브리드(hybrid)

박막형(thin film)
후막형(thick film)
디지털 IC
반도체 제조 기술에 따른 집적단극형(unipolor)
회로의 분류
모노리틱(monolithic)
양극형(bipolor)
MOSFET(P,N,C,H형)
포화형
RTL,DTL,TTL
불포화형
ECL
I2L
Computer System Architecture
집적 회로


회로의 집적도에 따른 분류

소규모 집적 회로(SSI : Small scale Integrated circuit)

중규모 집적 회로(MSI : Medium scale Integrated circuit)

대중규모 집적 회로(LSI : Large scale Integrated circuit)

초대규모 집적 회로(VLSI : Very Large scale Integrated circuit)
DIP 모형
Computer System Architecture
집적 회로

TTL IC
 마이크로프로세서
Computer System Architecture