# Moore and Mealy Machines: An Informative Guide(2021)

**Introduction **

Each transformation can have an output in a finite automaton. There are two types of output-generating finite state machines and those are:

**Mealy Machine****Moore machine**

Let us discuss Moore and mealy machine with Moore and mealy machine examples.

In this article let us look at:

**Moore Machines****Mealy Machines****Conversion from Mealy to Moore Machine****Conversion from Moore machine to mealy machine****Difference between moore and mealy machine**

## 1. **Moore Machines**

Moore’s machine is a finite state machine (FSM) whose outputs are solely dependent on the current state. Let us define as (Q, q0, ∑, O, δ, λ) where:

- Q = finite set of states.
- q0 = initial state.
- ∑ = input alphabet.
- O = output alphabet.
- δ = transition function that maps Q×∑ → Q.
- λ = output function that maps Q → O.

In fig. 1, the output of the Moore machine is represented by /, which distinguishes each input state. A Moore machine** **output is one length longer than its input.

11 inputs

(q0,11)=> (q2,1)=>q2 Transition

Result: 000

## 2. **Mealy Machines**

Mealy machines are FSM with an output value that is determined by the current state and input symbol. It can be written as (Q, q0, ∑, O, δ, λ’), where:

- Q = finite set of states.
- q0 = initial state.
- ∑ = input alphabet.
- O = output alphabet.
- δ = transition function that maps Q×∑ → Q.
- ‘λ’ = output function that maps Q×∑→ O.

The output of the mealy machine depicted in Figure 1 is represented by each input symbol. The output length of a mealy machine is the same as the input length.

Input: 11

Transition: δ (q0, 11)=> δ(q2,1)=>q2

Output: 00

## 3. **Conversion from Mealy to Moore Machine**

Take a look at Figure 2 for a mealy system transformation chart. This will make a clear understanding of mealy to Moore conversion.

Input=0 | Input=1 | |||

Present State | Next State | Output | Next State | Output |

q0 | q1 | 0 | q2 | 0 |

q1 | q1 | 0 | q2 | 1 |

q2 | q1 | 1 | q2 | 0 |

**Table – 1**

Step 1: Identify the states that have multiple outputs associated with them. The states q1 and q2 have all outputs and 0, 1 is associated with them.

Step 2: For each of these states, create two states. Q10 (output 0 state) and q11 (output 1 state) will be the two states for q1 (output 1 state). Similarly, q2 will have two states: q20 and q21.

Step 3: Generate a new state for an empty Moore machine. The output of a **Moore state diagram**** **will be associated with each state, regardless of the inputs.

Step 4: Using the transition table in Table 1, fill in the entries for the next state. The next state for q0 on input 0 is q10. Similarly, the next state for q0 on input 1 is q20. On input 0, the next state for q1 is q10. Similarly, the next state for q1 is q21. The output for q10 will be 0 and for q11, it will be 1.

Input=0 | Input=1 | ||

Present State | Next State | Next State | Output |

q0 | q10 | q20 | 0 |

q10 | q10 | q21 | 0 |

q11 | q10 | q21 | 1 |

q20 | q11 | q20 | 0 |

q21 | q11 | q20 | 1 |

**Table – 2**

## 4. **Conversion from Moore machine to mealy machine**

Step 1: Let us assemble all of the Moore machine states using all an empty mealy machine(in Table 4).

Input=0 | Input=1 | |||

Present State | Next State | Output | Next State | Output |

q0 | ||||

q10 | ||||

q11 | ||||

q20 | ||||

q21 |

**Table – 3**

Step 2: From the Moore Machine Transition Table, you will find the next state for each state as follows:

Input=0 | Input=1 | |||

Present State | Next State | Output | Next State | Output |

q0 | q10 | q20 | ||

q10 | q10 | q21 | ||

q11 | q10 | q21 | ||

q20 | q11 | q20 | ||

q21 | q11 | q20 |

**Table – 4**

Step 3: In the Moore machine transition table, we can see that each input corresponds to an output. Fill in the Output entries with this. For Moore machine example, the output for q11, q20, q10 and q21 is 0, 1, 0, and 1, respectively.

Input=0 | Input=1 | |||

Present State | Next State | Output | Next State | Output |

q0 | q10 | 0 | q20 | 0 |

q10 | q10 | 0 | q21 | 1 |

q11 | q10 | 0 | q21 | 1 |

q20 | q11 | 1 | q20 | 0 |

q21 | q11 | 1 | q20 | 0 |

**Table – 5**

Step 4: As can be seen in table 6, q10 and q11 are very similar. Similarly, q20 and q21 have a lot in common. As a result, q11 and q21 can be ruled out.

Input=0 | Input=1 | |||

Present State | Next State | Output | Next State | Output |

q0 | q10 | 0 | q20 | 0 |

q10 | q10 | 0 | q21 | 1 |

q20 | q11 | 1 | q20 | 0 |

**Table – 6**

## 5. **Difference between moore and mealy machine**

The points that distinguish between a moore and mealy machine are highlighted in the table below.

Mealy Machine | Moore Machine |

The output is determined by both the current state and the current input. | The output solely determined by the current state. |

It has fewer states than the Moore Machine | It has a larger number of states than Mealy Machine. |

When the input logic on the current state is completed, the value of the output function is a function of the transitions and modifications. | When state changes occur, the output function’s value is a function of the current state and the changes at the clock edges. |

Mealy machines respond to inputs more quickly. They all tend to respond in the same way. | More logic is needed to decode the outputs in the Moore model, resulting in longer circuit delays. They usually respond after one clock cycle. |

**Conclusion**

Hope this article has given a clear idea about the moore and mealy machine and the application of Moore and mealy machine.

There are no right or wrong ways of learning AI and ML technologies – the more, the better! These valuable resources can be the starting point for your journey on how to learn Artificial Intelligence and Machine Learning. Do pursuing AI and ML interest you? If you want to step into the world of emerging tech, you can accelerate your career with this **Machine Learning And AI Courses **by Jigsaw Academy.