# Designing a Moore Machine

For a class project, I am required to design a Moore Machine based on a problem that we were given. I have already done this with a Mealy Machine, but I am encountering errors with the Moore Machine. Specifically, my design won't "stick" to a state when it's supposed to. For example, when the input is 1,0 and it is in State1, and I toggle the clock but keep the input the same, it does not stay in State1. Referring to the state diagram may help you better understand what I am talking about.

As you can see, my design needs to have 2 inputs. The input 0,1 is not valid for my design. The number in parentheses is the output for each state.

Here is my state transition table and karnaugh maps. The inputs are in the form (P,N), I forgot to add. Also, the input 0,1 is meaningless in my design.

Based on those, I got the equations

D2 = (N' * q2' * q1' * q0) + (P * N * q2 * q0') + (P * q2' * q1' * q0)

D1 = (P * N * q2' * q0') + (N' * q2 * q0')

D0 = P * N' * q0'

I'm afraid that my equations may be incorrect, I actually have no idea how to solve 5 variable K Maps (and we're not expected to for this class), so I used a program to solve them instead.

Using these equations, I tried to simulate it using LogicWorks. This is where I encountered the problem above. In certain situations it works, but it really doesn't work when I am trying to make it stay in a state. Any help?

• It seems quite likely that those equations are incorrect. Take a look at the D0 equation. One of the terms of D0 is q0'. Based on this equation it is never possible for D0 to be 1 if q0 is 1, but yet you're asserting that the state machine is allowed to stay in state1 based on the inputs. I'd suggest to recheck your equations again.
– Tim
Commented Apr 9, 2013 at 6:23
• And if you're interested in doing so solving a 5-term karnaugh map isn't terribly difficult, you just have to imagine it as 2 4-term karnaugh maps stacked on top of each other, where you can draw '3d cubes' around terms just like how you would draw 'squares' around terms on a flat k-map.
– Tim
Commented Apr 9, 2013 at 6:27
• Thank you, I didn't recognize that in my equation. I will try to manually check them. Hopefully the problem is something as easy as that.
– Bill
Commented Apr 9, 2013 at 6:32