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
© Copyright 2026 Paperzz