Moore Mealy
Moore Mealy
output Outputs
logic
Inputs
Next-state Next State
logic
Current State
Moore versus Mealy machines
Moore machine
inputs Outputs are a function
combinational
logic for of current state
next state logic for
reg outputs outputs
Outputs change
synchronously with
state changes
state feedback
• FSM-design procedure
1. State diagram
2. State-transition table
3. State minimization
4. State encoding
5. Next-state logic minimization
6. Implement the design
State Diagrams
• Moore machine
• Each state is labeled by a pair:
• Mealy machine
• Each transition arc is labeled by a pair:
input-condition/output
Example 10 01: Moore or Mealy?
• Circuits recognize AB=10 followed by AB=01
• What kinds of machines are they?
out
A DQ DQ
Q Q
B DQ DQ
Q Q
clock
out
Moore A D Q
Q
B D Q
Q
clock
Mealy
Example “01 or 10” detector: a Moore
machine
• Output is a function of state only
• Specify output in the state bubble
0/0
current next current
reset input state state output
B
0/0 1 – – A 0
0 0 A B 0
reset/0 0 1 A C 0
A 0/1 1/1
0 0 B B 0
1/0 0 1 B C 1
0 0 C B 1
C 0 1 C C 0
1/0
Comparing Moore and Mealy
machines
• Moore machines
+ Safer to use because outputs change at clock edge
– May take additional logic to decode state into outputs
• Mealy machines
+ Typically have fewer states
+ React faster to inputs — don't wait for clock
– Asynchronous outputs can be dangerous
• We often design synchronous Mealy machines
• Design a Mealy machine
• Then register the outputs
Synchronous (registered) Mealy
machine
• Registered state and registered outputs
• No glitches on outputs
• No race conditions between communicating machines
combinational
logic for reg
next state
state feedback
Example “=01”: Moore or Mealy?
• Recognize AB = 01
• Mealy or Moore?
A
out
D Q
B
clock
Q
Registered
Mealy A
D Q out
(actually
Moore) Q
B
D Q
clock
Q
Moore
Example: A parity checker
Moore
Mealy
0 0/00
Even
[0] Even
[0]
1 1
1/11 11/0
Odd
[1] Odd
[1]
0/1
Example: A parity checker
1. State-transition table
Moore
Input D Q Input D Q
Output Current
State
Q Q
CLK CLK
What was covered after midterm 1
• Combinational logic applications
• PLAs/PALs
• ROMs
• Adders
• Multi-level logic
• Timing diagrams 1010
+ 0110
• Hazards -------------
????
What was covered after midterm 1
• Sequential logic building blocks
• Latches (R-S and D)
• Flip-flops (D and T)
• Latch and flip-flop timing (setup/hold time, prop delay)
• Timing diagrams
• Asynchronous inputs and metastability
• Registers
Remember that
the last number was 1
What was covered after midterm 1
• Counters
• Timing diagrams
• Shift registers
• Ring counters
• State diagrams and state-transition tables
• Counter design procedure
1. Draw a state diagram
2. Draw a state-transition table
3. Encode the next-state functions
1, 2, 3, 4, …
4. Implement the design
• Self-starting counters
What was covered after midterm 1
• Finite state machines
• FSM design procedure
1. State diagram
2. State-transition table
3. State minimization The last coin was 25cents and
4. State encoding already had 50cents deposited
5. Next-state logic minimization so let’s pop out a soda
6. Implement the design
No Mealy machines