Professional Documents
Culture Documents
Digital System Chap 7
Digital System Chap 7
Digital System Chap 7
순차회로 시스템의 설계
2009년 1학기
세종대학교 컴퓨터공학과
박 기호
순차회로 시스템
1) 플립플롭 설계 방법
2) 동기식 카운터 설계
3) 비동기 카운터 설계
4) 상태표와 상태도의 유도
예문 7,8,9
예문 7.
예문 8.
예문 9.
4
동기 순차시스템 설계 절차
단계 1: 문제에 대한 설명으로부터 메모리에 저장되어야 하는 것을
결정한다. 즉 시스템이 가질 수 있는 상태의 수를 결정한다.
Ex) 예문 7에서, 입력의 마지막 2값 저장 or 연속된 1의 개수 저장
표 7.1 상태할당 예
6
설계 진리표
표 7.2 설계진리표 (상태표를 약간 변형 시킨 것)
표 7.3 출력진리표
7
다음 상태 맵 과 출력 맵
맵 7.1 다음 상태 맵 출력 맵
q1* q2*
8
예제 7.1 표 7.1b의 상태할당
9
플립플롭 설계 기술
플립플롭 입력에 대한 진리표 구하기 위해 필요한 것
• 설계에 사용할 플립플롭에 대한 설계표
• 차기 상태를 구하기 위한 설계 진리표
이후 Map을 이용하는 방법, JK flip-flop에 적
용되는 quick method에 대하여 살펴봄
10
플립플롭 설계표
플립플롭 설계표는 플립플롭 상태도에서 쉽게 얻을
수 있다.
플립플롭의 상태표를 다르게 표현한 진리표는 각 행
에 입력, 현재 상태와 차기 상태가 나열되어 있다.
이 표로부터 한 상태에서(현재 상태, q) 원하는 상태
(차기 상태, q*)로 가기 위한 입력 값을 결정할 수 있
다.
표 7.4 플립플롭 설계표
11
D 플립플롭 설계표
상태도로부터 현재 상태에서 다음 상태로 가려할때
필요한 입력값을 결정한다.
12
설계 진리표
설계 진리표는 플립플롭 입력 맵을 구하기 쉽게 상
태표를 진리표 형식으로 변환한 것
즉, 차기상태와 출력을 현재 상태와 입력에 대한 함
수로 나타내는 것이다
표 7.2 설계진리표 (상태표를 약간 변형 시킨 것)
표 7.3 출력진리표
13
입력 맵과 입력 식
• 앞의 표 7.2로 부터 플립플롭 입력표를 만들어야 되는데
• D 플립플롭인 경우 D1 과 D2 가 q1* 과 q2* 와 동일하므로 추가로
이 들에 대한 열이 필요 없다.
• 입력식은 다음과 같이 된다.
입력 맵 (표 7.2 이용) D1 = xq2 + xq1
D2 = xq2' + xq1
Z = q1q2
14
JK 플립플롭 설계표
그림 7.4 JK 플립플롭 상태도 표 7.6 JK 플립플롭 설계표
0 0으로 가는 방법
15
JK 플립플롭으로 설계
표 7.7 플립플롭 입력표 표 7.6 JK 플립플롭 설계표
J1 xq2 K1 x
J2 x K 2 x q1
2 input AND gate 2개, 2 input OR gate 1개, x’을 위한 NOT
gate 1개 필요 현재까지 가장 작은 비용이 드는 해임.
17
T 플립플롭으로 설계(예제 7.3)
상태도와 플립플롭 설계표
18
T 입력 맵 및 식
T1 = x q1 + xq1q2
T2 = x q2 + xq2 + xq1q2
Z = q1q2
19
진리표 없이 상태표로부터 직접 맵을 구하는 방법
20
•J1 과 K1의 첫 번째 열을 얻기 위해 q1* 맵의 첫 번째 열을 사용한다
맵 7.3a J1 과 K1의 첫 번째 열 표 7.6 JK 플립플롭 설계표
21
• q2의 J 와 K를 찾기 위해 q2*의 맵과 q2열을 사용한다
맵 7.3c J2 와 K2의 계산
22
Quick method
-JK 플립플롭에 대한 빠른 방법
-맵의 반이 무정의(적색으로 표시)이다.
-맵의 모든 1들은 관련된 변수가 없어지도록 무정의가 있다.
23
Quick method를 이용한 JK 계산
• JK 플립플롭의 함수 식에서
q* = Jq′ + K′q
q가 0 일때
q* = J ㆍ 1 + K′ㆍ 0 = J
q = 1 일때
q* = J ㆍ 0 + K′ㆍ 1 = K′
24
맵의 분리(변수가 3 -> 2로 줄어듬)
맵 7.5a 빠른 방법을 사용한 J1 과 K1 의 계산
• J1 와 K1 의 계산
J1 = xq2
K′1= x or K1 = x′
J2 = x
K2 = x′ + q1′
25
예제 7.4 설계
• 상태표와 상태 할당
26
출력과 D 플립플롭 입력
Z = x' + q1q2
D1 = x' + q1' + q2'
D2 = x'q2' + xq2
27
JK 플립플롭의 진리표 및 식
•플립플롭의 입력 방정식
J1 = 1 K1 = xq2
J2 = x′ K2 = x′
28
동기식 카운터 설계
• 4 bit binary counter
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1……
표 7.8 16 진 카운터
29
D 플립플롭을 이용한 카운터
• D 플립플롭 입력에 대한 맵
맵 7.6 16 진 카운터를 위한 D 플립플롭 입력
30
JK 플립플롭을 이용한 카운터
• Quick method를 사용
• J를 위한 맵은 다음 맵의 음영처리된 부분이다. (K′는 나머지 부분이다)
• 입력식
JD = KD = CBA
JC = KC = BA
JB = KB = A
JA = KA = 1
31
카운터 회로
그림 7.6 4 비트 카운터
32
Up/down 카운터
표 7.9 상향/하향 카운터
x = 0 일 때 상향 카운트
x = 1 일 때 하향 카운트
33
맵 과 입력식
• quick mehod를 위해 q = 0 인 부분을 음영처리
• JA = KA = 1
JB = KB = x′A + xA ′
JC = KC = x′BA + xB′A′
34
회로도
• 4-,5-비트 업(up) 카운터에서처럼 패턴이 계속된다
JD = KD = x′CBA +xC′B′A′
JE = KE = x′DCBA + xD′C′B′A′
35
예제 7.6 10진 카운터
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, .....
36
맵 및 입력 식
JD = CBA KD = A
JC = KC = BA
JB = D′A KB = A
JA = KA = 1
37
예제 7.7 임의 순서의 카운터 설계
0, 3, 2, 4, 1, 5, 7, and repeat
38
SR 과 T 플립플롭에 대한 입력
• SR과 T 플립플롭에 대한 입력 열을 표에 추가
39
D 플립플롭의 입력 맵 및 식
• q1*, q2*와 q3* 열을 사용하여 구한 D 플립플롭의 입력에 대한 맵과 식
40
SR 플립플롭의 입력 맵 및 식
S1 = q2'q3 + q2q3'
S2 = q1'q2'q3' + q1q2'q3
S3 = q2'
= q2'q3' + q1q2
R2 = q1q2 + q2q3'
R3 = q2
41
T 플립플롭의 입력 맵 및 식
42
JK 플립플롭의 입력 맵 및 식
• 빠른 방법을 사용한 JK 플립플롭에 대한 맵과 식
43
상태 점검
• D 플립플롭인 경우에 상태 110에 있다고 가정
q1=1, q2=1, q3=0을 대치하였을 때의 입력 값
• 상태 다이어그램
44
예제 7.8 up/down, cycling/saturating 카운터
45
맵 및 입력 식
46
비동기 카운터 설계
• 2비트 비동기 카운터
• 비동기 카운터에서의 지연
47
4 비트 비동기 카운터 회로 및 지연
48
비동기 카운터 특징
장점 :
단점 :
49
상태표와 상태도의 유도
예문 6 : 입력 x와 하나의 출력 z를 갖는 시스템으로,
최소한 3 클럭 주기동안 연속하여 x가 1이었을 때만 z가 1이 된다.
1. 이전 세 개의 입력을 저장
2. 연속된 1의 갯 수를 메모리에 저장
50
방법 1: 최근 세 입력 값을 저장
표 7.10 3개의 플립플롭 상태표
q1: 현재 입력보다 3 클럭 앞의 값
q2: 현재 입력보다 2 클럭 앞의 값
q3: 현재 입력보다 1 클럭 앞의 값
51
방법 2: 연속된 1의 개 수의 상태를 저장
• 1의 개 수에 대한 3 가지의 상태
A 없다, 최근 입력이 0
B 1번
C 2번
C 3 번 이상
52
방법1 과 방법 2의 비교
• 방법 1
– 8개의 상태 -> 3개의 플립플롭 필요
– 연속된 1의 수가 25개일 때의 문제로 바뀌면, 최근 25개의 입력을 저장
해야 하고 225 행의 상태 표가 필요. -> 25개의 플립플롭
• 방법 2
– 3개의 상태 -> 2개의 플립플롭 필요
– 연속된 1의 수가 25개일 때의 문제로 바뀌면, 26개 상태가 필요.
-> 5 개의 플립플롭
53
방법 1의 설계
상태할당은 이미 되 있음.
플립플롭은 q , q , q 로 이름 1 2 3
1) D 플립플롭인 경우
D1 = q2, D2 = q3, D3 = x
2) JK 플립플롭인 경우
J =q
1 2, J2 = q3, J3 = x
K =q '
1 2, K2 = q3', K3 = x'
출력 z = q 1 q2 q3
54
방법 2의 설계
• 표 7.2의 상태할당 이용
55
Map 7.1, 7.5a, 7.5b
맵 7.5a 빠른 방법을 사용한 J1 과 K1 의 계산
J1 = xq2
K′1= x or K1 = x′
J2 = x
K2 = x′ + q1′
56