Mealy and Moore machine
Mealy machine :
- In Mealy machine. the value of output function is depend on the present state and present input.
- Mealy machine is described by 6-tuples - (Q, Σ, Δ, δ, λ, q0)
where
Q = Finite non-empty set of states;
Σ = Set of input alphabets.
Δ = Set of output alphabets.
δ = Transitional function mapping Q X Σ → Q
λ = Output function mapping Q X Σ → Δ
q0 = Initial state.
Sample Transition table:
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
-> q0
|
q3
|
0
|
q1
|
1
|
q1
|
q0
|
1
|
q3
|
0
|
q2
|
q2
|
1
|
q2
|
0
|
q3
|
q1
|
0
|
q0
|
1
|
Moore machine :
- In Moore machine. the value of output function is depend on the present state only.
- Moore machine is described by 6-tuples - (Q, Σ, Δ, δ, λ, q0)
where
Q = Finite non-empty set of states;
Σ = Set of input alphabets.
Δ = Set of output alphabets.
δ = Transition function mapping Q X Σ → Q
λ = Output function mapping Q → Δ
q0 = Initial state..
Sample Transition Table:
Output
|
|||
a = 0
|
a = 1
|
||
-> q0
|
q3
|
q1
|
1
|
q1
|
q0
|
q3
|
0
|
q2
|
q2
|
q2
|
0
|
q3
|
q1
|
q0
|
1
|
Conversion from Mealy machine to Moore machine:
Steps:
1.> Determine the number of different output associated with qi in the next state column.
2.> we split qi into different states according to different output associated with it. for ex. suppose in the next state column of the above sample transition table of mealy machine, the output associated with q1 is "0" in the first next state column and "1" in the second next state column. so we split q1 into q10 and q11 states. similarly check others and split them.
Example 1: consider the above sample transition table of the mealy machine. convert it into corresponding Moore machine.
Solution: After applying the conversion steps, we get two states ( q1 and q2) that are associated with different outputs (0 and 1). so we split both states into q10 , q11 and q20, q21.
Now the transition table becomes
Present
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
-> q0
|
q3
|
0
|
q1
|
1
|
q1
|
q0
|
1
|
q3
|
0
|
q1
|
q0
|
1
|
q3
|
0
|
q2
|
q2
|
1
|
q2
|
0
|
q2
|
q2
|
1
|
q2
|
0
|
q3
|
q1
|
0
|
q0
|
1
|
Here
- whole row of q1 is copied to q10 , q11 and whole row of q2 is copied to q20 and q21 of the sample transition table of mealy machine.
- The outputs of the next state columns of q1 and q2 are depend on the previous output. For ex. in the first row, q1 becomes q11 because the out of q1 is 1. in the fourth row, q2 becomes q21 because the output of the q2 is 1. and in the subsequent column q2 becomes q20 because the output of q2 in that column was 0. and so on
now in moore machine format, we copied all the states and common output because in moore machine. the outputs of the next state are common.
Output
|
|||
a = 0
|
a = 1
|
||
-> q0
|
q3
|
q1
|
1
|
q1
|
q0
|
q3
|
0
|
q1
|
q0
|
q3
|
1
|
q2
|
q2
|
q2
|
0
|
q2
|
q2
|
q2
|
1
|
q3
|
q1
|
q0
|
0
|
This table is moore machine table corresponding to the sample mealy machine.
Exercise : convert the following mealy machine to corresponding moore machine
Present
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
->q0
|
q1
|
0
|
q3
|
0
|
q1
|
q3
|
1
|
q2
|
0
|
q2
|
q4
|
1
|
q0
|
0
|
q3
|
q0
|
0
|
q4
|
1
|
q4
|
q2
|
0
|
q1
|
1
|
Conversion from Moore machine to Mealy machine:
For understanding the conversion of moore to mealy machine, let us take an example:
suppose the moore machine transition table is:
Output
|
|||
a = 0
|
a = 1
|
||
-> q0
|
q3
|
q1
|
1
|
q1
|
q0
|
q3
|
0
|
q2
|
q2
|
q2
|
0
|
q3
|
q1
|
q0
|
1
|
convert this transition table into mealy machine.
Solution: First of all take the mealy machine transition table format, i.e.,
resent
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
next step is to copy all the moore machine transition table states into mealy machine transition table format
Present
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
-> q0
|
q3
|
q1
|
||
q1
|
q0
|
q3
|
||
q2
|
q2
|
q2
|
||
q3
|
q1
|
q0
|
Now in the moore machine, the output of the q0 is 1. so make the output of q0 in the mealy machine next state column of the above table is 1. same process is repeated for q1, q2 and q3.
Present
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
-> q0
|
q3
|
q1
|
||
q1
|
q0
|
1
|
q3
|
|
q2
|
q2
|
q2
|
||
q3
|
q1
|
q0
|
1
|
After repeating the above process for q1,q2 and q3 states, the final mealy machine transition table is:
Present
|
||||
a = 0
|
a = 1
|
|||
State
|
Output
|
State
|
Output
|
|
-> q0
|
q3
|
1
|
q1
|
0
|
q1
|
q0
|
1
|
q3
|
1
|
q2
|
q2
|
0
|
q2
|
0
|
q3
|
q1
|
0
|
q0
|
1
|
Exercise : convert the following Moore machine into mealy machine:
Output
|
|||
a = 0
|
a = 1
|
||
-> q0
|
q1
|
q0
|
0
|
q1
|
q2
|
q3
|
1
|
q2
|
q3
|
q2
|
0
|
q3
|
q0
|
q1
|
1
|
This is neat. Thank you
ReplyDeletethank you very much sir............really very very helpful !!
ReplyDeleteIn mealy to Moore....how to get final output...
ReplyDeleteJUST WOW!!!!!
ReplyDeletevery best........
ReplyDeleteits very easy to understand.....
ReplyDeleteOp🔥🔥🤣🤣
ReplyDelete