Home›Industry News›Small Neural Networks Suitable for FPGA (Part 1)
← Back to Industry News
Tutorial

Small Neural Networks Suitable for FPGA (Part 1)

WeChat Official Accounts ·
This is a machine translation of the Chinese original (~3104 words), with the original images mirrored on this site; for details please refer to the source page.

I have previously recommended neural networks suitable for FPGA, including CNN, DNN, and SNN, etc. Those who want to implement them can take a look:

Excellent Verilog/FPGA Open Source Projects (35) - TinyML

Excellent Verilog/FPGA Open Source Projects (24) - Spiking Neural Network (SNN)

Excellent Verilog/FPGA Open Source Projects (22) - Deep Neural Network (DNN)

Excellent Verilog/FPGA Open Source Projects (21) - Convolutional Neural Network (CNN)

Excellent Verilog/FPGA Open Source Projects (20) - Tensor Processing Unit (TPU)

Today we share several small neural networks implemented on FPGA, with a focus on applications.

LeNet is mainly used for handwritten character recognition and classification. It established the structure of CNN, and many concepts in modern neural networks can be seen in LeNet's network architecture:

C1, convolutional layer; S2, pooling layer; C3, convolutional layer; S4, pooling layer; C5, convolutional layer; F6, fully connected layer; OUTPUT, fully connected layer

"Image Processing Tutorial Based on MATLAB and FPGA" LeNet5

https://gitee.com/crazybingo/Book_VIP/tree/master/2_FPGA_Sim/8.2_LeNet5

This is an example from "Image Processing Tutorial Based on MATLAB and FPGA," which has been verified through MATLAB simulation and FPGA implementation on the relevant development board.

DigitalRecognition - Based on LeNet-5

https://github.com/suisuisi/FPGAandCNN/tree/main/DigitalRecognition

A project where the neural network detects dark digits on a light background. For detailed design and video demonstration, please refer to the README.

AlexNet is the champion model of the 2012 ImageNet competition. Its authors are Hinton, one of the three giants in the neural network field, and his student Alex Krizhevsky (reference: https://blog.csdn.net/sinat_39620217/article/details/131083754).

Compared with the previous LeNet, AlexNet has a deeper network structure, containing 5 convolutional layers and 3 fully connected layers. The comparison with LeNet is shown below.

alexnet-FPGA and GPU

Benchmarking the execution time of AlexNet CNN on FPGA and GPU.

https://github.com/pratikpv/alexnet

In addition to learning neural network knowledge, this project also provides detailed reference examples of running OpenCL on Xilinx FPGA. The link is as follows:

https://gitlab.com/Tango-DNNbench/Tango/tree/master/FPGA

CNN_OPEN & DNN_PUF_FPGA

Generate the LeNet model using SystemVerilog, and perform synthesis and implementation on FPGA.

https://github.com/renaturation/DNN_PUF_FPGA

This project is a research-oriented project, suitable for learning and hands-on practice.

Running neural networks on FPGA was a very popular direction a few years ago. Recently, agile development approaches such as OpenCL and HLS have diluted much of the enthusiasm, and projects developed with pure HDL are appearing less and less. However, these small neural network projects today are suitable for entering the related industry and for understanding the relevant knowledge points. Each project contains many related examples; today I am only introducing some projects that I personally consider relatively classic.

Read Original →
Source: WeChat Official Accounts