finite state machine w/ data pathee 3921 15 © tj fsmd •fibonacci –fsmd - fsm-----...

35
Finite State Machine w/ Data Path Last updated 5/19/20

Upload: others

Post on 20-Jul-2020

5 views

Category:

Documents


1 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

35 © tjEE 3921

FSMD

• Multiplier - FSMD

Note: Takes “multiplier” number of clock cyclesTakes a variable number of clock cycles

Results and intermediate values