fsmd
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Finite State Machine
w/ Data Path
Last updated 9/24/20
FSMD
These slides review FSM’s with Datapath
Upon completion: You should be able to design and
simulate FSM’s with Datapath
EE 3921
2 © tj
FSMD
• FSMD
• FSM with Data Path
• FSM
• Control the Data Path
• Data Path
• Sequential circuitry to accomplish a task
• Typically register transfer operations
Reg A
Task
(combinational)
Reg B
Task
(combinational)
Reg C
clk
EE 3921
3 © tj
FSMD
• FSMD
• FSM with Data Path
• Data Path
• Sequential circuitry to accomplish a task
• Typically register transfer operations
Task
(Combinational)
Reg A
clk
EE 3921
4 © tj
FSMD
• FSMD
Data Path
inputs
Task
(Combinational)
Reg A
outputs
clk
inputs
Next State
Logic
Register
(D-FFs)
Output
Logic
outputs
clk
Control Path
EE 3921
5 © tj
FSMD
• Fibonacci – FSMD
0 i = 0
fib(i) = 1 i = 1
fib(i-1) + fib(i-2) i > 1
for i= 6
0-1-1-2-3-5-8
EE 3921
6 © tj
FSMD
• Fibonacci – FSMD
• Input Signals
• clk, rstb
• num_cycles – how many numbers to generate - vector
• startb – start generating (bar)
• Output Signals
• complete – generation complete
• result_latched – Final Fibonacci value
• States
• Idle
• Run
• Complete
EE 3921
7 © tj
FSMD
• Fibonacci – FSMD
Data Path
fib(0) = 0
fib(1) = 1
fib(i) = fib(i-1) + fib(i-2)
result(i)
Output
Register
result_latched
num_cycles
startb
State Machine
(idle, run, complete)
complete
EE 3921
8 © tj
FSMD
• Fibonacci – FSMD
Data Path
fib(0) = 0
fib(1) = 1
fib(i) = fib(i-1) + fib(i-2)
result(i)
Output
Register
result_latched
calc
num_cycles
startb
State Machine
(idle, run, complete)
complete
EE 3921
9 © tj
FSMD
• Fibonacci – FSMD
• Control Path
idle
run
calc 0
complete 1
startb = 0
T
F
cnt
num_cycles
calc 1
complete 0
T
cnt = 1
F
cnt cnt - 1
complete
calc 0
complete 1
EE 3921
10 © tj
FSMD
• Fibonacci – FSMD
• Data Path
T
calc = 0
F
fib(i-2) 0
fib(i-1) 1
fib(i-1) fib(i-1)
+ fib(i-2)
fib(i-2) fib(i-1)
EE 3921
11 © tj
FSMD
• Fibonacci – FSMD
calc
EE 3921
12 © tj
FSMD
• Fibonacci – FSMD - FSM
EE 3921
13 © tj
FSMD
• Fibonacci – FSMD - FSM
EE 3921
14 © tj
FSMD
• Fibonacci – FSMD - data path
EE 3921
15 © tj
FSMD
• Fibonacci – FSMD - data path
EE 3921
16 © tj
FSMD
• Fibonacci – FSMD
EE 3921
17 © tj
FSMD
• Fibonacci – FSMD
EE 3921
18 © tj
FSMD
• Fibonacci – FSMD
EE 3921
19 © tj
FSMD
• Fibonacci
FSMD
FSM
Data Path
EE 3921
20 © tj
FSMD
• Fibonacci
Results and intermediate values
N = 6
EE 3921
Indicates the correct vector
size was calculated
21 © tj
FSMD
• Multiplication
• Shift and add
1110
x 0011
11111110
x 00000011
11111110
x 00000011
11111110
11111110
00000000
00000000
00000000
00000000
00000000
00000000
11111010
EE 3921
22 © tj
FSMD
• Multiplication
• Want a process that is repetitive
• Repetitive addition multiplication
5 x 4 = 5 + 5 + 5 + 5 i.e. the multiplicand added the multiplier times
• Requires integers – or non-fractional binary numbers for the
multiplier
EE 3921
23 © tj
FSMD
• Multiplier
Data Path
inputs
Task
(Combinational)
Reg A
outputs
clk
inputs
Next State
Logic
Register
(D-FFs)
Output
Logic
outputs
clk
Control Path
EE 3921
24 © tj
FSMD
• Multiplier – FSMD
• Control Path
idle
calc 0
complete 1
startb = 0
T
F
run
calc 1
complete 0
finish
done = 1
T
calc 0
complete 1
F
EE 3921
25 © tj
FSMD
• Multiplier – FSMD
• Data Path
T
calc = 0
F
Load multiplicand
Load multiplier
Result <- 0
T
multiplier
= 0
F
done 1
Result = result +
multiplicand
Multiplier - -
EE 3921
26 © tj
FSMD
• Multiplier – FSMD
idle
calc 0
complete 1
startb = 0
F
T
calc = 0
F
done
calc
run
T
Load multiplicand
Load multiplier
Result <- 0
T
multiplier
= 0
F
calc 1
complete 0
done = 1
F
done 1
result = result +
multiplicand
T
Multiplier - -
finish
calc 0
complete 1
EE 3921
27 © tj
FSMD
• Multiplier – FSMD - FSM
EE 3921
28 © tj
FSMD
• Multiplier – FSMD - FSM
EE 3921
29 © tj
FSMD
• Multiplier – FSMD – Data path
EE 3921
30 © tj
FSMD
• Multiplier – FSMD – Data path
EE 3921
31 © tj
FSMD
• Multiplier – FSMD
EE 3921
32 © tj
FSMD
• Multiplier – FSMD
EE 3921
33 © tj
FSMD
• Multiplier
FSMD
FSM
Data Path
EE 3921
34 © tj
FSMD
• Multiplier - FSMD
Results and intermediate values
Note: Takes “multiplier” number of clock cycles
Takes a variable number of clock cycles
EE 3921
35 © tj