04.06.2022 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!