You are on page 1of 27

One-Hot Encoded

Finite State Machines

ECE 238L 19 Ohehot © 2006


Page 1
Example State Machine
InA InB CS NS Z
InA’
0 - A A 0
1 - A B 0
0 - B A 1
A InA’ 1 - B C 1
InA - 0 C C 1
- 1 C D 1
- - D A 0
D Z
B
InA InB CS NS Z
InA 0 - 00 00 0
InB
1 - 00 01 0
C Z State A = 00 0 - 01 00 1
State B = 01 1 - 01 10 1
State C = 10 - 0 10 10 1
InB’ State D = 11 - 1 10 11 1
- - 11 00 0

ECE 238L 19 Ohehot © 2006


Page 2
Example Machine Implementation
Q1
Q0’ N1 Q1 N1 = Q1•Q0’ + Q1’•Q0•InA
D Q N0 = Q1•Q0’•InB + Q1’•Q0’•InA
Q1’
Q0 Z = Q1’•Q0 + Q1•Q0’
InA

CLK
Q1
Q0’
InB N0 Q0
D Q
Q1’ 9 gates
Q0’
InA 21 gate inputs

CLK
Q1’
Q0
Z
Q1
Q0’

ECE 238L 19 Ohehot © 2006


Page 3
Choose a Different Encoding

• A=1000, B=0100, C=0010, D=0001


InA InB CS NS Z InA InB CS NS Z
0 - 1000 1000 0 0 - 1--- 1000 0
1 - 1000 0100 0 1 - 1--- 0100 0
0 - 0100 1000 1 0 - -1-- 1000 1
1 - 0100 0010 1 1 - -1-- 0010 1
- 0 0010 0010 1 - 0 --1- 0010 1
- 1 0010 0001 1 - 1 --1- 0001 1
- - 0001 1000 0 - - ---1 1000 0

This is called a one-hot encoding. Because of the state encodings,


there are many illegal states.
Only one state bit is on at a time
This TT with all these input
don’t cares is the result
ECE 238L 19 Ohehot © 2006
Page 4
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’

By inspection we see: A InA’


InA
NA = A•InA’ + B•InA’ + D
NB = A•InA D Z
B
NC = B•InA + C•InB’
ND = C•InB InA
InB
Z=B+C C Z

InB’
ECE 238L 19 Ohehot © 2006
Page 5
One-Hot Implementation
A
InA’ B
B N_A A InA N_C C
D Q D Q
InA’ C

D InB’

CLK CLK
N_B N_D
A B C D
D Q D Q
InA InB

B Z
CLK CLK
C

9 gates
19 gate inputs

ECE 238L 19 Ohehot © 2006


Page 6
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 © 2006


Page 7
Another One-Hot Example

x’

A
x State Encoding
y’z
A 100
B y’z’
B 010
C 001
y

ECE 238L 19 Ohehot © 2006


Page 8
State Encoding and Structure

NA D Q A
With one-hot encoding, each
state has its own flip flop.
State Encoding
A 100 NB D Q B Note: ‘A’ is the name of a
B 010 state. It is also the name of
the wire coming out from
C 001
the flip flop for state ‘A’.
NC C
D Q The same holds true for
states ‘B’ and ‘C’

ECE 238L 19 Ohehot © 2006


Page 9
One-Hot Encodings By Inspection

x’ When is A the next state?

Look at the arcs entering state A


A
x
y’z

B y’z’
NA = A•x’ + B•y’z + C

ECE 238L 19 Ohehot © 2006


Page 10
One-Hot Encodings By Inspection

x’ When is A the next state?

Look at the arcs entering state A


A
x
y’z

B y’z’
NA = A•x’ + B•y’z + C

ECE 238L 19 Ohehot © 2006


Page 11
One-Hot Encodings By Inspection

x’ When is A the next state?

Look at the arcs entering state A


A
x
y’z

B y’z’
NA = A•x’ + B•y’z + C

ECE 238L 19 Ohehot © 2006


Page 12
One-Hot Encodings By Inspection

x’ When is A the next state?

Look at the arcs entering state A


A
x
y’z

B y’z’
NA = A•x’ + B•y’z + C

y
Similar reasoning leads to:
C NB = A•x + B•y’z’
NC = B•y

ECE 238L 19 Ohehot © 2006


Page 13
The Key Lock Problem – One-Hot Version

There will be 6 flip flops

One for each state

ECE 238L 19 Ohehot © 2006


Page 14
Key Lock Input Forming Logic

ECE 238L 19 Ohehot © 2006


Page 15
Key Lock Input Forming Logic

A+ = (PUSHED’ A) + (ECNT3’ E)
+ (WAITDONE F)
+ (LOCKED D)

ECE 238L 19 Ohehot © 2006


Page 16
Key Lock Input Forming Logic

A+ = (PUSHED’ A) + (ECNT3’ E)
+ (WAITDONE F)
+ (LOCKED D)
B+ = (PUSHED’ B)+(PUSHED 7 A)

ECE 238L 19 Ohehot © 2006


Page 17
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 © 2006


Page 18
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)
D+ = (LOCKED’ D)+(PUSHED 9 C)

ECE 238L 19 Ohehot © 2006


Page 19
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)
D+ = (LOCKED’ D)+(PUSHED 9 C)
E+ = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)

ECE 238L 19 Ohehot © 2006


Page 20
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)
D+ = (LOCKED’ D)+(PUSHED 9 C)
E+ = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
F+ = (ECNT3 E)
+ (WAITDONE’ F)

ECE 238L 19 Ohehot © 2006


Page 21
Key Lock Output Forming Logic

ERROR = E

ECE 238L 19 Ohehot © 2006


Page 22
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)

ECE 238L 19 Ohehot © 2006


Page 23
Key Lock Output Forming Logic
ERROR = E
INC = (PUSHED 7’ A)
+ (PUSHED 8’ B)
+ (PUSHED 9’ C)
CLRTIMER = ECNT3 E

ECE 238L 19 Ohehot © 2006


Page 24
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 © 2006


Page 25
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 © 2006


Page 26
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 © 2006
Page 27

You might also like