Professional Documents
Culture Documents
No. 8-1
Motivation
Counters: Sequential Circuits where State = Output
Generalizes to Finite State Machines:
Outputs are Function of State (and Inputs)
Next States are Functions of State and Inputs
Used to implement circuits that control other circuits
"Decision Making" logic
Application of Sequential Logic Design Techniques
Word Problems
Mapping into formal representations of FSM behavior
Case Studies
No. 8-2
Chapter Overview
Concept of the State Machine
Partitioning into Datapath and Control
When Inputs are Sampled and Outputs Asserted
Basic Design Approach
Six Step Design Process
Alternative State Machine Representations
State Diagram, ASM Notation, VHDL, ABEL Description Language
Moore and Mealy Machines
Definitions, Implementation Examples
Word Problems
Case Studies
No. 8-3
Reset
0
Even
[0]
1
1
Odd
[1]
State
Diagram
Present State
Even
Even
Odd
Odd
Input
0
1
0
1
Next State
Even
Odd
Odd
Even
Output
0
0
1
1
Input
0
1
0
1
Next State
0
1
1
0
Output
0
0
1
1
No. 8-5
Input
NS
Input
CLK
Q
R
CLK
PS/Output
\Reset
T FF Implementation
D FF Implementation
1
Output
Q
R
\Reset
Input
Clk
Output
Concept of State
Machine
Timing:
When are inputs sampled, next state computed, outputs asserted?
State Time: Time between clocking events
Clocking event causes state/outputs to transition, based on inputs
For set-up/hold time considerations:
Inputs should be stable before clocking event
After propagation delay, Next State entered, Outputs are stable
NOTE: Asynchronous signals take effect immediately
Synchronous signals take effect at the next clocking event
E.g., tri-state enable: effective immediately
sync. counter clear: effective at next clock event
No. 8-7
Concept of State
Machine
Example: Positive Edge Triggered Synchronous System
State T ime
Clock
Inputs
Immediate Outputs:
affect datapath immediately
could cause inputs from datapath to change
Outputs
Delayed Outputs:
take effect on next clock edge
propagation delays must exceed hold times
No. 8-8
CLK
FSM 2
FSM 1
Y
FSM 1
A
[1]
Y=0
Y=0
X=0
X=0
FSM 2
C
[0]
X=1
Y=1
X=1
Y=0,1
B
[0]
X=0
D
[1]
No. 8-10
N
Coin
Sensor D
Re se t
Ve nding
M achine
FSM
Ope n
Gum
Release
M echanism
Clk
No. 8-11
Reset
S0
N
Inputs: N, D, reset
Output: open
S2
S4
S5
S6
[open]
[open]
[open]
S3
S7
S8
[open]
[open]
No. 8-12
Reset
0
0
N
5
D
N
10
D
N, D
10
15
[open]
15
reuse states
whenever
possible
Inputs
D N
0
0
1
1
0
0
1
1
0
0
1
1
X
0
1
0
1
0
1
0
1
0
1
0
1
X
Next
State
Output
Open
0
5
10
X
5
10
15
X
10
15
15
X
15
0
0
0
X
0
0
0
X
0
0
0
X
1
No. 8-13
Inputs
D N
0
0
1
1
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
1
0
1
Next State
D1 D0
0
0
1
X
0
1
1
X
1
1
1
X
1
1
1
X
0
1
0
X
1
0
1
X
0
1
1
X
1
1
1
X
Output
Open
0
0
0
X
0
0
0
X
0
0
0
X
1
1
1
X
No. 8-14
Q1
D
Q0
N
N
\ Q0
Q0
\N
Q1
N
Q1
D
D0
D1 D
CLK
Q1
RQ
\ Q1
D1 = Q1 + D + Q0 N
\reset
OPEN
D0 D
CLK
Open
Q0
D0 = N Q0 + Q0 N + Q1 N + Q1 D
OPEN = Q1 Q0
\ Q0
RQ
\reset
8 Gates
No. 8-15
Inputs
D N
0
0
1
1
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
1
0
1
Next State
D1 D0
0
0
1
X
0
1
1
X
1
1
1
X
1
1
1
X
0
1
0
X
1
0
1
X
0
1
1
X
1
1
1
X
J1
0
0
1
X
0
1
1
X
X
X
X
X
X
X
X
X
K1
J0 K 0
X
X
X
X
X
X
X
X
0
0
0
X
0
0
0
X
0
1
0
X
X
X
X
X
0
1
1
X
X
X
X
X
X
X
X
X
0
1
0
X
X
X
X
X
0
0
0
X
N
Q0
D
\ Q0
J
CLK
K RQ
Q1
\ Q1
OPEN
Q1
D
CLK
\ Q1
KR Q
N
\reset
Q0
\ Q0
7 Gates
No. 8-17
No. 8-18
State
Entry Path
State Code
*
State
Name
State
Output List
T
***
State Box
Condition
Condition
Box
Conditional
Output List
ASM
Block
Output
Box
Exits to
other ASM Blocks
No. 8-19
010
I0
T
010
I1
T
F
I1
F
F
I0
T
B
C
No. 8-20
X
T
Odd
1
H.Z
Trace
Tracepaths
pathsto
toderive
derive
state
transition
state transitiontables
tables
00
10
10
F
F
F
F
15
01
11
H.Open
N
F
F
Reset
T
T
0
No. 8-22
Moore Machine
Comb.
Logic for
Outputs
Combinational
Logic for
Next State
(Flip-flop
Inputs)
Zk
Outputs
Clock
state
feedback
Xi
Inputs
Zk
Outputs
Combinational
Logic for
Outputs and
Next State
State Register
Clock
State
Feedback
Mealy Machine
Outputs depend on
state AND inputs
Input change causes
an immediate output
change
Asynchronous outputs
No. 8-23
N D + Reset
Reset
(N D + Reset)/0
Reset/0
Mealy
Machine
[0]
Reset
Reset/0
N/0
5
ND
[0]
5
D
N D/0
N/0
10
D
D/0
[0]
10
ND
N+D
D/1
N D/0
N+D/1
15
[1]
15
Reset
Reset/1
No. 8-24
0/0
0
[0]
0
1
1/1
[0]
Different # of states
1/0
0/0
1
2
[1]
S0
00
IN
S1
S0
01
IN
S2 T
10
H.OUT
IN
IN
S1
IN
Equivalent
ASM Charts
T
H.OUT
T
No. 8-25
J
Q
C
KR Q
FFa
A
\A
Input X
Output Z
State A, B (= Z)
\Reset
Clk
X
X
\A
J
Q
C
KR Q
FFb
Z
\B
\Reset
Partially Derived
State Transition
Table
0 1
1 0
1 1
X
0
1
0
1
0
1
0
1
A+
?
1
0
?
1
0
1
1
B+
?
1
0
?
0
1
1
0
Z
0
0
1
1
0
0
1
1
No. 8-27
Ka = X B
Kb = X xor A
Z=B
No. 8-28
00
S0
11
S3
H.Z
X
1
S1
01
S2
10
H.Z
0
No. 8-29
DA
D
C
Q
R Q
\A
X
\A
\X
J
Q
C
KR Q
\Reset
A
X
B
\B
\Reset
DA
\X
B
Z
\X
X
A
100
Note glitches
in Z!
Clk
A
Outputs valid at
following falling
clock edge
B
Z
\Reset
Reset
AB =00
Z =0
X =1
AB =00
Z =0
X =0
AB =00
Z =0
X =1
AB =01
Z =0
X =0
AB =11
Z=1
A B
0 0
Partially completed
state transition table
based on the signal
trace
0 1
1 0
1 1
X
0
1
0
1
0
1
0
1
X =1
AB =10
Z =1
A+
0
0
?
1
?
0
1
?
X =1
AB =01
Z =0
B+
1
0
?
1
?
1
0
?
Z
0
0
?
0
?
1
1
?
No. 8-31
= AX + B X
A+
B+
Z
No. 8-32
S0
H. Z
00
0
X
0
S1
10
S2
H. Z
X
1
S3
01
11
H.Z
X
0
Clock
Xi
Inputs
Zk
Outputs
Combinational
Logic for
Outputs and
Next State
State Register
Clock
state
feedback
No. 8-35
No. 8-36
Outputs 1
Loops in State
No. 8-37
No. 8-38
No. 8-39
No. 8-40
No. 8-41
Current State
000
001
010
110
111
101
110
No. 8-42
S0
S1
S2
000
001
H.Z 0
1
010
H.Z 1
S3
011
H.Z 1
H.Z 0
0
1
1
S6
110
S4
H.Z 2
H.Z 1
S7
111
H.Z 2
H.Z 1
H.Z 0
0
100
H.Z 2
0
S5
101
H.Z 2
H.Z 0
1
0
No. 8-43
No. 8-44
HL
FL
Highway
Highway
HL
FL
C
Farmroad
No. 8-45
Description
place FSM in initial state
detect vehicle on farmroad
short time interval expired
long time interval expired
Output Signal
HG, HY, HR
FG, FY, FR
ST
Description
assert green/yellow/red highway lights
assert green/yellow/red farmroad lights
start timing a short or long interval
Description
Highway green (farmroad red)
Highway yellow (farmroad red)
Farmroad green (highway red)
Farmroad yellow (highway red)
No. 8-46
S0
S3
H.HG
H.FR
H.HR
H.FY
S1
H.HY
H.FR
S2
H.HR
H.FG
No. 8-47
S0
H.HG
H.FR
0
H.HG
H.FR
0
TL
C TL
TL C
1
0
1
H.ST
1
H.ST
S1
H.HY
H.FR
S1
H.HY
H.FR
S1
H.HY
H.FR
0
TS
H.ST
S2
H.HR
H.FG
No. 8-49
S0
H.HG
H.FR
0
H.ST
1
TL C
S3
H.HR
H.FY
TS
1
H.ST
S1
H.HY
H.FR
0
TS
H.ST
H.ST
S2
H.HR
H.FG
0
TL + C
1
TS/ST
S1: HY
TS
S1
S2: FG
S3
TS
TS/ST
S2
S0: HG
S3: FY
TL + C/ST
TL C
Operator Data
ENTER
UNLOCK
KEY-IN
Combination
Lock FSM
Internal
Combination
Inputs:
Reset
Enter
Key-In
L0, L1, L2
ERROR
L0
L1
L2
Outputs:
Unlock
Error
No. 8-53
Reset
0
Enter
COMP0
KI = L0
Y
No. 8-54
IDLE1
Path to unlock:
KI = L 0
COMP2
IDLE0
Enter
Wait for
Enter Key press
Enter
COMP1
KI = L2
DONE
H.Unlock
Compare Key-IN
KI = L1
Y
Reset
1
START
No. 8-55
ERROR3
IDLE1'
H.Error
0
Enter
ERROR1
Enter
ERROR2
Reset
START
Reset + Enter
Reset
Start
Reset Enter
Com p0
KI = L0
KI L0
Enter
Enter
Idle0
Idle0'
Enter
Enter
Com p1
KI = L1
Enter
Error1
KI L1
Enter
Idle1
Idle1'
Enter
Enter
Com p2
KI = L2
Reset
Done
[Unlock]
Reset
Start
Error2
KI L2
Error3
[Error]
Reset
Reset
Start
No. 8-57
Chapter Review
Basic Timing Behavior an FSM
when are inputs sampled, next state/outputs transition and stabilize
Moore and Mealy (Async and Sync) machine organizations
outputs = F(state) vs. outputs = F(state, inputs)
First Two Steps of the Six Step Procedure for FSM Design
understanding the problem
abstract representation of the FSM
Abstract Representations of an FSM
ASM Charts
Word Problems
understand I/O behavior; draw diagrams
enumerate states for the "goal"; expand with error conditions
reuse states whenever possible
No. 8-58