I would say, that the K-map is ok as a draft, but I would suggest making each of the output variables (the "new" Q_1
and Q_0
in the next step of the state diagram) their own K-map.
That way you can minimize the function separately for each of them.
I have filled the truth table this way:
+-----------------++-----------+
input variables || next state
+-----+-----+-----++-----+-----+
| Q_1 | Q_0 | x || Y_1 | Y_0 |
+-----+-----+-----++-----+-----+
| 0 | 0 | 0 || 0 | 1 |
| 0 | 0 | 1 || 0 | 0 |
| 0 | 1 | 0 || 0 | 0 |
| 0 | 1 | 1 || 1 | 1 |
+-----+-----+-----++-----+-----+
| 1 | 0 | 0 || X | X |
| 1 | 0 | 1 || X | X |
| 1 | 1 | 0 || 0 | 0 |
| 1 | 1 | 1 || 1 | 1 |
+-----+-----+-----++-----+-----+
And the output functions determining the next state (Y_1
as the "new" next Q_1
, Y_0
as the "new" next Q_0
) are:

The indexes in the Karnaugh maps correspond with the rows of the truth table because of the order of the variables.
Also take notice, that I used the 'dont-care' X output (for 10
state) to advantage in minimization of the second function (Q_0
).
The machine should (theoretically) never go to the 'dont-care' state, therefore you should not worry about using it in the function.
Without circling the X
the Y_0
function would be longer: Y_0 = ¬x·¬Q_1·¬Q_0 + x·Q_0
. With the X
it is only: Y_0 = ¬x·¬Q_0 + x·Q_0
.
If it seem unclear to you, do not hesitate to ask in a comment, please.