One-Hot Encoded Finite State Machines. Page 1

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 - I...
Author: Janis Parker
190 downloads 2 Views 175KB Size
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