Saturday 10 November 2012

Mealy and Moore machine and their conversions

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:

Present State
Next State

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:

Present State
Next State
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 State
Next State


a = 0
a = 1
State
Output
State
Output
-> q0
q3
0
q11
1
q10
q0
1
q3
0
q11
q0
1
q3
0
q20
q21
1
q20
0
q21
q21
1
q20
0
q3
q10
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.

Present State
Next State
Output
a = 0
a = 1
-> q0
q3
q11
1
q10
q0
q3
0
q11
q0
q3
1
q20
q21
q20
0
q21
q21
q20
1
q3
q10
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 State
Next State


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:

Present State
Next State
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 State
Next State


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 State
Next State


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 State
Next State


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 State
Next State


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:

Present State
Next State
Output
a = 0
a = 1
-> q0
q1
q0
0
q1
q2
q3
1
q2
q3
q2
0
q3
q0
q1
1



7 comments: