Moore Finite State Machines


In a Moore FSM, the output depends only on the current state:

  • The output logic is purely a function of the current state.
  • Transitions between states take place on clock edges based on inputs.
  • But output is associated only with the state itself.

Advantages:

  • Output is synchronized with the clock

Disadvantages:

  • State explosion if designing complex systems

Example Moore FSM module template:

reg [state reg]
parameter [state encodings]
 
always @(posedge clk)  
    case (state)
       // state transitions
    endcase
 
assign output = f(state);

So in summary, Moore FSM outputs are a function of just the present state, leading to synchronized transitions but potentially more states.