本项目利用FPGA实现一个训练好的卷积神经网络,用于图像分类。项目采用CIFAR-10数据集作为训练数据,通过深度学习的CNN概念对输入图像进行分类。

设计包含六个层次:滑动窗口卷积、ReLU激活、最大池化、图像展平、全连接和Softmax激活。利用卷积核/过滤器从输入图像中提取特征,输入图像可以是灰度或彩色图像。

使用的工具:

  • Xilinx Vivado v17.4:用于FPGA设计
  • Matlab vR2018.a:用于参考目的和结果比较

使用的编程语言:

  • Verilog HDL:用于FPGA设计的硬件描述语言

已完成的任务:

  1. 掌握FPGA、相关资源、Vivado 17.4和Matlab R2018a的基本知识。
  2. 使用Vivado 17.4创建了一些Verilog模块,包括矩阵乘法、通用多路复用器、矩阵卷积、ReLU激活和最大池化。
  3. 使用Matlab R2018a创建了一些矩阵函数,用于参考和匹配结果。
  4. 首先考虑灰度图像(使用Matlab从彩色图像转换为灰度图像),并进行了矩阵乘法和ReLU激活。