One-Hot Encoded Finite State Machines

One-Hot Encoded
Finite State Machines
ECE 238L
19 Ohehot
Page 1
© 2006
Example State Machine
InA InB
InA’
A
0
1
0
1
-
InA’
InA
D
Z
0
1
-
InA
InB
InB’
Z
NS Z
A
A
B
B
C
C
D
A
B
A
C
C
D
A
0
0
1
1
1
1
0
B
InA InB
C
CS
State A = 00
State B = 01
State C = 10
State D = 11
ECE 238L
0
1
0
1
-
0
1
-
CS
NS Z
00
00
01
01
10
10
11
00
01
00
10
10
11
00
19 Ohehot
Page 2
0
0
1
1
1
1
0
© 2006
Example Machine Implementation
Q1
Q0’
N1
Q1’
Q0
InA
Q1
Q0’
InB
Q1’
Q0’
InA
D Q
Q1
N1 = Q1•Q0’ + Q1’•Q0•InA
N0 = Q1•Q0’•InB + Q1’•Q0’•InA
Z = Q1’•Q0 + Q1•Q0’
CLK
N0
D Q
Q0
9 gates
21 gate inputs
CLK
Q1’
Q0
Z
Q1
Q0’
ECE 238L
19 Ohehot
Page 3
© 2006
Choose a Different Encoding
• A=1000, B=0100, C=0010, D=0001
InA InB
0
1
0
1
-
0
1
-
CS
1000
1000
0100
0100
0010
0010
0001
NS Z
1000
0100
1000
0010
0010
0001
1000
InA InB
0
0
1
1
1
1
0
0
1
0
1
-
This is called a one-hot encoding.
Only one state bit is on at a time
ECE 238L
0
1
-
CS
NS
Z
1--1---1--1---1--1---1
1000
0100
1000
0010
0010
0001
1000
0
0
1
1
1
1
0
Because of the state encodings,
there are many illegal states.
This TT with all these input
don’t cares is the result
19 Ohehot
Page 4
© 2006
One-Hot Encoding Results
• Will require 4 flip flops
– One per state
– Call the current state bits A, B, C, and D
– Call the next state bits NA, NB, NC, and ND
InA’
A
By inspection we see:
InA’
InA
NA = A•InA’ + B•InA’ + D
NB = A•InA
NC = B•InA + C•InB’
ND = C•InB
Z=B+C
D
InB
Z
B
InA
C
Z
InB’
ECE 238L
19 Ohehot
Page 5
© 2006
One-Hot Implementation
A
B
InA’
B
N_A
InA’
D Q
N_C
InA
A
C
D Q
C
InB’
D
CLK
A
N_B
InA
D Q
CLK
CLK
N_D
C
B
D Q
InB
B
Z
CLK
C
9 gates
19 gate inputs
ECE 238L
19 Ohehot
Page 6
© 2006
D
One-Hot - Observations
• Choosing a one-hot encoding results in many,
many don’t cares in transition table
• Minimization results in simpler IFL and OFL
• Can do one-hot design by inspection
– without using transition tables…
ECE 238L
19 Ohehot
Page 7
© 2006
Another One-Hot Example
x’
A
x
y’z
B
y’z’
State Encoding
A
100
B
010
C
001
y
C
ECE 238L
19 Ohehot
Page 8
© 2006
State Encoding and Structure
State Encoding
A
100
B
010
C
001
NA
D Q
A
NB
D Q
B
NC
D Q
C
ECE 238L
With one-hot encoding, each
state has its own flip flop.
Note: ‘A’ is the name of a
state. It is also the name of
the wire coming out from
the flip flop for state ‘A’.
The same holds true for
states ‘B’ and ‘C’
19 Ohehot
Page 9
© 2006
One-Hot Encodings By Inspection
When is A the next state?
x’
Look at the arcs entering state A
A
x
y’z
B
y’z’
NA = A•x’ + B•y’z + C
y
C
ECE 238L
19 Ohehot
Page 10
© 2006
One-Hot Encodings By Inspection
When is A the next state?
x’
Look at the arcs entering state A
A
x
y’z
B
y’z’
NA = A•x’ + B•y’z + C
y
C
ECE 238L
19 Ohehot
Page 11
© 2006
One-Hot Encodings By Inspection
When is A the next state?
x’
Look at the arcs entering state A
A
x
y’z
B
y’z’
NA = A•x’ + B•y’z + C
y
C
ECE 238L
19 Ohehot
Page 12
© 2006
One-Hot Encodings By Inspection
When is A the next state?
x’
Look at the arcs entering state A
A
x
y’z
B
y’z’
NA = A•x’ + B•y’z + C
y
C
Similar reasoning leads to:
NB = A•x + B•y’z’
NC = B•y
ECE 238L
19 Ohehot
Page 13
© 2006
The Key Lock Problem – One-Hot Version
There will be 6 flip flops
One for each state
ECE 238L
19 Ohehot
Page 14
© 2006
Key Lock Input Forming Logic
ECE 238L
19 Ohehot
Page 15
© 2006
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’ E)
+ (WAITDONE F)
+ (LOCKED D)
ECE 238L
19 Ohehot
Page 16
© 2006
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’ E)
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED 7 A)
ECE 238L
19 Ohehot
Page 17
© 2006
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’ E)
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED 7 A)
C+ = (PUSHED’ C)+(PUSHED 8 B)
ECE 238L
19 Ohehot
Page 18
© 2006
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED
C+ = (PUSHED’ C)+(PUSHED
D+ = (LOCKED’ D)+(PUSHED
ECE 238L
19 Ohehot
Page 19
© 2006
E)
7 A)
8 B)
9 C)
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED
C+ = (PUSHED’ C)+(PUSHED
D+ = (LOCKED’ D)+(PUSHED
E+ = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
ECE 238L
19 Ohehot
Page 20
© 2006
E)
7 A)
8 B)
9 C)
Key Lock Input Forming Logic
A+ = (PUSHED’ A) + (ECNT3’
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED
C+ = (PUSHED’ C)+(PUSHED
D+ = (LOCKED’ D)+(PUSHED
E+ = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
F+ = (ECNT3 E)
+ (WAITDONE’ F)
ECE 238L
19 Ohehot
Page 21
© 2006
E)
7 A)
8 B)
9 C)
Key Lock Output Forming Logic
ERROR = E
ECE 238L
19 Ohehot
Page 22
© 2006
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
ECE 238L
19 Ohehot
Page 23
© 2006
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
CLRTIMER = ECNT3 E
ECE 238L
19 Ohehot
Page 24
© 2006
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
CLRTIMER = ECNT3 E
CLRCNTR = (WAITDONE F)
+ ((LOCKED D)
ECE 238L
19 Ohehot
Page 25
© 2006
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
CLRTIMER = ECNT3 E
CLRCNTR = (WAITDONE F)
+ ((LOCKED D)
UNLOCK = (PUSHED 9 C)
ECE 238L
19 Ohehot
Page 26
© 2006
Other State Encoding Techniques
• You have learned the 2 extremes
– Fully encoded (8 states Ù 3 state bits)
– One-hot encoded (8 states Ù 8 state bits)
• A range of options exist in between
• A good choice of encoding
– Can minimize IFL and OFL complexity
– Algorithms have been developed for this…
– Beyond the scope of this class
ECE 238L
19 Ohehot
Page 27
© 2006