Moore machine

From Free net encyclopedia

Image:Fsm moore model door control.jpg In the theory of computation, a Moore machine is a finite state automaton where the outputs are determined by the current state alone (and not on the input). The state diagram for a Moore machine will include an output signal for each state. Compare with a Mealy machine, which maps transitions in the machine to outputs.

The name Moore machine comes from that of their promoter: Edward F. Moore, a state machine pioneer, who wrote Gedanken-experiments on Sequential Machines, pp 129 – 153, Automata Studies, Annals of Mathematical Studies, no. 34, Princeton University Press, Princeton, N. J., 1956.

Most electronics are designed as clocked sequential systems. Clocked sequential systems are a restricted form of Moore machine where the state changes only when the global clock signal changes. Typically the current state is stored in flip-flops, and global clock signal is connected to the "clock" input of the flip-flops. Clocked sequential systems are one way to solve metastability problems.

A typical electronic Moore machine includes a combinatorial logic chain to decode the current state into the outputs (lambda). The instant the current state changes, those changes ripple through that chain, and almost instantaneously the outputs change (or don't change). There are design techniques to ensure that no glitches occur on the outputs during that brief period while those changes are rippling through the chain, but most systems are designed so that glitches during that brief transition time are ignored or are irrelevant. The outputs then stay the same indefinitely (LEDs stay bright, power stays connected to the motors, solenoids stay energized, etc.), until the Moore machine changes state again.

Formal definition

A Moore machine can be defined as a 5-tuple { S, Σ, Λ, T, G } consisting of

  • a finite set of states ( S )
  • a finite set called the input alphabet ( Σ )
  • a finite set called the output alphabet ( Λ )
  • a transition function (T : S × Σ → S) mapping a state and an input to the next state
  • an output function (G : S → Λ) mapping each state to the output alphabet.

The number of states in a Moore machine will be greater than or equal to the number of states in the corresponding Mealy machine.de:Moore-Automat ja:ムーア・マシン pl:Automat Moore'a pt:Máquina de Moore zh:Moore有限状态机