TACOCAT:

Trainable Acceleration of Classification Operations via Commonly Available Technology

Whitepaper Video Demonstration

TACOCAT is a hardware-based machine learning accelerator built from ordinary components. Its neural network can be trained to recognize any set of three handwritten characters. When tested with five different three-letter subsets of the alphabet, prediction accuracy test results ranged from 86 to 97%

Project Background

Problem

  • Many useful software-based neural network models are too large and slow to be implemented on mobile devices. Hardware-based neural network accelerators may soon allow these models to run on phones and tablets without sending data to the cloud.

  • We were interested in building an experimental hardware-based neural network, but all of the research designs that we found used hardware that is not yet commercially available, such as memristor crossbar arrays.

Solution

  • We wondered if it would be possible to build a demonstration-sized network that would be able to classify datasets containing a small number of different characters.

  • After investigating the project’s feasibility, we set out to design a demonstration-sized network that can recognize a set of three handwritten characters using commonly-available discrete components.

Hardware-based Neural Network

Inputs

Classifies any set of three different handwritten characters

Accuracy

Prediction accuracy ranges from 86 to 97%

Construction

Built from common CMOS components, without any custom VLSI

Design

Motherboard

The TACOCAT motherboard design includes all of the network’s hardware-based artificial neurons along with the synapses connecting the hidden-layer neurons to the output-layer neurons. The motherboard also includes a 32-bit ARM microcontroller that measures neuron voltages and drives the 100 pixel input lines that connect to each daughterboard.

Daughterboard

Each daughterboard implements the 100 hardware synapses that are required for each hidden-layer neuron. The daughterboard performs 100 multiplication operations simultaneuosly, and the sum of the products is calculated in logarithmic time complexity using an analog adder tree.

Software

The TACOCAT software is written in Python 3.7. It contains modules for loading image data, training a neural network (software- or hardware-based), simulating a hardware-based neural network with SPICE, and connecting to the TACOCAT neural network’s microcontroller.

Firmware

Firmware for the STM32H743 microcontroller was written in C. The microcontroller acts as an interface between the software-based training algorithm and the neural network hardware, mediating the exchange of weight values, input data, and neuron outputs between the two entities.

Papers

Conference Paper

A summary of the TACOCAT project. This paper briefly describes the design and construction of a hardware-based neural network that was successfully trained to classify 100-pixel images from handwritten character datasets. 8 pages.

Project Report for Senior Design II

The final design documentation for the TACOCAT project. 128 pages.

Project Report for Senior Design I

A preliminary design document for the 100-pixel TACOCAT neural network. Also includes design and test results for small-scale 4-pixel prototype network. 122 pages.

Initial Project Proposal

The original proposal for the TACOCAT project. This document includes early system design plans as well as estimates for the project schedule and budget. 8 pages.

Acknowledgements

The members of Group 31 would like to give special thanks to Dr. Chung Yong Chan, who was instrumental in the group’s success from start to finish. Dr. Chan generously provided support, guidance, and a voice of reason throughout the entire duration of the project, and we will remain grateful for his invaluable mentorship.

Group 31

Authors

Avatar

Deven
Morone

Electrical Engineering

Avatar

German
Romero Castro

Electrical Engineering

Avatar

Justin
Sapp

Computer Engineering

Avatar

Luke
Minks

Electrical Engineering