How to: design an accelerator in C/C++ (Xilinx Vivado HLS)
Tutorial guide:
Tutorial videos:
See How to: design an accelerator in SystemC (Cadence Stratus HLS)
What you will learn
- Generate a customized accelerator
- source code skeleton
- testbench
- Vivado HLS synthesis scripts
- device driver
- user-space application skeleton
- Implement accelerator-specific code in C++
- computation kernel
- input and golden output
- validation
- Integrate a new accelerator into an ESP instance and test it on FGPA
What you will need
- Prerequisites
- Equipment
- One of the supported FPGA boards (see homepage)
- (optional) An internet router
- (optional) Prebuilt material
- The source code, testbench and Vivado HLS scripts for the MAC accelerator
- The device drivers for the MAC accelerator
- Two working folders for Xilinx VCU118 and Xilinx VC707
What you can read
ESP4ML: Platform-Based Design of Systems-on-Chip for Embedded Machine Learning
Davide Giri, Kuan-lin Chiu, Giuseppe Di Guglielmo, Paolo Mantovani, Luca P. Carloni
In Proceedings of the Design, Automation and Test in Europe Conference (DATE), 2020
What you can contribute
The ESP team welcomes external contributions and collaborations on a variety of topics including but not limited to:
-
Accelerator designs for a wide range of application domains
-
Support for more HLS tools
Check out our contributing guidelines.