1 of 14

Getting Started with Hardware Acceleration Workshop

Day-2: Assignment material

For assignments 6 and 7

2 of 14

Assignment-6 : FIFO / Queue

3 of 14

Assignment-6 : FIFO / Queue

Software queues

Hardware queues

4 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

Hardware queues

5 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

Hardware queues

  • Storage of data is done in a RAM block.

6 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

  • Two Pointers are used for keeping track of HEAD and TAIL.

Hardware queues

  • Storage of data is done in a RAM block.

7 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

  • Two Pointers are used for keeping track of HEAD and TAIL.

Hardware queues

  • Storage of data is done in a RAM block.

  • Two counters are used for keeping track of HEAD and TAIL.

8 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

  • Two Pointers are used for keeping track of HEAD and TAIL.

  • The two pointers are compared to see if the queue is full or empty.

Hardware queues

  • Storage of data is done in a RAM block.

  • Two counters are used for keeping track of HEAD and TAIL.

9 of 14

Assignment-6 : FIFO / Queue

Software queues

  • Storage of data is done in an Array.

  • Two Pointers are used for keeping track of HEAD and TAIL.

  • The two pointers are compared to see if the queue is full or empty.

Hardware queues

  • Storage of data is done in a RAM block.

  • Two counters are used for keeping track of HEAD and TAIL.

  • A comparator is used to see if the queue is full or empty.

10 of 14

Assignment-6 : FIFO / Queue

Write

FIFO

Data in

Empty

Read

Full

Depth / Words

Data width

Data out

11 of 14

Assignment-7 : Matrix-Multiplier

MAC : Multiply and ACcumulate

C ← C + ( A * B )

Primary operation in matrix multiplication

12 of 14

Assignment-7 : Matrix-Multiplier

PE : Processing Element

ain

bin

cin

cout

aout

bout

MAC

a

b

c

read out

Data flip flops with load signals. The “en” signal in the signal is broadcasted as the load signal to these registers

Multiplexer (MUX)

Read-out data bus

Data bus

13 of 14

Assignment-7 : Matrix-Multiplier

PE Row

Ai

B

C

One PE

14 of 14

Assignment-7 : Matrix-Multiplier

PE Array

A

B

C