Skip to content

Course Project for CS577, Using keras2c to make machine learning model vivado synthesizable

Notifications You must be signed in to change notification settings

Koushik2824/HLS-For-Digit-Recognition

 
 

Repository files navigation

HLS for Digit Recognition Model

Project Objective

This project involves high-level synthesis (HLS) of machine learning models for implementation on FPGAs. The objective is to convert the model to C using Keras2C perform HLS using Vivado HLS, and compare results with the results obtained through HLS4ml. Link for Model - https://github.com/Sai-004/MNIST-Digit-Classification-Model

Outline of project

  1. From the given model, we have generated RTL using hls4ml, through some modifications to the code generated by the hls4ml (as the code itself was not synthesisable). This RTL's performace in terms of latency and area was calculated.
  2. The given model is converted into c using keras2c.
  3. This c code is made hls-synthesisable.
  4. The performance of the obtained RTL was found through vivado-hls c-synthesis and RTL co-simulation.
  5. The c-code was modified using various techniques such as code-motion, hls pragmas addition and we have achieved latency just slightly higher than latency achieved through hls4ml.
  • To view the HLS4ML Report,
cd ./hls4ML/hls4ml_model/myproject_prj/solution1/syn/report/myproject_csynth.rpt

Contributors

  • Baddigam Siddardhareddy, 210101027
  • Nitish Kumar Pinneti, 210101125
  • Naladala Navadeep, 210101072
  • Munagala Devi Naga Sai Srinivas, 210101070
  • Mukka Koushik, 210101069

About

Course Project for CS577, Using keras2c to make machine learning model vivado synthesizable

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ada 51.9%
  • C++ 27.1%
  • C 8.8%
  • VHDL 8.1%
  • Tcl 2.4%
  • Verilog 1.7%