finite state machine w/ data pathee 3921 15 © tj fsmd •fibonacci –fsmd - fsm-----...
TRANSCRIPT
![Page 1: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/1.jpg)
Finite State Machinew/ Data Path
Last updated 5/19/20
![Page 2: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/2.jpg)
2 © tjEE 3921
FSMD
These slides review FSM’s with Datapath
Upon completion: You should be able to design and simulate FSM’s with Datapath
![Page 3: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/3.jpg)
3 © tjEE 3921
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 Reg BTask
(combinational)
clk
Task(combinational)
Reg C
![Page 4: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/4.jpg)
4 © tjEE 3921
FSMD
• FSMD
• FSM with Data Path
• Data Path• Sequential circuitry to accomplish a task
• Typically register transfer operations
Task(Combinational)
Reg A
clk
![Page 5: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/5.jpg)
5 © tjEE 3921
FSMD
• FSMD
clk
Next StateLogic
Register(D-FFs)inputs outputs
OutputLogic
clk
Data Path
Control Path
outputs
inputs Task(Combinational)
Reg A
![Page 6: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/6.jpg)
6 © tjEE 3921
FSMD
• Fibonacci – FSMD
fib(i) = 1 i = 1fib(i-1) + fib(i-2) i > 1
0 i = 0
for i= 60-1-1-2-3-5-8
![Page 7: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/7.jpg)
7 © tjEE 3921
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
![Page 8: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/8.jpg)
8 © tjEE 3921
FSMD
• Fibonacci – FSMD
Data Path
fib(0) = 0fib(1) = 1
fib(i) = fib(i-1) + fib(i-2)
State Machine
(idle, run, complete)
num_cycles
startb
complete
result(i) OutputRegister
result_latched
![Page 9: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/9.jpg)
9 © tjEE 3921
FSMD
• Fibonacci – FSMD
Data Path
fib(0) = 0fib(1) = 1
fib(i) = fib(i-1) + fib(i-2)
State Machine
(idle, run, complete)
num_cycles
startb
complete
result(i) OutputRegister
result_latched
calc
![Page 10: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/10.jpg)
10 © tjEE 3921
FSMD
• Fibonacci – FSMD
• Control Path
calc 0complete 1
startb = 0F
idle
T
run
calc 1complete 0
cnt = 1F
T
cnt cnt - 1
cntnum_cycles
calc 0complete 1
complete
![Page 11: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/11.jpg)
11 © tjEE 3921
FSMD
• Fibonacci – FSMD
• Data Path
fib(i-2) 0fib(i-1) 1
calc = 0T F
fib(i-1) fib(i-1) + fib(i-2)
fib(i-2) fib(i-1)
![Page 12: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/12.jpg)
12 © tjEE 3921
FSMD
• Fibonacci – FSMD
calc
![Page 13: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/13.jpg)
13 © tjEE 3921
FSMD
• Fibonacci – FSMD - FSM
![Page 14: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/14.jpg)
14 © tjEE 3921
• Fibonacci – FSMD - FSM
FSMD
![Page 15: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/15.jpg)
15 © tjEE 3921
FSMD
• Fibonacci – FSMD - data path
![Page 16: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/16.jpg)
16 © tjEE 3921
FSMD
• Fibonacci – FSMD - data path
![Page 17: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/17.jpg)
17 © tjEE 3921
FSMD
• Fibonacci – FSMD
![Page 18: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/18.jpg)
18 © tjEE 3921
FSMD
• Fibonacci – FSMD
![Page 19: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/19.jpg)
19 © tjEE 3921
FSMD
• Fibonacci – FSMD
![Page 20: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/20.jpg)
20 © tjEE 3921
FSMD
• FibonacciFSMD
FSM
Data Path
![Page 21: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/21.jpg)
21 © tjEE 3921
FSMD
• Fibonacci
N = 6
Results and intermediate values
Indicates the correct vector size was calculated
![Page 22: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/22.jpg)
22 © tjEE 3921
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
![Page 23: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/23.jpg)
23 © tjEE 3921
FSMD
• Multiplication
1110x 0011
11111110x 00000011
11111110x 00000011
1111111011111110
00000000 00000000
00000000 00000000
00000000 00000000
11111010
![Page 24: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/24.jpg)
24 © tjEE 3921
FSMD
• Multiplier
Next StateLogic
Register(D-FFs)inputs outputs
OutputLogic
clk Control Path
clk
Data Path
outputs
inputs Task(Combinational)
Reg A
![Page 25: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/25.jpg)
25 © tjEE 3921
FSMD
• Multiplier – FSMD
• Control Path
calc 0complete 1
startb = 0F
idle
T
run
calc 1complete 0
done = 1F
T
calc 0complete 1
finish
![Page 26: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/26.jpg)
26 © tjEE 3921
FSMD
• Multiplier – FSMD
• Data Path
T F
calc = 0T F
Load multiplicandLoad multiplier
Result <- 0
multiplier = 0
done 1 Result = result + multiplicand
Multiplier - -
![Page 27: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/27.jpg)
27 © tjEE 3921
FSMD
• Multiplier – FSMD
T F
calc = 0T F
Load multiplicandLoad multiplier
Result <- 0
multiplier = 0
done 1 result = result + multiplicand
Multiplier - -
calc 0complete 1
startb = 0F
idle
T
run
calc 1complete 0
done = 1F
T
calc 0complete 1
finish
done
calc
![Page 28: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/28.jpg)
28 © tjEE 3921
FSMD
• Multiplier – FSMD - FSM
![Page 29: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/29.jpg)
29 © tjEE 3921
FSMD
• Multiplier – FSMD - FSM
![Page 30: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/30.jpg)
30 © tjEE 3921
FSMD
• Multiplier – FSMD – Data path
![Page 31: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/31.jpg)
31 © tjEE 3921
FSMD
• Multiplier – FSMD – Data path
![Page 32: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/32.jpg)
32 © tjEE 3921
FSMD
• Multiplier – FSMD
![Page 33: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/33.jpg)
33 © tjEE 3921
FSMD
• Multiplier – FSMD
![Page 34: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/34.jpg)
34 © tjEE 3921
FSMD
• Multiplier FSMD
FSM
Data Path
![Page 35: Finite State Machine w/ Data PathEE 3921 15 © tj FSMD •Fibonacci –FSMD - FSM----- fibonacci_fsm.vhdl---- created 4/16/17-- tj---- rev 0](https://reader033.vdocument.in/reader033/viewer/2022042710/5f5d2e21a84f1126431137b4/html5/thumbnails/35.jpg)
35 © tjEE 3921
FSMD
• Multiplier - FSMD
Note: Takes “multiplier” number of clock cyclesTakes a variable number of clock cycles
Results and intermediate values