Skip to content

High Level Synthesis of a trained Convolutional Neural Network for handwritten digit recongnition.

License

Notifications You must be signed in to change notification settings

QiuXuHui/HLS-CNN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HLS-CNN

High Level Synthesis of a trained Convolutional Neural Network for handwritten digit recongnition.

Related work

This project uses many concepts coming from a previous work that can be found here. The main difference is that our implementation is written for Vitis HLS version 2020.2 instead of Vivado HLS version 2018.3.

Summary

Project presentations for the "Embedded Systems" Master course at University of Parma: FS presentation and GB presentation.

Workflow and code structure

Data:

  1. Input images.

Python:

  1. model definition, training and evaluation;
  2. export of (trained) network weights and architecture through C header files.

Headers:

  1. C header files containing network architecture and weights.

C:

  1. replication of the trained network in C (using previously-generated headers).

Vitis HLS:

  1. translation from C to C++ and code refactoring to take advantage of Vitis HLS pragma and directives.

Warning

C/C++ code of this project is designed to generate an RTL description that meets ambitious performance requirements through pipelining and parallelism; to achieve this, we wrote specific and non-parametric code, meaning that changes to the network architecture are not automatically propagated to the rest of the project.

About

High Level Synthesis of a trained Convolutional Neural Network for handwritten digit recongnition.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 92.4%
  • C++ 4.0%
  • Python 3.2%
  • Other 0.4%