State Graphs FSMs
State Graphs FSMs
FSMs
Z
00
Q1 Q0 N1 N0 Z
Z 0 0 0 1 1
11 01 0 1 1 0 0
1 0 1 1 0
1 1 0 0 1
10
INC Q1 Q0 N1 N0 Y 00
0 0 0 0 0 0 INC / Y INC
0 0 1 0 1 0
0 1 0 1 0 0
0 1 1 1 1 0 11 01 INC’
1 0 0 0 1 0 INC’
1 0 1 1 0 0 INC
1 1 0 1 1 0 INC
1 1 1 0 0 1 10
INC’
Mealy output is associated with an arc in SG
Complete
and
Conflict-free
00
INC INC
INC’ 11 01 INC’
INC
INC
10
What happens in state ’10’ when INC=0?
INC Q1 Q0 N1 N0
00 0 0 0 0 0
INC INC 0 0 1 0 1
0 1 1 1 1
1 0 0 0 1
INC’ 11 01 INC’ 1 0 1 1 0
1 1 0 1 1
1 1 1 0 0
INC
INC
10
There is a missing row in the TT as well…
• For a SG to be complete:
– Paths leaving each state must cover all cases
• To check:
– OR together conditions on all arcs leaving a
given state
– If result = ‘1’, state is complete
– If result ≠ ‘1’, state is incomplete
00
INC INC
INC’ 11 01 INC’
INC
INC
10
INC ≠ 1 INC + INC’ = 1
State 10 is not OK State 01 is OK
01
CLR INC
CLR CLR
CLR’ • INC’ 11 01 CLR’ • INC’
CLR
INC CLR’ • INC
10
CLR’ • INC’
ECE 238L 18 STATEGRAPHS/FSM © 2006
Page 14
Conflicts in State Graphs
• This SG has a conflict, can you find it?
CLR
CLR’ • INC’
00
CLR’ • INC CLR’ • INC
CLR CLR
CLR’ • INC’ 11 01 CLR’ • INC’
CLR
INC CLR’ • INC
10
What happens in state ’10’
when CLR=INC=‘1’?
CLR’ • INC’
ECE 238L 18 STATEGRAPHS/FSM © 2006
Page 15
Conflicts in State Graphs
• This SG has a conflict, can you find it?
CLR
CLR’ • INC’
00
CLR’ • INC CLR’ • INC
CLR CLR
CLR’ • INC’ 11 01 CLR’ • INC’
CLR
INC CLR’ • INC
10 One arc says to go to state 00,
another says to go to state 11
CLR’ • INC’
This is a conflict…
ECE 238L 18 STATEGRAPHS/FSM © 2006
Page 16
Conflicts in State Graphs
• The corresponding transition table has a
problem as well… CLR
CLR’ • INC’
00
CLR INC Q1 Q0 N1 N0 CLR’ • INC CLR’ • INC
0 0 0 0 0 0
0 0 0 1 0 1 CLR CLR
0 0 1 0 1 0 11 01 CLR’ • INC’
0 0 1 1 1 1
0 1 0 0 0 1 CLR’ • INC’ CLR
0 1 0 1 1 0 INC CLR’ • INC
1 - 1 0 0 0
- 1 1 0 1 1 10
0 1 1 1 0 0
1 - - - 0 0
CLR’ • INC’
CLR
INC CLR’ • INC
INC • CLR ≠ 0 10
These arcs not OK Remember – you must do
all pairs of arcs leaving
CLR’ • INC’ each state…
01
CLR INC
0000
1001 0001
1000
0010 Q0
Q1 7 Segment
0111 Q2 Decoder
0011
Q3
0110 0100
0101
Event 1
Event 1 Event 2
…
Output2 Output3
Output1
Event 2 Event 3
Finite
Inputs Outputs
Timers State Motors
Machine
Switches Display
S3 Z S1 Xin’
Xin
Xin
S2 Xin’ What does this machine do?
It is a sequence detector.
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..0..
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..0..0..0..0..
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..0..0..0..0..1..
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..0..0..0..0..1..1
S3 Z S1 Xin’
Xin
Xin SUCCESS! Raise the Z output
S2 Xin’
S0
Xin’
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
S0
Xin’ 1..1..1..1..1..0..0..0..0..1..0..
S3 Z S1 Xin’
Xin
Xin
S2 Xin’
Xin CS NS Z Xin Q1 Q0 N1 N0 Z
0 S0 S1 0 0 0 0 0 1 0
1 S0 S0 0 1 0 0 0 0 0
0 S1 S1 0 S0 = 00 0 0 1 0 1 0
1 S1 S2 0 S1 = 01 1 0 1 1 0 0
0 S2 S1 0 S2 = 10 0 1 0 0 1 0
1 S2 S3 0 S3 = 11 1 1 0 1 1 0
- S3 S3 1 - 1 1 1 1 1
Q1 Z
Q0
Q1 N1 Q1
D Q
Xin
Xin
Q0
CLK
Xin’ N0 Q0
D Q
Q1
CLK
ECE 238L 18 STATEGRAPHS/FSM © 2006
Page 41
A Problem With the Sequence Detector
1 0 1 0 0 1 1 1 1
S0
Xin Xin’
Xin’
Z S3 S1 Xin’
Xin
Xin
S2 Xin’
1 0 0 0 0 1 1 1 0 1 1 0 0
Xin’
S3 S1 Xin’
Xin
Xin / Y
S2 Xin’
0 1 1 1 0 1 1 1
Y
• A characteristic ofMealy
machines is they often require Xin
Xin
S2 Xin’
S_IDLE
TOKEN
Clear timer…
S_TOKEN CLRT
TDONE
TDONE’
Q0 N1 Q1
D Q
Q1
TDONE’
CLK
CLRT
TOKEN
N0
Q1’ D Q Q0
Q0’
CLK
S_IDLE CLRT
TDONE TOKEN
TOKEN TDONE CS NS CLRT SPRAY
0 - S_IDLE S_IDLE 1 0
1 - S_IDLE S_SPRAY 1 0
SPRAY S_SPRAY - 0 S_SPRAY S_SPRAY 0 1
- 1 S_SPRAY S_IDLE 0 1
TDONE’
NS = CS’•TOKEN + CS•TDONE’
CLRT = CS’
SPRAY = CS
CS
CS’
NS SPRAY
TOKEN D Q
CS
TDONE’ CLRT
CLK
• Customer:
– Inserts 1 token and pushes START for Regular
– Inserts 2 tokens for Deluxe
TOKEN’ • START’
CLRT1 S1
T1DONE’ S4 SPRAY
SPRAY, CLRT2 T1DONE’
S2
T2DONE
T1DONE
S3 SOAP, CLRT1 Creativity in FSM design
is designing the initial
state graph…
T2DONE’ 18 STATEGRAPHS/FSM © 2006
ECE 238L
Page 56
Enhancements to Fancy Controller
T1DONE’ S4 SPRAY
SPRAY, CLRT2 T1DONE’
S2
T2DONE
T1DONE
S3 SOAP, CLRT1 Let’s add an ACCEPTCOIN output
to control when coinbox will
accept tokens…
T2DONE’ 18 STATEGRAPHS/FSM © 2006
ECE 238L
Page 58
TOKEN’
If customer pushes START at
precisely the same time as he
inserts another TOKEN, the
S0 ACCEPTCOIN FSM will take the token, but
T1DONE deliver a Regular Wash.
TOKEN
ACCEPTCOIN TOKEN’ • START’
CLRT1 S1
T1DONE’ S4 SPRAY
SPRAY, CLRT2 T1DONE’
S2
T2DONE
T1DONE
S3 SOAP, CLRT1 That is, START has
precedence over TOKEN
START•TOKEN’ TOKEN
T1DONE’ S4 SPRAY
SPRAY, CLRT2 T1DONE’
S2
T2DONE
T1DONE
S3 SOAP, CLRT1
D
LOCKED/ CLRCNTR
PUSHED•9/ UNLOCK
PUSHED’
PUSHED’
PUSHED•7’/ PUSHED•8’/
WAITDONE/ INC
CLRCNTR INC
PUSHED•9’/
ECNT3’ INC
F E ERROR
ECNT3/ CLRTIMER
WAITDONE’
PUSHED’
PUSHED•8
PUSHED’ A
Start
PUSHED•7
B C
WAITDONE/ PUSHED•7’/ PUSHED•8’/
INC INC
CLRCNTR PUSHED•9’/
ECNT3’ INC
WAITDONE’ F E ERROR
ECNT3/ CLRTIMER
PUSHED 7 8 9 ECNT3 WAITDONE LOCKED STATE NEXTSTATE INC ERROR CLRCNTR CLRTIMER UNLOCK
0 - - - - - - A A 0 0 0 - 0
1 0 - - - - - A E 1 0 0 - 0
1 1 - - - - - A B 0 0 0 - 0
0 - - - - - - B B 0 0 0 - 0
1 - 0 - - - - B E 1 0 0 - 0
1 - 1 - - - - B C 0 0 0 - 0
0 - - - - - - C C 0 0 0 - 0
1 - - 0 - - - C E 1 0 0 - 0
1 - - 1 - - - C D 0 0 - - 1
- - - - - - 0 D D - 0 - - 0
- - - - - - 1 D A 0 0 1 - 0
- - - - 0 - - E A 0 1 0 - 0
- - - - 1 - - E F - 1 0 1 0
- - - - - 0 - F F - 0 0 0 0
- - - - - 1 - F A 0 0 1 0 0
ECE 238L 18 STATEGRAPHS/FSM © 2006
Page 66
Now let’s expand State A
PUSHED 7 8 9 ECNT3 WAITDONE LOCKED STATE NEXTSTATE INC ERROR CLRCNTR CLRTIMER UNLOCK
0 0 0 0 0 0 0 A A 0 0 0 - 0
0 0 0 0 0 0 1 A A 0 0 0 - 0
0 0 0 0 0 1 0 A A 0 0 0 - 0
0 0 0 0 0 1 1 A A 0 0 0 - 0
0 0 0 0 1 0 0 A A 0 0 0 - 0
0 0 0 0 1 0 1 A A 0 0 0 - 0
0 0 0 0 1 1 0 A A 0 0 0 - 0
0 0 0 0 1 1 1 A A 0 0 0 - 0
0 0 0 1 0 0 0 A A 0 0 0 - 0
0 0 0 1 0 0 1 A A 0 0 0 - 0
0 0 0 1 0 1 0 A A 0 0 0 - 0
0 0 0 1 0 1 1 A A 0 0 0 - 0
0 0 0 1 1 0 0 A A 0 0 0 - 0
0 0 0 1 1 0 1 A A 0 0 0 - 0
0 0 0 1 1 1 0 A A 0 0 0 - 0
…