CMake macros and utilities to include Vitis platform into the ROS 2 build system (ament) and its development flows.
NOTE: ament_vitis
has a direct runtime Non-ROS dependency with Vitis
unified software platform. Download and install Vitis here.
Synthesize C++ with Vitis HLS into an acceleration kernel
# example 1: resize_accel kernel
vitis_acceleration_kernel(
NAME resize_accel
FILE src/image_proc/xf_resize_accel.cpp
CONFIG cfg/kv260.cfg
INCLUDE
include/image_proc
${CMAKE_INSTALL_PREFIX}/include
TYPE hw
)
# example 2: rectify_accel kernel
vitis_acceleration_kernel(
NAME rectify_accel
FILE src/image_proc/xf_rectify_accel.cpp
CONFIG cfg/kv260.cfg
INCLUDE
include/image_proc
${CMAKE_INSTALL_PREFIX}/include
TYPE hw
)
Link and implement (place & route) a previously synthesized acceleration kernel with Vitis
# example 3: image_proc kernel
vitis_link_kernel(
OUTPUT image_proc
KERNELS resize_accel rectify_accel
CONFIG cfg/kv260_image_proc.cfg
)
Synthesize, place & route an acceleration kernel with Vitis
# example 4: vadd kernel
vitis_acceleration_kernel(
NAME vadd_faster
FILE src/vadd.cpp
CONFIG src/kv260.cfg
CLOCK 100000000:vadd_faster
DTSI src/vadd_faster.dtsi
INCLUDE
include
TYPE
hw
LINK
PACKAGE
)
Advanced: generate TCL scripts for C simulation and synthesis customizing the Vitis or Vivado flows
# C simulation and synthesis
vitis_hls_generate_tcl(
PROJECT
project_faster_doublevadd_publisher
SRC
src/vadd.cpp
HEADERS
include
TESTBENCH
src/testbench.cpp
TOPFUNCTION
vadd
CLOCK
4
SYNTHESIS
)
This package claims to be in the Quality Level 4 category, see the Quality Declaration for more details.