Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
definelicht committed Sep 13, 2021
1 parent dea94b1 commit a1ce61a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ _Do you use hlslib? Please consider [citing us](https://arxiv.org/abs/1910.04436

## Quick introduction

hlslib is a collection of C++ headers, CMake files, and examples, aimed at improving the quality of life of HLS developers. The current repertoire primarily supports Vivado HLS, but some Intel FPGA OpenCL support is being added. An extended abstract describing the project is [available here](https://arxiv.org/abs/1910.04436).
hlslib is a collection of C++ headers, CMake files, and examples, aimed at improving the quality of life of HLS developers. The current repertoire primarily supports Vitis and Vitis HLS (formerly SDAccel and Vivado HLS), with some support for Intel FPGA OpenCL. An extended abstract describing the project is [available here](https://arxiv.org/abs/1910.04436).

This project is developed at the [Scalable Parallel Computing Lab](https://spcl.inf.ethz.ch/) (SPCL) at ETH Zurich (see our [github](https://github.com/spcl)).

Expand All @@ -15,13 +15,15 @@ There are a few ways:

#### How do I use it?

Just `#include` the header(s) you are interested in. You can see an example [here](https://github.com/spcl/gemm_hls).
Just `#include` the header(s) you are interested in. You can see an example [here](https://github.com/spcl/gemm_hls)!

When a Xilinx hlslib header is included, compilation must allow C++11 features, and the macro `HLSLIB_SYNTHESIS` must be set whenever HLS is run. Set `-cflags "-std=c++11 -DHLSLIB_SYNTHESIS"` in your synthesis script, and `--xp prop:kernel.<entry function>.kernel_flags="-std=c++11 -DHLSLIB_SYNTHESIS"` when building Xilinx kernels. See the included `xilinx_test/CMakeLists.txt` for reference.
When a Xilinx hlslib header is included, compilation must allow C++11 features, and the macro `HLSLIB_SYNTHESIS` must be set whenever HLS is run. Set `-cflags "-std=c++11 -DHLSLIB_SYNTHESIS"` in your synthesis script, and `--advanced.prop kernel.<name of your kernel>.kernel_flags="-std=c++11 -DHLSLIB_SYNTHESIS"` when building Xilinx kernels. See the included `xilinx_test/CMakeLists.txt` for reference.

Officially supported versions of Vitis currently include 2021.1, 2020.2, 2020.1, and 2019.2. Older versions (including SDx and SDAccel) _might_ work, but should be used at your own discretion.

## Feature overview

We have Doxygen now! Simply run `make` to generate the docs.
We have Doxygen! Set the CMake flag `HLSLIB_BUILD_DOCUMENTATION=ON` to generate the docs.

A brief overview of hlslib features is given below.

Expand Down
5 changes: 2 additions & 3 deletions xilinx_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,10 @@ function(sdaccel_target KERNEL_NAME ADDITIONAL_HLS_FLAGS ADDITIONAL_VPP_FLAGS)
-I${CMAKE_BINARY_DIR}
--kernel ${KERNEL_NAME}
--platform ${HLSLIB_DSA_NAME}
--xp prop:kernel.${KERNEL_NAME}.kernel_flags="${HLSLIB_SYNTHESIS_FLAGS}"
--advanced.prop kernel.${KERNEL_NAME}.kernel_flags="${HLSLIB_SYNTHESIS_FLAGS}"
--profile_kernel "data:all:all:all"
--profile_kernel "stall:all:all"
--profile_kernel "exec:all:all"
--max_memory_ports all)
--profile_kernel "exec:all:all")
if(((${Vitis_MAJOR_VERSION} LESS 2018) AND (${Vitis_MINOR_VERSION} LESS 3)) OR ${Vitis_MAJOR_VERSION} LESS 2017)
add_custom_target(build_${KERNEL_NAME}_hardware
COMMAND XILINX_PATH=${CMAKE_CURRENT_BINARY_DIR} ${Vitis_COMPILER} -t hw
Expand Down

0 comments on commit a1ce61a

Please sign in to comment.