REVISTA DE LA UNIVERSIDAD DEL ZULIA. 3ª época. Año 12 N° 32, 2021
Cesar Arturo Niño Carmona1 et al. /// Red neuronal convolucional usando VHDL … 240-260
DOI: http://dx.doi.org/10.46925//rdluz.32.16
241
Convolutional neural network using VHDL to train an object
classifier on an image
ABSTRACT
The objective of the present work was to implement a convolutional neural network in
hardware using VHDL. Regarding its design, it was experimental, the research begins with the
design of a convolutional neural network in Software using Python, where Tensorflow and
Keras were used. This design required a 6-epoch training to exceed 90% accuracy when
classifying the images from the MNITS dataset. From this design, the parameters and
hyperparameters, necessary for hardware design, are obtained. For the implementation of the
algorithm in hardware, it was necessary to know the mathematical operation of the convolution,
maxpooling and neural network operations, since in the software these operations are
summarized in a line of code. Each of these operations was implemented in different blocks,
following the modular approach. The response obtained in the hardware is displayed on a screen
using the internal communication of the board between the ARM and the FPGA. This response
obtained in hardware is similar to that obtained in software and the time in software is much
longer than in hardware. The FPGA-based SoC platform, De-10 Nano, was used for this research.
KEYWORDS: Convolutional Neural Network, FPGA, Python, SoC, VHDL
Introducción
A medida que las redes neuronales convolucionales continúan aplicándose para resolver
problemas aún más complejos, sus demandas computacionales y de almacenamiento están
aumentando enormemente. Convencionalmente, las redes neuronales convolucionales se han
ejecutado en CPU y GPU, sin embargo, su bajo rendimiento y/o eficiencia energética presentan
un cuello de botella en su uso, como menciona (Mittal. 2018). De acuerdo con (Ovtcharov et al.
2015), las FPGA son plataformas prometedoras para la aceleración hardware de redes neuronales
convucionales, debido a sus características. En general, los FPGA proporcionan una mayor
eficiencia energética que las GPU y las CPU y un mayor rendimiento que las CPU como
menciona (Mittal, Vetter, 2015).
La investigación consiste en 2 partes fundamentales, como es el diseño de una red
neuronal convolucional (CNN) en software, la cual se implementará en hardware usando una
plataforma SoC De-10 Nano. La primera parte del proyecto se enfocó en el aprendizaje de la red