Download presentation
Presentation is loading. Please wait.
Published byYenny Rachman Modified 5년 전
1
HW (5월 11일 제출) P405 문제 7 a), d) 주어지 회로에 대한 상태표를 완성하고 주어진 입력에 대한
플립플롭 상태와 출력에 대한 타이밍도를 완성한다. 그리고 MaxPlusII 를 이용하여 검증한 결과를 함께 제출한다.
2
7장 순차회로 시스템의 설계 플립플롭 설계 방법 동기식 카운터 설계 비동기 카운터 설계 상태표와 상태도의 유도
3
예문 7,8,9 예문 7. 입력 (x )과 출력 (z) 이 각각 하나인 시스템으로 현재 입력이 1이고 이전 2클럭 동안에도 1이었을 때만 1을 출력하는 Mealy 시스템 예문 8. 입력 (x )과 출력 (z) 이 각각 하나인 시스템으로 연속하여 3번 1이 입력된 것보다 연속하여 3번 0이 입력된 것이 최근일 경우에만 1을 출력하는 Moore 시스템 예문 9. 0에서 7까지의 수를 나타내는 3비트 출력을 갖는 시스템으로 출력이 십진수로 0, 3, 2, 4, 1, 5, 7의 순서로 매 클럭마다 바뀌고 한 사이클이 끝나면 다시 반복하는 시스템
4
예문 10, 11 예문 10. 2개의 입력(x1, x2)과 3개의 출력(z1, z2, z3)을 갖는 시스템으로 출력은 0에서 7 사이의 수를 나타낸다. x1 =0일 때는 상향 카운트(up count), x1 =1일 때는 하향 카운트(down count), x2 =0일 때는 카운트가 다시 반복되며, x2 =1일 때에 카운트가 끝나면 마지막 상태에 머무는 시스템 x1 = 0, x2 = 0: x1 = 0, x2 = 1: x1 = 1, x2 = 0: x1 = 1, x2 = 1: (물론 x1, x2의 값이 어느 시점에 바뀌면 출력의 순서가 바뀌게 될 것이다.) 예문 11. 버스제어기 (생략)
5
동기 순차시스템 설계 절차 단계 1: 문제에 대한 설명으로부터 메모리에 저장되어야 하는 것을 결정한다. 즉 가능한 상태가 무엇인지를 결정한다. 단계 2: 필요하다면 입,출력을 2진수로 코드화한다. 단계 3: 시스템의 동작을 설명하기 위해 상태표나 상태도를 만든다. 단계 4 : 입출력 관계는 같지만 상태의 개수가 적은 상태표를 만들기 위해 상태 축소화 기법(9 장)을 사용한다. 단계 5 : 상태할당을 한다. 즉, 상태를 이진수로 코딩한다. 단계 6: 플립플롭의 종류를 선택하고 플립플롭의 입력 맵 또는 표를 만든다. 단계 7: 논리식을 구하고 회로도를 그린다. (조합논리 설계 방식)
6
상태할당과 2진수로 나타낸 상태표 그림 설계 예제(그림 6.3) 표 상태할당 예
7
설계 진리표 표 7.2 설계진리표 (상태표를 약간 변형 시킨 것)
표 7.2 설계진리표 (상태표를 약간 변형 시킨 것) * 열 q 가 꼭 필요치는 않으나 상태가 숫자의 크기순서가 아닌 경우(표 7.1b, 표 7.1c) 는 도움이 된다. 표 7.3 출력진리표 * Moore 시스템인 경우는 별도의 출력 진리표 * Mealy 시스템인 경우는 설계진리표에 별도의 열(z)를 추가하여 출력을 나타냄
8
다음 상태 맵 과 출력 맵 q1* = xq2 + xq1 q2* = xq2’ + xq1 z = q1q2
맵 다음 상태 맵 출력 맵 q1* = xq2 + xq1 q2* = xq2’ + xq1 z = q1q2
9
예제 7.1 표 7.1b의 상태할당 q1* = xq1’q2’ + xq1q2 q2* = xq1’ + xq2’ z = q1’q2
* 표 7.1a의 할당에 비해 회로가 복잡
10
7.1 플립플롭 설계 기술 플립플롭 입력에 대한 진리표 구하기 위해 필요한 것 설계에 사용할 플립플롭에 대한 설계표
차기 상태를 구하기 위한 설계 진리표
11
플립플롭 설계표 플립플롭 설계표는 플립플롭 상태도에서 쉽게 얻을 수 있다.
플립플롭의 상태표를 다르게 표현한 진리표는 각 행에 입력, 현재 상태와 차기 상태가 나열되어 있다. 이 표로 부터 한 상태에서 원하는 상태로 가기 위한 입력 값을 결정할 수 있다. 표 7.4 플립플롭 설계표
12
D 플립플롭 설계표 그림 7.2 D 플립플롭 상태도 표 7.5 D 플립플롭 설계표
13
설계 진리표 설계 진리표는 플립플롭 입력 맵을 구하기 쉽게 상태표를 진리표 형식으로 변환한 것
즉, 차기상태와 출력을 현재 상태와 입력에 대한 함수로 나타내는 것이다 표 7.2 설계진리표 (상태표를 약간 변형 시킨 것)
14
입력 맵과 입력 식 앞의 표 7.2로 부터 플립플롭 입력표를 만들어야 되는데
D 플립플롭인 경우 D1 과 D2 가 q1* 과 q2* 와 동일하므로 추가로 이 들에 대한 열이 필요 없다. 입력식은 다음과 같이 된다. D1 = xq2 + xq1 D2 = xq2' + xq1 Z = q1q2 입력 맵 (표 7.2 이용) 그림 7.3 D 플립플롭 이용한 구현
15
JK 플립플롭 설계표 그림 JK 플립플롭 상태도 표 7.6 JK 플립플롭 설계표
16
JK 플립플롭으로 설계 설계 진리표에 플립플롭 입력들을 위한 4개의 열이 추가 됨.
표 7.7 플립플롭 입력표 설계 진리표에 플립플롭 입력들을 위한 4개의 열이 추가 됨. 음영 처리된 열 q1과 q1*는 표 7.6을 이용하여 음영 처리된 플립플롭 입력 열들을 만든다.
17
JK 입력 맵 및 최종 해 맵 7.2 JK 입력 맵
18
T 플립플롭으로 설계(예제 7.3) 상태도와 플립플롭 설계표 시스템 설계를 위한 진리표
19
T 입력 맵 및 식
20
진리표 없이 상태표로부터 직접 맵을 구하는 방법
그림에서 보여주는 상태표로 부터 직접 q1* 과 q2*를 위한 맵을 얻을 수 있다 그림 7.5 상태표에서 맵 구하기 * 주의할 점은 상태표의 현상태가 2 진 순서로 되어 있지만, 맵 순서에 맞게 고쳐야 한다.
21
J1 과 K1의 첫 번째 열을 얻기 위해 q1* 맵의 첫 번째 열을 사용한다
맵 7.4a J1 과 K1의 첫 번째 열 J1 과 K1의 두 번째 열을 얻기 위해 q1* 맵의 두 번째 열을 사용한다 맵 7.4b J1 과 K1의 두 번째 열
22
q2의 J 와 K를 찾기 위해 q2*의 맵과 q2열을 사용한다
맵 7.4c J2 와 K2의 계산 위와 같은 방법으로 다른 플립플롭에도 적용할 수 있다.
23
Quick method JK 플립플롭에 대한 빠른 방법 맵의 반이 무정의(적색으로 표시)이다.
맵의 모든 1들은 관련된 변수가 없어지도록 무정의가 있다. 맵 7.4 JK 플립플롭 입력에서 무정의와 1의 쌍
24
Quick method를 이용한 JK 계산 JK 플립플롭의 함수 식에서 q* = Jq′ + K′q q가 0 일때
q* = J ㆍ 1 + K′ㆍ 0 = J q = 1 일때 q* = J ㆍ 0 + K′ㆍ 1 = K′ 즉, 각 변수에 대한 q* 맵에서 그 변수가 0인 부분은 J를 위한 부분이고, 1인 부분은 K'을 위한 부분이다.
25
맵의 분리(변수가 3 -> 2로 줄어듬) J1 와 K1 의 계산 J1 = xq2 K′1= x or K1 = x′
맵 7.5a 빠른 방법을 사용한 J1 과 K1 의 계산 J1 = xq2 K′1= x or K1 = x′ J2 와 K2 의 계산 맵 7.5b 빠른 방법을 사용한 J2 과 K2 의 계산 J2 = x K2 = x′ + q1′
26
예제 7.4 설계 상태표와 상태 할당 상태 이름을 포함한 진리표를 생성
27
출력과 D 플립플롭 입력 Z = x' + q1q2 D1 = x' + q1' + q2' D2 = x'q2' + xq2
28
JK 플립플롭의 진리표 및 식 플립플롭의 입력 방정식 J1 = 1 K1 = xq2 J2 = x′ K2 = x′
29
7.2 동기식 카운터 설계 4 bit binary counter
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 1…… 표 진 카운터
30
D 플립플롭을 이용한 카운터 D 플립플롭 입력에 대한 맵 DD = DC′ + DB′+ DA′ + D′CBA
DC = CB′ + CA′ + C′BA DB = B′A + BA′ DA = A′
31
JK 플립플롭을 이용한 카운터 입력식 JD = KD = CBA JC = KC = BA JB = KB = A
Quick method를 사용 J를 위한 맵은 다음 맵의 음영처리된 부분이다. (K′는 나머지 부분이다) 맵 JK 플립플롭 설계를 위한 맵 입력식 JD = KD = CBA JC = KC = BA JB = KB = A JA = KA = 1
32
카운터 회로 그림 비트 카운터 0부터 31 까지 카운트하는 것은 E 플립플롭을 추가하여 다섯 개의 플립플롭 으로 설계할 수 있다. JE = KE = DCBA
33
Up/down 카운터 표 상향/하향 카운터 x = 0 일 때 상향 카운트 x = 1 일 때 하향 카운트
34
맵 과 입력식 quick mehod를 위해 q = 0 인 부분을 음영처리 JA = KA = 1
JB = KB = x′A + xA ′ JC = KC = x′BA + xB′A′
35
회로도 4-,5-비트 업(up) 카운터에서처럼 패턴이 계속된다 JD = KD = x′CBA +xC′B′A′
JE = KE = x′DCBA + xD′C′B′A′ 그림 상향/하향 카운터
36
예제 진 카운터 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, .....
37
맵 및 입력 식 JD = CBA KD = A JC = KC = BA JB = D′A KB = A JA = KA = 1
38
예제 7.7 임의 순서의 카운터 설계 0, 3, 2, 4, 1, 5, 7, and repeat
예제 임의 순서의 카운터 설계 0, 3, 2, 4, 1, 5, 7, and repeat 수의 순서와 다르게 카운트하는 카운터의 설계
39
SR 과 T 플립플롭에 대한 입력 SR과 T 플립플롭에 대한 입력 열을 표에 추가
40
D 플립플롭의 입력 맵 및 식 q1*, q2*와 q3* 열을 사용하여 구한 D 플립플롭의 입력에 대한 맵과 식
41
SR 플립플롭의 입력 맵 및 식 S1 = q2'q3 + q2q3' S2 = q1'q2'q3' + q1q2'q3 S3 = q2'
R1 = q2'q3' + q2q3 = S1' = q2'q3' + q1q2 R2 = q1q2 + q2q3' R3 = q2
42
T 플립플롭의 입력 맵 및 식
43
JK 플립플롭의 입력 맵 및 식 빠른 방법을 사용한 JK 플립플롭에 대한 맵과 식
44
상태 점검 D 플립플롭인 경우에 상태 110에 있다고 가정 q1=1, q2=1, q3=0을 대치하였을 때의 입력 값
D1 = q2'q3 + q2q3' = = 1 D2 = q1'q2'q3' + q1'q2q3 + q1q2'q3 = = 0 D3 = q2' = 0 상태 다이어그램
45
예제 7.8 up/down, cycling/saturating 카운터
X=0 : 상향 Y=0 : 순환(cycling) X=1 : 하향 Y=1 : 포화(saturating)
46
맵 및 입력 식
47
7.3 비동기 카운터 설계 2비트 비동기 카운터 비동기 카운터에서의 지연
48
4 비트 비동기 카운터 회로 및 지연 4비트 카운터에 대한 타이밍
49
비동기 카운터 특징 장점 : 조합 논리회로가 필요 없을 정도로 하드웨어가 간단하다 단점 :
플립플롭들은 동일 클럭에 변하지 않고, 한 플립플롭의 출력이 다른 플립플롭의 클럭으로 동작하기 때문에 지연시간이 길어지게 된다. 시스템의 상태는 모든 플립플롭의 천이가 완료될 때까지 결정되지 않는다.
50
7.4 상태표와 상태도의 유도 예문 6 : 입력 x와 출력 z를 갖는 시스템으로,
입력된 내용을 메모리에 저장하는 2 가지 방법 이전 세 개의 입력을 저장 연속된 1의 갯 수를 메모리에 저장
51
방법 1: 최근 세 입력 값을 저장 q1: 현재 입력보다 3 클럭 앞의 값 q2: 현재 입력보다 2 클럭 앞의 값
표 개의 플립플롭 상태표 q1: 현재 입력보다 3 클럭 앞의 값 q2: 현재 입력보다 2 클럭 앞의 값 q3: 현재 입력보다 1 클럭 앞의 값 즉. x 입력이 매 클럭마다 q3, q2, q1 로 shift 되어 들어간다.
52
방법 2: 연속된 1의 개 수의 상태를 저장 1의 개 수에 대한 3 가지의 상태 A 없다, 최근 입력이 0 B 1 번
방법 2: 연속된 1의 개 수의 상태를 저장 1의 개 수에 대한 3 가지의 상태 A 없다, 최근 입력이 0 B 1 번 C 2 번 C 3 번 이상 그림 상태도와 상태표
53
방법1 과 방법 2의 비교 방법 1 방법 2 8개의 상태 -> 3개의 플립플롭 필요
연속된 1의 수가 25개일 때의 문제로 바뀌면, 최근 25개의 입력을 저장해야 하고 225 행의 상태 표가 필요. -> 25개의 플립플롭 방법 2 3개의 상태 -> 2개의 플립플롭 필요 연속된 1의 수가 25개일 때의 문제로 바뀌면, 26개 상태가 필요. -> 5 개의 플립플롭
54
방법 1의 설계 상태할당은 이미 되 있음. 플립플롭은 q1, q2, q3 로 이름 D 플립플롭인 경우
D1 = q2, D2 = q3, D3 = x 2) JK 플립플롭인 경우 J1 = q2, J2 = q3, J3 = x K1 = q2', K2 = q3', K3 = x' 출력 z = q1 q2 q3
55
방법 2의 설계 표 7.2의 상태할당 이용 해 (맵 7.1, 7.5a, 7.5b) D1 = q1*, = xq2 + xq 또는 J1 = xq2 K1 = x' D2 = q2*, = xq2' + xq 또는 J2 = x K2 = x' + q1' z = q1 q2
56
Map 7.1, 7.5a, 7.5b J1 = xq2 K′1= x or K1 = x′ J2 = x K2 = x′ + q1′
맵 7.5a 빠른 방법을 사용한 J1 과 K1 의 계산 J1 = xq2 K′1= x or K1 = x′ 맵 7.5b 빠른 방법을 사용한 J2 과 K2 의 계산 J2 = x K2 = x′ + q1′
Similar presentations