Can someone please explain how I can tell which FSM type I have? In my textbook I read that output in a Mealy FSM is based on both the input and the present state, but in a Moore FSM it is based only on the present state. Then why is the circuit in the figure below a Moore FSM? If I change the "In"-signal, then "Q0" and "Q1" will also change, so output depends on input. Does that not make it a Mealy FSM?
2 Answers
As written there,
"Moore outputs are synchronous with the clock, only changing with state transitions. Mealy outputs are asynchronous and can change in response to any changes in the inputs, independent of the clock."
In your specific case, Q0 and Q1 change sinchronously with the clock (because of the presence of the two D flip-flops), hence it's a Moore FSM.
The state of the circuit is represented by the flip-flops. In this case, your outputs (Q0 and Q1) are exactly equal to the flip-flop outputs. The inputs only affect the outputs by causing a state change. If (For example) the left flip-flop's output were ANDed with In to produce Q0, then it would be a Mealy machine.