From a discrete logic & HDL perspective:
-Mealy machines (generally) have less states. Mealy machines change their output based on their current input and present state, rather than just the present state. However, less states doesn't always mean simpler to implement.
-Moore machines may be safer to use, because they change states on the clock edge (if you are using DFF logic for present and next state), whereas Mealy machines are faster, because the state is dependent on the input. Thus, the state can change asynchronously. This comes down to predictability vs raw speed.
When it comes down to it, it's difficult to draw hard lines where one machine would always be better than the other.
It really comes down to the specific task at hand. Does one want to have a synchronous or asynchronous machine? Is speed paramount? Will there be potential unstable (bouncing) signals? Are both the inputs and present state readily available? The answer to each of these questions determines the type of machine that would work best.
It's worth mentioning that for a hardware implementation, Mealy machines require less hardware in their circuits, but when working with an HDL and RTL scenario, the actual amount of discrete hardware may not be terribly important.
First of all, that's a terrible diagram that you want us to analyze — it's essentially unreadable.
The key difference between Moore and Mealy is that in a Moore state machine, the outputs depend only on the current state, while in a Mealy state machine, the outputs can also be affected directly by the inputs.
In your design, the state is embodied by the three flip-flops at the bottom, while the inputs are represented by the two switches. The outputs are the varioius LEDs at the top.
It's clear that both switches directly influence the outputs, so you have a Mealy machine.
In practice, the difference between Moore and Mealy in most situations is not very important. However, when you're trying to optimize the design in certain ways, it sometimes is. Generally speaking, a Mealy machine can have fewer state variables than the corresponding Moore machine, which will save physical resources on a chip. This can be important in low-power designs. On the other hand, a Moore machine will typically have shorter logic paths between flip-flops (total combinatorial gate delays), which will allow it to run at a higher clock speed than the corresponding Mealy machine.
Best Answer
Moore to Mealy conversion is easy. Here are the steps:
Note that for the for start state S(0), the procedure remains nearly the same except that O(0) will be assigned on reset. Also, the number of states remain unchanged in moore to mealy conversion.
Mealy to Moore conversion is much more complicated. It is basically the reverse process except that sometimes a state needs to be split(or copied) when there is a conflict of distinct outputs on the transitions coming into that state. The distinct outputs on the incoming edges are then assigned to the respective copy of the state. Also, each copy retains all the original outgoing edges. This procedure is repeated for subsequent states until remaining states are handled. The number of states in resulting Moore machine is much higher than original mealy machine. There are specific algorithms used in EDA tools to do this.