The convolution kernel is designed as a combinational circuit to compute a convolution of 2^T * 2^T
kernel on any input matrix M * M
.
This is achieved using Carry Look-Ahead Adders and Array Multipliers.
First, Vector Dot Product component is created using the Carry Look-Ahead Adders and Array Multipliers, then these Vector Dot Product components are used to convolve the given kernel over the input matrix by treating both the kernel and the convolution area as one long flat vector and performing a dot product of both.
The full documentation can be found in Report.pdf
.
Compiling the code on ModelSim requires setting the VHDL language version to 2008 for all code files.
This is due to the definition of vector_T
and matrix_T
data types requiring some newer features.
To set the VHDL version,
- Select all files in the project.
- Right-click and click on properties.
- Under the VHDL tab, select
Use 1076-2008
radio button for Language Syntax. - Click OK and compile all files.