Skip to content

selyunin/truenorth_cpp_hls

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

harmonia_src

Vivado & HLS project: neural monitor for missile case study

Description

This is a source code to generate a vivado project which is used as a case study for a neural monitor in DATE'2016 paper.

Requirements

  • Vivado 2015.2
  • Vivado HLS
  • Python 2.7

Installation instructions

To generate all the required IPs and the Vivado project run:

installation_script

(i.e. the above script will do ALL the required work up to bit-stream generation, as a USER in an ideal world you do not need to do anything)

The structure of the repository:

  • hls_src contains C/C++ sources for generating neural monitors in vivado HLS. Each sub-monitor is generated in a sequence of steps which are governed by the corresponding tcl-scripts.

  • ip_from_hls is a folder to store IPs generated by vivado HLS. The script copy_hls_ips.sh in this folder copies generated IPs to from hls_src to this directory.

  • ip_infineon contains IPs that are used in the project developed by Infineon (e.g. RS-trigger, Clock divider, signal generator)

  • vivado holds all vivado related source files and tcl-scripts for generating a vivado project. The script build_missile.tcl` is a main script for creating the project.

The flow to generate the vivado project:

  • hls_src contains C/C++ sources for generating neural monitors in vivado HLS. Each sub-monitor is generated in a sequence of steps which are governed by corresponding tcl-scripts. For monitors:

     - and_mon 
    
     - bounded_hist 
    
     - bounded_once 
    
     - edge_mon 
    
     - impl_mon 
    
     - punc_once_4
    
     - punc_once_5
    

    we need to run vivado_hls -f {monitor}.tcl. This script invokes Vivado HLS to perform compilation, RTL synthesis, co-simulation and finally to generate IP which corresponds to a sub-monitor.

  • IPs generated by HLS are buried in directory tree (e.g. {monitor}/solution1/impl/ip/{IP_NAME}.zip). The script copy_hls_ips.sh in ip_from_hls directory copies all the generated IPs in one place to use these IP further in Vivado project.

  • The tcl-script build_missile.tcl in the vivado folder generates the Vivado project that contains block design and a debug core. Files in vivado/src folder are sourced and included if necessary.

    To create the project, run

source build_missile.tcl

from Vivado Tcl Console.

License

Need to agree about licencing terms.

About the author

I am a PhD Student at Vienna University of Technology and a project assistant in HARMONIA FFG Project.

Konstantin Selyunin

http://www.selyunin.com