Home
Unlabelled
Melay and Moore machine in brief with example and diffrences
Melay and Moore machine in brief with example and diffrences
What is Moore and Mealy Machines?
Finite automata generate outputs related to each act. While two types of finite state machines creates output −
- Mealy Machine
- Moore machine
Mealy Machine
A Mealy Machine is considered as an FSM, the output will be based on the present state and the present input.
Mealy machine is explained as a 6 tuple (Q, ∑, O, δ, X, q0) where −
- Q is a finite set of states.
- ∑ is a finite set of symbols called the input alphabet.
- O is a finite set of symbols called the output alphabet.
- δ is the input transition function where δ: Q × ∑ → Q
- X is the output transition function where X: Q × ∑ → O
- q0 is the initial state from where any input is processed (q0 ∈ Q).
The state table of a Mealy Machine is mentioned below −
Present state | Next state | |||
---|---|---|---|---|
input = 0 | input = 1 | |||
State | Output | State | Output | |
→ a | b | x1 | c | x1 |
b | b | x2 | d | x3 |
c | d | x3 | c | x1 |
d | d | x3 | d | x2 |
The state diagram of the above Mealy Machine is −
Moore Machine
Moore machine is also considered as an FSM and the outputs depend on the present state.
A Moore machine is also explained by a 6 tuple (Q, ∑, O, δ, X, q0) where −
- Q is a finite set of states.
- ∑ is a finite set of symbols called the input alphabet.
- O is a finite set of symbols called the output alphabet.
- δ is the input transition function where δ: Q × ∑ → Q
- X is the output transition function where X: Q → O
- q0 is the initial state from where any input is processed (q0 ∈ Q).
The state table of a Moore Machine is shown below −
Present state | Next State | Output | |
---|---|---|---|
Input = 0 | Input = 1 | ||
→ a | b | c | x2 |
b | b | d | x1 |
c | c | d | x2 |
d | d | d | x3 |
The state diagram of the above Moore Machine is −
Mealy Machine vs. Moore Machine
Let’s see the below table which highlights the points that creates a difference between a Mealy Machine and Moore Machine.
Mealy Machine | Moore Machine |
---|---|
Output depends both upon present state and present input. | Output depends only upon the present state. |
Generally, it has fewer states than Moore Machine. | Generally, it has more states than Mealy Machine. |
Output changes at the clock edges. | Input change can cause change in output change as soon as logic is done. |
Mealy machines react faster to inputs | In Moore machines, more logic is needed to decode the outputs since it has more circuit delays. |
Mealy MachineMoore Machine
Output depends both upon present state and present input.Output depends only upon the present state.
Generally, it has fewer states than Moore Machine.Generally, it has more states than Mealy Machine.
Output changes at the clock edges.Input change can cause change in output change as soon as logic is done.
Mealy machines react faster to inputsIn Moore machines, more logic is needed to decode the outputs since it has more circuit delays.
Moore Machine to Mealy Machine
Algorithm 4
Input − Moore Machine
Output − Mealy Machine
Step 1 − Take a blank Mealy Machine transition table format.
Step 2 − Copy all the Moore Machine transition states into this table format.
Step 3 – Now check the present states and their corresponding outputs in the Moore Machine state table; if for a state Qi output is m, copy it into the output columns of the Mealy Machine state table wherever Qi appears in the next state.
Example
Let’s see the following Moore machine −
Present State | Next State | Output | |
---|---|---|---|
a = 0 | a = 1 | ||
→ a | d | b | 1 |
b | a | d | 0 |
c | c | c | 0 |
d | b | a | 1 |
Now we apply Algorithm 4 to convert it to Mealy Machine.
Step 1 & 2 −
Present State | Next State | |||
---|---|---|---|---|
a = 0 | a = 1 | |||
State | Output | State | Output | |
→ a | d | b | ||
b | a | d | ||
c | c | c | ||
d | b | a |
Step 3 −
Present State | Next State | |||
---|---|---|---|---|
a = 0 | a = 1 | |||
State | Output | State | Output | |
=> a | d | 1 | b | 0 |
b | a | 1 | d | 1 |
c | c | 0 | c | 0 |
d | b | 0 | a | 1 |
Mealy Machine to Moore Machine
Algorithm 5
Input − Mealy Machine
Output − Moore Machine
Step 1 – Here measure the number of different outputs for each state (Qi) that are available in the state table of the Mealy machine.
Step 2 – Incase if all the outputs of Qi are same, copy state Qi. If it has n distinct outputs, break Qi into n states as Qin where n = 0, 1, 2.......
Step 3 − If the output of the initial state is 1, insert a new initial state at the beginning which gives 0 output.
Example
Let’s see the following Mealy Machine −
Present State | Next State | |||
---|---|---|---|---|
a = 0 | a = 1 | |||
Next State | Output | Next State | Output | |
→ a | d | 0 | b | 1 |
b | a | 1 | d | 0 |
c | c | 1 | c | 0 |
d | b | 0 | a | 1 |
While the states ‘a’ and ‘d’ provide only 1 and 0 outputs respectively, so we creates states ‘a’ and ‘d’. But states ‘b’ and ‘c’ delivers different outputs (1 and 0). So, we divide b into b0, b1 and cinto c0, c1.
Present State | Next State | Output | |
---|---|---|---|
a = 0 | a = 1 | ||
→ a | d | b1 | 1 |
b0 | a | d | 0 |
b1 | a | d | 1 |
c0 | c1 | C0 | 0 |
c1 | c1 | C0 | 1 |
d | b0 | a | 0 |
Melay and Moore machine in brief with example and diffrences
Reviewed by Madhav Mohan
on
March 09, 2019
Rating: 5
No comments: