Electrical – One-hot machine transition table

state-machines

I began to study One-hot machines, and I want you to check my transition table, because I'm not sure if it is true. Below you will find:

  • state machine

  • transition table

  • Karnaugh map

First of all, I know that I can find next state by simply looking at state diagram, and next states will be:

Q0+ = q0*X' + q2*X

Q1+ = q1*X' + q0*X

Q2+ = q2*X' + q1*X

it is true?

If I do Karnaugh map for Q2+ for example, it won't work. I will have a different next state. But why? Karnaugh Map works fine if I'm working normally (without one-hot).

Karnaugh Map for state Q2+ will be Q2+ = X*Q2'*Q1*Q0' + X'*Q2*Q1'*Q0'
enter image description here

For Karnaugh map values, I did it like that:

  • check where Q2 has value 1
  • take code from X Q2 Q1 Q0
  • Q2 = 1 => X=1, Q2=0, Q1=1, Q0=0 => 1010 = 10
  • Q2 = 1 => X=0, Q2=1, Q1=0, Q0=0 => 0100 = 4

Best Answer

Karnaugh don't work here this way

It works, you just didnt plug the Don`t-care terms. In the k-map drawn; you assumed that when the inputs are 1010 or 0100 the output = 1, while any other value the output is forced to be equal to zero, but in fact none of the other values can exist in your FSM you need to use them as dont cares in order to reach the minimized form of your equation.

Using My python script here are two different scenarios

Scenario 1: i didn't provide the don`t care terms

enter image description here

Scenario 2: Added the don`t care terms

enter image description here

Both equations are true, but one of them is implemented with more number of transistors than the other, so you should always include the don`t care terms [if exisit] inside the K-map in order to reach the minimum form