Chapter 9
Simplification ofS ti l Ci itSequential Circuits
9. Simplification of Sequential Circuits
9.1 State reduction: 함축표 법
9.2 State reduction: 등가 클래스 법
9 3 Choosing a State Assignment9.3 Choosing a State Assignment
9.1 State reduction
★ 상태할당 알고리즘(State assignment algorithm): 다음 조건들을 최대한 만족하는
상태들은 인접한 코드를 할당.
규칙1 : 동일한 차기 상태를 갖는 두 상태
규칙 2 : 하나의 상태로부터 천이되는 차기 상태들
규칙 3 동일한 출력을 내는 상태들규칙 3 : 동일한 출력을 내는 상태들
* 우선 순위 : 규칙 1 > 규칙 2 > 규칙 3
★등가 상태(State equivalence)
*Two states Sa and Sb, are equivalent iff for every possible input sequence, the t t th d th t t t i l toutputs are the same and the next states are equivalent.
* Properties:(1) 대칭성(Symmetry): If Sa = Sb , then Sb = Sa ( ) 대칭성( y y) ,(2) 재귀성(Reflexivity): If Sa = Sa , for any state
(3) 천이성(Transitivity): If Sa = Sb , and Sb = Sc , then Sa = Sc
9.1 State reduction: 함축표 법
★ 동기순서회로의 경제적 구현방법
1.상태수의 축소:
* 플립플롭 수가 작아진다.
* 등가인 상태들을 찾아 하나의 상태로 나머지 등가인 상태들을 대치하여 사용
2 효과적인 상태할당: 플립플롭 구동 게이트 수가 작아진다2.효과적인 상태할당: 플립플롭 구동 게이트 수가 작아진다
* 각 상태에 어떤 코드를 할당하느냐에 따라 게이트 수가 다르게 나타날 수 있음
★ 상태 감축법(State reduction)
1. 등가 클래스(Equivalence classes) 법:
* 주어진 입력에 대한 다음 상태 및 출력을 바탕으로 전체 상태를 같은 성질을
가진 상태 클래스로 분류하여 상태 수를 축소하는 방법
2 함축표(Implication chart) 법:2. 함축표(Implication chart) 법:
* 그래프를 이용하여 다음 상태 및 출력을 이용하여 전체 상태들 가운데서 등가가
아닌 상태를 제거하는 방법
9.1 State reduction: 함축표 법
★ 함축표 (Implication chart) 법
등가 상태가 될 가능성이 있는 상태를 짝으로 묶는 표를 구성하여 상태를 축소* 등가 상태가 될 가능성이 있는 상태를 짝으로 묶는 표를 구성하여 상태를 축소하는 그래프적 방법.
(S S ) (S S ) (S S ) (S S ) (S S ) (S S )(S0, S1), (S0, S2), … (S0, Sn), (S1, S2), (S1, S3), … (Sn-1, Sn)
Implies the possibility that S0 = S1
S1
S2
0 1
* 함축표: - 가로축: 전체 상태 중에서 마지막
상태를 제외한 나머지 상태를 좌에서 우
S3
S4
의 순서로 정렬
- 세로축: 전체 상태 중에서 처음 상
S5
S0 S1 S2 S3 S4
태를 제외한 나머지 상태를 상에서 하로의 순서로 정렬
9.1 State reduction: 함축표 법
S0 X 1 2 4 7 11
S1 1 X 3 6 8 12S1 1
S1 1 X 3 6 8 12
S2 2 3 X 6 9 13
S3 4 5 6 X 10 14
S2 2 3
S3 4 5 6
S4 7 8 9 10S3 4 5 6 X 10 14
S4 7 8 9 10 X 15
S5 11 12 13 14 15 X
S4 7 8 9 10
S5 11 12 13 14 15
S0 S1 S2 S3 S4 S5S0 S1 S2 S3 S4 S5
S0 S1 S2 S3 S4 S5
S1
S2
Implies the possibility that S0=S
1
S3
S4
S5
S0
S1
S2
S3
S4
9.1 State reduction: 함축표 법
S5 11 12 13 14 15 XS4 15
S4 7 8 9 10 X 15
S3 4 5 6 X 10 14
S2 2 3 X 6 9 13
S3 10 14
S2 6 9 13S2 2 3 X 6 9 13
S1 1 X 3 5 8 12
S0 X 1 2 4 7 11
S1 3 5 8 12
S0 1 2 4 7 11S0 X 1 2 4 7 11
S0 S1 S2 S3 S4 S5S0 S1 S2 S3 S4 S5
함축표 그리기 매우 불편!!!
9.1 State reduction: 함축표 법
차기상태
* 상태 축소 과정(State reduction procedures)
S
Implies the possibility that S0 = S1
현재상태
차기상태
x = 0 z x = 1 z
S1
S2
상태
S0
S1
S4
S5
00
S3
S3
10
S3
S1
S2
S3
S4
S
5
S4
S5
S2
S
0000
3
S1
S1
S5
S
1010
S4
S5
S5 S1 0 S2 0
표 상태표
S0 S1 S2 S3 S4
표 채워지지 않은 함축표표. 상태표 표. 채워지지 않은 함축표
[Step 1]: 주어진 상태표로부터 채워지지 않은 함축표 작성(함축표 내의 사각형은 등가 상태가 될 가능성이 있는 상태들의 조합을 나타냄)
9.1 State reduction: 함축표 법
차기상태S1
현재상태 x = 0 z x = 1 z S2
S
S1, S3
S SS0
S1
S2
S
S4
S5
S4
S
0000
S3
S3
S1
S
1010
S3
S4
S1, S3
S2, S4S
3, S
5
S2, S4S
1, S
5S3
S4
S5
S5
S2
S1
000
S1
S5
S2
010
S5
S0 S1 S2 S3 S4
S1, S5S
2, S
3
S1, S5S
1, S
2
표. 상태 표
0 1 2 3 4
표. 함축표
[Step 2]: 함축표에 나타난 각각의 사각형에 대하여 출력이 서로 다른 사각형에‘X’표 표시 (서로 같을 수 없음을 나타냄)
[Step 3]: 나머지 사각형에 대하여 2가지 상태가 같아질 조건을 표시
9.1 State reduction: 함축표 법
S1
S2
S
S1, S3
S S
S1
S3
S4
S1, S3
S2, S4S
3, S
5
S2, S4S
1, S
5
S2
S
S1, S3
S S
S5
S0 S1 S2 S3 S4
S1, S5S
2, S
3
S1, S5S
1, S
2
S3
S4
S1, S3
S2, S4S
3, S
5
S2, S4S
1, S
50 1 2 3 4
표. 함축표S5
S0 S1 S2 S3 S4
S1, S5S
2, S
3
S1, S5S
1, S
2
[Step 4]: 각각의 사각형 내에 표시된 함축된 등가 상태 조건을 검사하여 서로같아질 수 없는 쌍이 존재하는 사각형은 ‘X’로 표시
0 1 2 3 4
[Step 5]: 최종적으로 남은 사각형을 나타내는 상태만이 등가 상태를 구성S0 = S2, S1 = S3
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
10/0
A11/1
00/0; 11/100/0
01/0 11/1
B C01/0
01/0
00/010/0
D E
10/1 00/0;01/0;11/1
00/0
10/1 11/1
D E
10/0
00/0
01/0
9.1 State reduction: 함축표 법
차기상태, xy/z
현재상태 00 z 01 z 11 z 10 z
A B 0 C 0 B 1 A 0BCDE
EACC
0000
CBDC
0000
BCAC
1111
DDBE
1100E C 0 C 0 C 1 E 0
표. 상태표
9.1 State reduction: 함축표 법
B B
C
D
B, CA, E
B C;
C
D
B, CA, E
B C;D
EA, EB C
B, C;D, C, A, B
C, D; B, EA C
D
EA, EB C
B, C;D, C, A, B
C, D; B, EA C
A B C D
B, C A, C
함축표 처리결과
A B C D
B, C A, C
함축표 처리결과
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
차기상태, xy/z
현재상태 00 z 01 z 11 z 10 z
AB
BE A
00
CC
BB
00
BB
11
AD
01B
C BDE A
EACC
A
BB
0000
CBDC
B
B
0000
BCAC
B
B
1111
DDBE A
1100
차기상태, xy/z
수정된 상태표
현재상태 00 z 01 z 11 z 10 z
S0S1
S1S0
00
S1S1
00
S1S1
11
S0S2
011
S2
0S1 0
1S2 0
1S0 1
2S1 0
상태명을 변경한 후의 간략화된 상태표
9.1 State reduction: 함축표 법
10/0
S0
11/1
00/0
00/0, 01/0, 11/1
S1 S210/1
00/0, 10/0
01/0, 11/1
01/0
간략화된 Mealy 상태도
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
9.1 State reduction: 함축표 법
현재상태
차기상태, x/Z2Z1
0 Z Z 1 Z Z상태 x = 0 Z2 Z1 x = 1 Z2 Z1
01
04
00
00
12
00
001
2345
47265
00010
00101
21654
00101
000015
678
5138
0010
1101
4687
1101
10018 8 0 1 7 1 1
표 6.3.4.3 상태표
9.1 State reduction: 함축표 법
0, 41, 2
10, 41, 2
1
0, 7
3
21, 24, 7
0, 7
3
21, 24, 7
5
4
5
4
6
7
1, 2
3, 65, 8
6
7
1, 2
3, 65, 8
8
0 1 2 3 4 5 6 7
5, 84, 7
표 6 3 4 3의 함축표 표 6 3 4 3에 대한 완성된 함축표
8
0 1 2 3 4 5 6 7
5, 84, 7
표 6.3.4.3의 함축표 표 6.3.4.3에 대한 완성된 함축표
9.1 State reduction: 함축표 법
차기상태
현재상태
차기상태
x = 0 Z2 Z1 x = 1 Z2 Z12 1 2 1
01
04
00
00
12 1
00
001
2 1345
47 42 16 35
00010
00101
2 116 354
00101
000015
6 37 48 5
5138 5
0010
1101
46 38 57 4
1101
10018 5 8 5 0 1 7 4 1 1
수정된 상태표
9.1 State reduction: 함축표 법
차기상태
현재상태 x = 0 Z2 Z1 x = 1 Z2 Z1
ABCD
ADBC
0001
0010
BBCE
0010
0000D
ECE
10
01
ED
01
01
상태명을 변경한 후의 간략화된 상태표
9.2 State reduction: 등가 클래스 법
차기상태
★ State reduction procedures 예제
차기상태
현재상태
차기상태
x = 0 z x = 1 z현재상태
차기상태
x = 0 z x = 1 z상태
S0
S1
S4
S5
00
S3
S3
10
상태
S0
S2
S4
S4
00
S3
S1
111
S2
S3
S4
S
5
S4
S5
S2
S
0000
3
S1
S1
S5
S
1010
2
S4
S1
S3
S
4
S2
S5
S5
S
0000
1
S5
S3
S1
S
1000S5 S1 0 S2 0
표 상태 표
S5 S1 0 S2 0
표 상태 표의 분류표 6.3.4.1 상태 표 표 6.3.4.1 상태 표의 분류
[Step 1-1]: 동일한 입력에 대하여 동일한 출력을 가지는 상태끼리 분류C1= (S0, S2, S4) , C2= (S1, S3, S5)
9.2 State reduction: 등가 클래스 법
* State reduction procedures
현재상태
현재상태
차기상태
x = 0 z x = 1 z
차기상태
x = 0 x = 1
C1
S0
S2
C1
C1
C2
C2
상태 x = 0 z x = 1 z
S0
SS4
S00
S3
S11 C1
C2
S2
S4
S1
S3
C1
C1
C2
C2
C2
C2
C2
C2
S2
S4
S1
S3
S4
S2
S5
S5
0000
S1
S5
S3
S1
1100
S5 C2 C1
표 상태 표 1 등가 차기 클래스표
3
S5
5
S1 01
S2 0
표 6.3.4.1 상태 표 1-등가 차기 클래스표
[Step 1-2]: 분류된 상태표로부터 1-등가 차기 클래스표 작성
9.2 State reduction: 등가 클래스 법
차기상태 차기상태
현재현재상태 x = 0 x = 1 x = 0 x = 1
현재상태
C11S0
S2
S
C11
C11
C
C21
C21
CC1
S0
S2
S
C1
C1
C
C2
C2
C
C21
C22
S4
S1
S3
S5
C11
C22
C22
C21
C22
C21
C21
C11
C2
S4
S1
S3
S5
C1
C2
C2
C2
C2
C2
C2
C1
2 등가 차기 클래스표 1 등가 차기 클래스표
5 2 1
2-등가 차기 클래스표 1-등가 차기 클래스표
[Step 2]: 1-등가 차기 클래스표를 이용하여 Step-1에서와 같은 방법으로2-등가 차기 클래스표 작성
9.2 State reduction: 등가 클래스 법
차기상태차기상태
현재상태 x = 0 x = 1
현재상태 x = 0 x = 1
S0
S2
S4
S
C111
C112
C112
C112
C111
C
C211
C211
C221
C
C11S0
S2
S
C11
C11
C
C21
C21
C S1
S3
S5
C211
C221
C221
C221
C211
C211
C211
C111C21
C22
S4
S1
S3
S5
C11
C22
C22
C21
C22
C21
C21
C11
3-등가 차기 클래스표
2 등가 차기 클래스표
[Step 3]: 2-등가 차기 클래스표를 이용하여 Step-1에서와 같은 방법으로
2-등가 차기 클래스표
3-등가 차기 클래스표 작성
9.2 State reduction: 등가 클래스 법
차기상태
현재상태 x = 0 x = 1
S0
S2
S4
S
C111
C112
C112
C112
C111
C
C211
C211
C221
CS1
S3
S5
C211
C221
C221
C221
C211
C211
C211
C111
4-등가 차기 클래스표
[St 4][Step 4]: * k-등가 차기 클래스표를 이용하여 Step-1에서와 같은 방법으로
(k+1)-등가 차기 클래스표 작성
* k-등가 차기 클래스표와 (k+1)-등가 차기 클래스표 가 같으면 멈춤
9.2 State reduction: 등가 클래스 법
차기상태
현재상태 x = 0 x = 1
S0
S2
S4
S
C111
C112
C112
C112
C111
C
C211
C211
C221
CS1
S3
S5
C211
C221
C221
C221
C211
C211
C211
C111
4-등가 차기 클래스표
[Step 5]: (k+1) 등가 차기 클래스표 내의 각각의 클래스에 속하는 상태를 같은 상태로 할당* (k+1)-등가 차기 클래스표 내의 각각의 클래스에 속하는 상태를 같은 상태로 할당
* 최종 상태 4가지: S0 = S2, S1= S3 , S4, S5
* 같은 상태로 할당된 상태를 바탕으로 상태표를 다시 작성
9.2 State reduction: 등가 클래스 법
차기상태
현재상태 x = 0 z x = 1 zS0
SS4
S00
S3 S1
S S10
S0 = S2, S1= S3S1
S2 S0
S3 S1
S4
S5
S4
S5
S2 S0
0000
S3 S1
S1
S1
S5
01014
S5
2 0
S1 05
S2 S0 0
차기상태
수정된 상태표
현재상태 x = 0 z x = 1 z
S0 S4 0 S1 1S1
S4
S5
S5
S0
S1
000
S1
S5
S0
010 간략화된 상태표
9.2 State reduction: 등가 클래스 법
P0 = (A)(B)(C)(D) P8 = (AC)(BD)
P1 = (AB)(C)(D)
P2 = (AC)(B)(D)
P9 = (AD)(BC)P10 = (ABC)(D)
2 ( )( )( )
P3 = (AD)(B)(C)P11 = (ABD)(C)P12 = (ACD)(B)
P4 = (A)(BC)(D)
P5 = (A)(BD)(C)
12 ( )( )P13 = (A)(BCD)PN = (ABCD)5
P6 = (A)(B)(CD)
P (AB)(CD)
PN (ABCD)
P7 = (AB)(CD)
9.2 State reduction: 등가 클래스 법
9.2 State reduction: 등가 클래스 법
9.2 State reduction: 등가 클래스 법
• Pa Pb if and only if all states in the same block of Pb are also in the same block of P .in the same block of Pa .
• Two states are in the same block of product Pc if and only if they are in the same block of both P and Pthey are in the same block of both Pa and Pb .
• Two states are in the same block of the sum Pd if they are in the same block of either P or P or bothsame block of either Pa or Pb or both.
Step 1: For each pair of states, find the smallest SP partition that h i h bl kputs those two states in the same block.
Step 2: Find the sum of all of the SP partitions found in step 1 and, if new ones are found, repeat step 2 on these new ones.
9.2 State reduction: 등가 클래스 법
(AB) (CD) (AB)(CD) = P1
(AC) (AB) (CD) (ABCD) = PN(AC) (AB) (CD) (ABCD) PN
(AD) (BC) (AD)(BC) = P2(BC) (AD) (AD)(BC) = P(BC) (AD) (AD)(BC) = P2(BD) (AB) PN(CD) (AB) (AB)(CD) = P1
9.2 State reduction: 등가 클래스 법
9.2 State reduction: 등가 클래스 법
P1 = (ACE)(B)(D) P5 = (A)(B)(CE)(D)P1 (ACE)(B)(D) P5 (A)(B)(CE)(D)P2 = (ADE)(BC) P6 = (ACE)(BD)P3 = (AE)(B)(C)(D) P7 = (AE)(BD)(C)P4 = (A)(BD)(C)(E) P8 = (A)(BD)(CE)
9.2 State reduction: 등가 클래스 법
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
P1 = (AB)(C)(DF)(E) P6 = (AB)(CE)(DF)1 ( )( )( )( ) 6 ( )( )( )P2 = (ABC)(DEF) P7 = (ABDF)(C)(E)P3 = (AD)(B)(C)(E)(F) P8 = (ABDF)(CE)P4 = (AF)(BD)(C)(E) P9 = (AD)(BF)(C)(E)P5 = (A)(BF)(C)(D)(E)
9.3 Choosing a State Assignment
P1 = (AB)(C)(DF)(E) P9 = (AF)(BCDE)1 ( )( )( )( ) 9 ( )( )
1 1 2 2 2D x q D xq x q
9.3 Choosing a State Assignment
3 2 3 1 2 1 3D x q q xq q z x q xq
State Assignment algorithm
State Assignment algorithm
* Some simple guidelines for obtaining state assignments
(1) Rule I: Two or more present states that have the same next state for a given input combination should be made adjacent.
(2) Rule II: For any present state and two adjacent input combinations, the two next states should be made adjacent.
(3) Rule III: Tow or more present states that produce the same output symbol, I.e., 0 or 1, for a given input combination should be made adjacent. This rule need only be applied to one of the output symbols.
* Priorities: Rule I > Rule II > Rule III 의 순서로 우선
Some simple guidelines for obtaining state assignments
(1) Rule I: Two or more present states that have the same next state for a given input combination should be made adjacent.
01/Z
A
00 01 11 10F0
F2F1
01/ZB
C
E01/Z01/Z
0 2 6 4
00 01 11 10
0
F0
CA
D
C01/Z
1 3 7 5
1 DB
[상태할당 규칙 1의 예](a) 부분 상태도 (b) K-Map
Some simple guidelines for obtaining state assignments
(2) Rule II: For any present state and two adjacent input combinations, the two next states should be made adjacent.
B
C00 01 11 10F0
F2F1
C
D
A0
1
2
3
6
7
4
5
00 01 11 10
0
0
EDCB
E
1 3 7 5
1
[상태할당 규칙 2의 예](a) 부분 상태도 (b) K-Map
Some simple guidelines for obtaining state assignments
(3) Rule III: Tow or more present states that produce the same output symbol, i.e., 0 or 1, for a given input combination should be made adjacent. This rule need only be applied to one of the output symbols.This rule need only be applied to one of the output symbols.
9.3 Choosing a State Assignment
차기상태차기상태 및 출력
상태 X = 0 X = 1
A A/0 C/0
현재상태 x = 0 x = 1
A A CABCD
A/0C/1A/1B/0
/
C/0D/0F/1E/0/
ABCD
ACAB
CDFE
EF
C/0D/0
C/1E/1
EF
CD
CE
표9 상태표에 출력이 포함된 경우 및 포함되지 않은 경우
★ Unused states의 처리★ Unused states의 처리* Don’t care로 처리: 간단* 초기 상태로 처리: 만일의 사태에 대비할 수 있음
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
00 01 11 10F1
F3F2
00 01 11 10F1
F3F2
0
1
2
3
6
7
4
5
0 CDFA0
1
2
3
6
7
4
5
00 01 11 10
0
1
EBFA
1 BE1 3 7 5
1 DC
(a) 상태할당 #1 (b) 상태할당 #2
0 2 6 4
00 01 11 10F1
F3F2
(a) 상태할당 #1 (b) 상태할당 #2
1 3 7 5
1
0
E B
FA
D
C
1 E BD
(c) 상태할당 #3
표 9에 대한 상태할당 맵
9.3 Choosing a State Assignment
상태 F3 F2 F1 상태할당 3
AB
01
00
01
상태할당 1ABC
001
010
010
BCDE
1000
0110
1011
CDEF
1100
0101
0010
Fd*
d*
111
011
001
d*
d*
11
01
11
상태할당 2
* 무관항(Don’t care) 상태
상태할당 2ABCD
0101
0100
0011
표 9에 대한 3가지 상태할당 방법DEFd*
1100
0011
1001
d* 1 1 1
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
9.3 Choosing a State Assignment
* 표 9에 대한 2진 상태 할당
상태 F3 F2 F1
ABCD
0000
0011
0101D
EFd
0111
1001
1010
d 1 1 1
9.3 Choosing a State Assignment
차기상태
현재상태 X 0 X 1
* State assignment techniques
현재상태 X = 0 X = 1
F2 F1 D2 D1 D2 D1
상태할당 1
차기상태
상태할당 1
ABC
001
010
001
0/00/01/0
010
1/00/01/0
상태표
현재상태
차기상태
x = 0 x = 1
A A/0 B/0
D 1 1 0/
0/1 0/
1/0
상태할당 2
A 0 0 0 0/0 0 1/0
BCD
A/0D/0A/1
C/0B/0B/0
BCD
011
110
010
0/00/00/1
100
1/01/01/0
상태할당
9.3 Choosing a State Assignment
No of stateNo. of state
variables No of nonequivalentNo. of state(N)
variables(M)
No. of nonequivalentstates (S)
2 1 12345
1223
133
1406789
3334
420840840
10 81×1069101620
4445
10.81×106
75.67×106
54.48×109
143.14×1021
Nonequivalent state assignment possibilities for example stateand state