Library Incompatibility: PYNQ Composable Pipeline on KV260

Hi,
I’ve been trying to follow the PYNQ Composable Pipeline instructions to build a bitfile for the Kria KV260 Vision AI Starter Kit, however I’m running into library incompatibility issues with Vitis_Libraries.

PYNQ Version - V3.0
Board Name - Kria KV260 Vision AI Starter Kit
Tools:

  1. PYNQ Composable Pipeline V1.0.0
  2. Vitis Libraries v2020.2_update1
  3. Vivado 2022.2
  4. Vitis HLS 2022.2

To recreate the issue
I cloned the PYNQ Composable Overlay from https://github.com/Xilinx/PYNQ_Composable_Pipeline and then cloned the Vitis_Libraries repo from https://github.com/mariodruiz/Vitis_Libraries/tree/7bf6c52c3840e617f9c522e166f5c18b75afa0e9 inside the PYNQ_Composable_Pipeline directory to fill out the empty Vitis_Libraries directory given by the PYNQ_Composable_Pipeline repo. I navigated to boards/KV260 and ran make. The Makefile runs for a few seconds and then terminates with the errors shown below…

ERROR: [HLS 207-2976] no template named 'ap_axiu' in namespace 'xf::cv'; did you mean simply 'ap_axiu'? (../../../../src/dilate/dilate.cpp:20:9)
INFO: [HLS 207-4436] 'ap_axiu' declared here (/home/eoin/xilinx/Vitis_HLS/2022.2/common/technology/autopilot/ap_axi_sdata.h:95:1)
INFO: [HLS 200-111] Finished Command csynth_design CPU user time: 1.16 seconds. CPU system time: 0.25 seconds. Elapsed time: 1.53 seconds; current allocated memory: 0.723 MB.
 
    while executing
"source script_hls.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 [list source $arg] "

INFO: [HLS 200-112] Total CPU user time: 3.47 seconds. Total CPU system time: 0.6 seconds. Total elapsed time: 14 seconds; peak allocated memory: 313.852 MB.
INFO: [Common 17-206] Exiting vitis_hls at Fri Feb 17 12:58:33 2023...
make[1]: *** [Makefile:26: dilate.vhlsprj] Error 1
make[1]: *** Waiting for unfinished jobs....
ERROR: [HLS 207-2976] no template named 'ap_axiu' in namespace 'xf::cv'; did you mean simply 'ap_axiu'? (../../../../src/duplicate/duplicate.cpp:18:9)
INFO: [HLS 207-4436] 'ap_axiu' declared here (/home/eoin/xilinx/Vitis_HLS/2022.2/common/technology/autopilot/ap_axi_sdata.h:95:1)
INFO: [HLS 200-111] Finished Command csynth_design CPU user time: 1.44 seconds. CPU system time: 0.3 seconds. Elapsed time: 1.88 seconds; current allocated memory: 0.680 MB.
 
    while executing
"source script_hls.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 [list source $arg] "

INFO: [HLS 200-112] Total CPU user time: 3.62 seconds. Total CPU system time: 0.68 seconds. Total elapsed time: 14.25 seconds; peak allocated memory: 313.785 MB.
INFO: [Common 17-206] Exiting vitis_hls at Fri Feb 17 12:58:33 2023...
WARNING: [HLS 207-5527] 'Resource pragma' is deprecated, use 'bind_op/bind_storage pragma' instead (/home/eoin/Downloads/PYNQ_Composable_Pipeline/Vitis_Libraries/vision/L1/include/imgproc/xf_erosion.hpp:257:9)
ERROR: [HLS 207-2976] no template named 'ap_axiu' in namespace 'xf::cv'; did you mean simply 'ap_axiu'? (../../../../src/erode/erode.cpp:20:9)
INFO: [HLS 207-4436] 'ap_axiu' declared here (/home/eoin/xilinx/Vitis_HLS/2022.2/common/technology/autopilot/ap_axi_sdata.h:95:1)
INFO: [HLS 200-111] Finished Command csynth_design CPU user time: 1.43 seconds. CPU system time: 0.22 seconds. Elapsed time: 2.33 seconds; current allocated memory: 0.695 MB.
 
    while executing
"source script_hls.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 [list source $arg] "

There is a recurring warning following these errors listed as follows…

WARNING: [HLS 207-5527] 'Resource pragma' is deprecated, use 'bind_op/bind_storage pragma' instead (/home/eoin/Downloads/PYNQ_Composable_Pipeline/Vitis_Libraries/vision/L1/include/imgproc/xf_box_filter.hpp:230:9)

The only source code I’m using is what’s available on the PYNQ_Composable_Pipeline github. It appears to me like the cpp functions in src are relying on libraries in Vitis_Libraries which have been changed and are no longer compatible. Is there a workaround or fix available for these issues?

Hi @Eoin_Moore,

Welcome to the PYNQ community.

The composable overlay that is in the main branch can only be built with Vivado 2020.2.2 and would only work on PYNQ 2.7.0.

The composable overlay that is delivered to the KV260 with the PYNQ 3.0.1 image is on this branch GitHub - Xilinx/PYNQ_Composable_Pipeline at v1.1.0-dev, and can be built with Vivado 2022.1

Recently there was a question about using Vivado 2022.2 to build the composable, you can try this branch. However, this is something that is not thoroughly tested.

Mario