ECE 545
Lecture 13
Design of Controllers
Part A
George Mason University
Required reading
• P. Chu, RTL Hardware Design using VHDL
Chapter 10, Finite State Machine:
Principle & Practice
2
Datapath
vs.
Controller
ECE 448 – FPGA and ASIC Design with VHDL 3
Structure of a Typical Digital
System
Data Inputs Control & Status Inputs
Control
Signals
Datapath Controller
(Execution (Control
Unit) Unit)
Status
Signals
Data Outputs Control & Status Outputs
Controller (Control Unit)
• Controls data movements in the Datapath by
switching multiplexers and enabling or disabling
resources
Example: enable signals for registers
Example: select signals for muxes
• Provides signals to activate various processing
tasks in the Datapath
• Determines the sequence of operations
performed by the Datapath
• Follows Some ‘Program’ or Schedule
5
Programmable vs. Non-Programmable Controller
• Controller can be programmable or non-programmable
• Programmable
§ Has a program counter which points to the next instruction
§ Instructions are held in a RAM or ROM
§ Microprocessor is an example of a programmable controller
• Non-Programmable
§ Once designed, implements the same functionality
§ Another term is a “hardwired state machine,” or “hardwired
FSM,” or “hardwired instructions”
§ In this course we will be focusing on non-
programmable controllers.
6
Finite State Machines
• Digital Systems and especially their Controllers can be
described as Finite State Machines (FSMs)
• Finite State Machines can be represented using
• State Diagrams and State Tables - suitable for simple
digital systems with a relatively few inputs and outputs
• Algorithmic State Machine (ASM) Charts - suitable
for complex digital systems with a large number of
inputs and outputs
• All these descriptions can be easily translated to the
corresponding synthesizable VHDL code
7
Hardware Design with RTL VHDL
Pseudocode Interface
Datapath Controller
Block ASM
diagram chart
VHDL code VHDL code
8
Steps of the Design Process
Introduced in Class Today
1. Text description
2. Interface
3. Pseudocode
4. Block diagram of the Datapath
5. Interface divided into the Datapath and Controller
6. ASM chart of the Controller
7. RTL VHDL code of the Datapath, Controller, and
Top-level Unit
8. Testbench for the Datapath, Controller, and Top-Level
Unit
9. Functional simulation and debugging
10. Synthesis and post-synthesis simulation
11. Implementation and timing simulation
12. Experimental testing using FPGA board
9
Finite State Machines
Refresher
10
Finite State Machines (FSMs)
• An FSM is used to model a system that transits
among a finite number of internal states. The
transitions depend on the current state and external
input.
• The main application of an FSM is to act as the
controller of a medium to large digital system
• Design of FSMs involves
• Defining states
• Defining next state and output functions
• Optimization / minimization
• Manual optimization/minimization is practical for
small FSMs only
11
Moore FSM
• output is a function of the state only
next-state
input
logic
state_next
clk state
reset register
state_reg
output
output
logic
12
Mealy FSM
• output is a function of the state and input signals
next-state
input
logic
state_next
clk state
reset register
state_reg
output
output
logic
13
State Diagrams
14
Moore Machine
transition
condition 1
state 1 / state 2 /
output 1 output 2
transition
condition 2
15
Mealy Machine
transition condition 1 /
output 1
state 1 state 2
transition condition 2 /
output 2
16
Moore FSM - Example 1
• Moore FSM that Recognizes Sequence “10”
0 1
0
1
S0 / 0 S1 / 0 1 S2 / 1
reset
0
S0: No S1: “1” S2: “10”
Meaning elements observed observed
of states: of the
sequence
observed
17
Mealy FSM - Example 1
• Mealy FSM that Recognizes Sequence
“10”
0/0 1/0 1/0
S0 S1
reset 0/1
S0: No S1: “1”
Meaning elements observed
of states: of the
sequence
observed
18
Algorithmic State Machine (ASM)
Charts
19
Algorithmic State Machine
Algorithmic State Machine –
representation of a Finite State Machine
suitable for FSMs with a larger number of
inputs and outputs compared to FSMs
expressed using state diagrams and state
tables.
20
ASM Chart
– Flowchart-like diagram
– Provides the same info as a state diagram
– More descriptive, better for complex description
21
ASM describing generalized FSM
• Algorithmic state machines can model both
Mealy and Moore Finite State Machines
• They can also model generalized machines
that are of the mixed type
22
Elements used in ASM charts (1)
State name
Output signals 0 (False) 1 (True)
Condition
or actions
expression
(Moore type)
(a) State box (b) Decision box
Conditional outputs
or actions (Mealy type)
(c) Conditional output box
23
State Box
• State box – represents a state. State name
• Equivalent to a node in a state diagram or
a row in a state table. Output signals
or actions
• Contains register transfer actions or (Moore type)
output signals
• Moore-type outputs are listed inside of
the box.
• It is customary to write only the name of
the signal that has to be asserted in the
given state, e.g., z instead of z<=1.
• Also, it might be useful to write an action
to be taken, e.g., count <= count + 1, and
only later translate it to asserting a control
signal that causes a given action to take
place (e.g., enable signal of a counter).
24
Decision Box
• Decision box –
indicates that a 0 (False) 1 (True)
Condition
given condition is to expression
be tested and the
exit path is to be
chosen accordingly.
The condition
expression may
include one or more
inputs to the FSM.
25
Conditional Output Box
• Conditional
output box
• Denotes output Conditional outputs
or actions (Mealy type)
signals that are of
the Mealy type.
• The condition that
determines
whether such
outputs are
generated is
specified in the
decision box.
26
Simple Example: Datapath
0
m
eni en ld ldi
clk
m
== k-1
zi
27
Simple Example: Interface
28
Example: Counter – Controller
29
ASM Block
• One state box
• One or more
(optional)
decision boxes:
with T (1) or F (0)
exit paths
• One or more
(optional)
conditional output
boxes:
for Mealy outputs
30
ASM Chart Rules
• Difference between a regular flowchart
and an ASM chart:
– Transition governed by clock
– Transition occurs between ASM blocks
• Basic rules:
– For a given input combination, there is one
unique exit path from the current ASM block
– Any closed loop in an ASM chart must
include a state box
Based on RTL Hardware Design by P. Chu
31
Incorrect ASM Charts
Based on RTL Hardware Design by P. Chu
32
Correct ASM Chart
33
State Diagram of Moore FSM
• Moore FSM that Recognizes Sequence “10”
0 1
0
1
S0 / 0 S1 / 0 1 S2 / 1
reset
0
S0: No S1: “1” S2: “10”
Meaning elements observed observed
of states: of the
sequence
observed
34
ASM Chart of Moore FSM
reset
S0
0
input
1
S1
1
input
S2 0
output
1 0
input
35
State Diagram of Mealy FSM
• Mealy FSM that Recognizes Sequence
“10”
0/0 1/0 1/0
S0 S1
reset 0/1
S0: No S1: “1”
Meaning elements observed
of states: of the
sequence
observed
36
ASM Chart of Mealy Machine
reset
S0
0
input
1 output
S1
1 input 0
37
Moore & Mealy FSMs without delays
clock
0 1 0 0 0
input
state S0 S0 S1 S2 S0 S0
Moore
output
state S0 S0 S1 S0 S0 S0
Mealy
output
38
Moore & Mealy FSMs with delays
clock
0 1 0 0 0
input
state S0 S0 S1 S2 S0 S0
Moore
output
state S0 S0 S1 S0 S0 S0
Mealy
output
39
Moore vs. Mealy FSM (1)
• Moore and Mealy FSMs Can Be
Functionally Equivalent
• Equivalent Mealy FSM can be derived from
Moore FSM and vice versa
• Mealy FSM Has Richer Description and
Usually Requires Smaller Number of States
• Smaller circuit area
40
Moore vs. Mealy FSM (2)
• Mealy FSM Computes Outputs as soon as
Inputs Change
• Mealy FSM responds one clock cycle sooner
than equivalent Moore FSM
• Moore FSM Has No Combinational Path
Between Inputs and Outputs
• Moore FSM is less likely to affect the critical
path of the entire circuit
41
Moore FSM
• output is a function of the state only
next-state
input
logic
state_next
clk state
reset register
state_reg
output
output
logic
42
Mealy FSM
• output is a function of the state and input signals
next-state
input
logic
state_next
clk state
reset register
state_reg
output
output
logic
43
Which Way to Go?
Mealy FSM Moore FSM
Fewer states
Safer.
Lower Area Less likely to affect
the critical path.
Responds one clock
cycle earlier
44
ASMs representing simple FSMs
• Algorithmic state machines can model both
Mealy and Moore Finite State Machines
• They can also model machines that are of
the mixed type
45
Generalized FSM
Present State
Next State
Based on RTL Hardware Design by P. Chu
46