State Encoding: One-Hot Encoding Output Encoding
State Encoding: One-Hot Encoding Output Encoding
State encoding
One-hot encoding
Output encoding
State partitioning
FSM design
State diagram
State-transition table
State minimization
State encoding
Next-state logic minimization
Implement the design
2
Usual example
N
Coin
Sensor
Vending
Machine
FSM
Clock
Open
Release
Mechanism
present
state
0
D' N'
0
D' N'
N
5
5
D
N
D
10
10
D' N'
15
N+D
15
[open]
inputs
D
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
next
N
0
5
10
5
10
15
10
15
15
15
output
state
0
0
0
0
0
0
0
0
0
open
No guarantee of optimality
An intractable problem
One-hot encoding
One-hot variants
One-hot variants
One-hot encoding
Vending machine
present state inputs next state output
Q3Q2Q1Q0 D N D3 D2D1D0 open
00 0 1
00 1 0
01 0 0
10 0 0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Reset
D' N'
0
D' N'
N
5
N
D
10
D' N'
N+D
15
[open]
11
D0 = Q0DN
D' N'
D1 = Q0N + Q1DN
0
D' N'
N
5
OPEN = Q3
N
D
10
D' N'
N+D
15
[open]
12
Output encoding
Output encoding
Inputs
Combinational
Logic
State Inputs
Outputs
State Outputs
Storage Elements
14
FSM partitioning
15
Example
C2
S2
S3
C4
C3
S6
S5
C5
S4
16
S1
C2
S2 C3
S3
S1
S5
C5
S4
C1
C2S6
S2
S3
C4
S6
C4
C3+C5
C1S1
(C2S6)
SA
S6
(C1S1+
C3S2+
C4S3+
C5S2)
C2
SB
C3S2+ S5
C4S3
C5S2
S4
17
Partitioning rules
Rule #1: Source-state transformation
Replace by transition to idle state (SA)
S1
C1
S6
S1
C1
SA
C2
S6
S1
C2S6
SA
18
Partitioning rules
C3S2 +
C4S3
S2 C3+C5
S5
SA
S3
C4
C5
S4
S3
C4
S5
SB
C5S2
S4
C2S6
SA
19
Example
U
U
S0
S5
D
S1
S4
D
D
D
S2
S3
20
Example
Count sequence S0, S1, S2, S3, S4, S5
S0
US5
U
D
S1
D
U
SA
DS3
S2
U
(DS3 +
US5)
(DS0+
US2)
SB
U
DS0
D
US2
S3
S4
D
U
21
Example
U
Compare behavior
on UUUUUU:
S0
S5
D
S1
S4
D
D
D
S2
S3
S5
S0
US5
U
D
S1
D
U
SA
DS3
S2
U
(DS3 +
US5)
(DS0+
US2)
SB
U
DS0
D
US2
S3
S4
D
U
22
Example
Why do this?
Minimize communication