International Journal on Advanced Science, Engineering and Information Technology, Vol. 9 (2019) No. 1, List of accepted papers. , DOI:10.18517/ijaseit.9.1.6948

FPGA implementation of hand-written number recognition based on CNN

Daniele Giardino, Marco Matta, Francesca Silvestri, Sergio Spanò, Valerio Trobiani


Convolutional Neural Networks (CNNs) are the state-of-the-art in computer vision for different purposes such as image and video classification, recommender systems and natural language processing. The connectivity pattern between CNNs neurons is inspired by the structure of the animal visual cortex. In order to allow the processing, they are realized with multiple parallel 2-dimensional FIR filters that convolve the input signal with the learned feature maps.  For this reason, a CNN implementation requires highly parallel computations that cannot be achieved using traditional general-purpose processors, which is why they benefit from a very significant speed-up when mapped and run on Field Programmable Gate Arrays (FPGAs). This is because FPGAs offer the capability to design full customizable hardware architectures, providing high flexibility and the availability of hundreds to thousands of on-chip Digital Signal Processing (DSP) blocks. This paper presents an FPGA implementation of a hand-written number recognition system based on CNN. The system has been characterized in terms of classification accuracy, area, speed and power consumption. The neural network was implemented on a Xilinx XC7A100T FPGA and it uses 29.69% of Slice LUTs, 4.42% of slice registers and 52.50% block RAMs. We designed the system using a 9-bit representation that allows to avoid the use of DSP. For this reason, multipliers are implemented using LUTs. The proposed architecture can be easily scaled on different FPGA devices thank its regularity. The CNN is able to reach a classification accuracy of 90%.


Machine Learning; FPGA; Accelerator; CNN.

Viewed: 42 times (since Sept 4, 2017)

cite this paper