Implementation of Convolutional Neural Network for Handwritten digits recognition On FPGA

Neural Network is a Machine Learning System designed for supervised learning using examples. Such network can be used for handwritten digit recognition, and when used in software is in-efficient in both time and resources. This project is the third part of a 3-parts project. Our goal is to implement an efficient hardware solution to the handwritten digit recognition problem. Implementing dedicated HW to this task is part of a new trend in VLSI architecture called heterogeneous computing- design of a system on chip with many accelerators for different tasks, which will achieve better performance/power ratio, each for its purposed task.

The system comprises of ML-605 evaluation board, including Xilinx’s Virtex 6 FPGA, connected to a PC via UART interface.

A matlab GUI was created, enabling the user to easily send an input image (which is a single digit in the range 0-9, of size 29×29 pixels) to the FPGA via the UART i/f. The recognition process than takes place on dedicated circuitry in the FPGA. After the recognition process is finished, the results are sent back to the PC (via UART), where they are presented to the user in a clear form through the matlab application.