The convolutional neural network has been implemented in VHDL and synthesized for the Intel
Cyclone V FPGA. The convolutions are calculated using the convolution layer component.
The Central CNN Unit performs the communication with the convolution layer, HPS and SD-Ram
Controller.

Central CNN Unit
- Receives the weights and images from HPS
- Transmits processed images to HPS
- Performs layer configuration and weight transmission to convolution layer
- Calculates Pooling and Upsampling of the image
- Transmits weights from SD-Ram to convolution layer
Convolution Layer
- Convolution layer implementation with configurable image size, number of feature maps and input channels
- Utilizes two weight buffers for receiving new weights during calculation of convolution