Hardware Architecture

The following outlines hardware specifications, block diagrams, pseudo code along with the results and analysis of the design.

High Level Block and Diagram

Hardware

Hardware Specifications

FPGA

Nexys DDR board with Xilinx Artix-7 chip

160 18-bit DSP slices (up to 16 GOPs throughput at 100 MHz)

0.5 Mbytes of block RAM

Hardware

UART Block

Item Value
Data Input Rate 100 kBps
Data Output Rate 100 kBps
Baud Rate 1 Mbps
Data Transfer Interface UART over USB

Convolution Block

Items Committed Requirement Stretch Goal
Input Image Size 512x512 4096x4096
# of input planes 3 Arbitrary
Output image size Valid Same, valid, full
# of output planes 3 Arbitrary
Kernel Size 7x7 Arbitrary, where W * H * D < 512

Same, Full, Valid

Verification

Same: The output image is the same size as the input image (fxf)

Full: The output image is larger than the input image ((f+g) x (f+g))

Valid: The output image is smaller than the input image ((f-g/2) x (f-g/2))

FPGA Block Diagram

Hardware

Example of ILB with Image Window

Hardware

On the left you can see the image, each row being a unique color. Moving across the image is the image window, the part of the image that the sum of products will be computing at a given time. The right shows the ILB, which is storing pixel values read in from the UART module that will need to be used again.

Project Website

Check out our website here for more information about our project.