# One-hot machine transition table

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'

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

Karnaugh don't work here this way

It works, you just didnt plug the Dont-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 dont care terms

Scenario 2: Added the dont care terms

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

• This is the answer that I've been waiting for ! Thank you !! Aug 31, 2016 at 18:45