Why is the output in a Moore Machine determined by the current state?

It makes sense to me that the output in a Mealy machine should be determined by the input and the current state because it gives me the feeling that it is really an output.

But the outputs in a Moore Machine are given by the current state, and this doesn't make sense to me at all. Why aren't they determined by the next state?

Sorry if my question is dumb.

Thanks.

The definition of a Moore Machine is that the outputs only depend upon the current state. As opposed to a Mealy machine whose outputs also depend upon the inputs.

If you think about it how can the outputs depend upon the next state that hasn't happened yet?

• But the next state is already determined via the input (and present state) isn't it? – DLV Oct 8 '15 at 3:29
• Not until the next clock pulse that changes the state, the inputs may still be changing and not have settled yet. If the outputs were dependent on the inputs as well it wouldn't be a Moore Machine, it would be a Mealy. In a Moore machine the outputs are only dependent on the current state. – Kevin White Oct 8 '15 at 3:53

The whole point of the current state is to determine the outputs. If the next state determined the outputs, we'd call it the "current state".

Consider a traffic light. There are three states:

simulate this circuit – Schematic created using CircuitLab

The light starts out red (cars stopped). After a while, it turns green (cars moving), then after some more time it turns yellow (cars slowing), then red again.

It doesn't make sense to say "The state of the light system is Green, so the light should be yellow, because Yellow is the next state." You name the states according to their outputs. When the light is green, you call that state Green (or Go, or Drive, or whatever). When the light is red, you call that state Red (or Stop, or Halt, or...).