Design and Implementation of a Parameterizable Artificial Feedforward Neural Network in FPGA
FPGA. Artificial Intelligence. Artificial Neural Networks.
An Artificial Neural Network (ANN) is a parallel and distributed network made of nonlinear
processing units arranged in layers.This work consists of the project and hardware
implementation of the architecture of a parameterizable feedforward neural network. The
Verilog hardware descriptions are generated by a Python script. The parameters are the
number of input bits, the number of layers, the number of neurons per layer, the number
of bits for the integer and fraction parts in fixed-point representation and the number of
bits for the activation function look-up table (LUT) representation. This parameterization
allows a minimum hardware configuration to be met at simulation time for a given
problem, thus saving both development time and resources in hardware. As an application,
a hardware was generated to describe a network which was trained offline with the MNIST
database and which classifies images from a camera video streaming in real time. In this
way, this work is appropriate both to support research in related areas that need to embed
an artificial neural network, as well as to develop improvements in the architecture, given
the availability of the developed verification environment.