Closed ps-george closed 5 years ago
The statement in Page no: 119 of UG902 says, "The C memcpy function is only supported for synthesis when used to transfer data to or from a top-level function argument specified with an AXI4 master interface"
In your case, the memcpy in xf::warpperspective is not happening on a top-level function argument,. You are doing a deep copy from the top-level argument(in_img) into another pointer location (in_mat.data) in the Array2xfMat function and passing that to xf::warpperspective. Hence the error.
This solves this issue. I can now generate an IP block.
However, generated for my target board, and creating a minimal design (ZYNQ -> AXI Interconnect -> HLS Warp Perspective) requires more DSP blocks than are available.
OS: Ubuntu Tool Version: Vivado HLS 2018.2
I am getting this error:
ERROR: [SYNCHK 200-22] ../xfopencv/include/common/xf_utility.h:370: memory copy is not supported unless used on bus interface possible cause(s): non-static/non-constant local array with initialization).
Due to the calls to
xFCopyBlockMemoryIn1
andxFCopyBlockMemoryOut1
in the implementation ofxfopencv/include/imgproc/xf_warpperspective.hpp
andxfopencv/include/imgproc/xf_warpaffine.hpp
, which callmemcpy
.The code I'm trying to synthesize is as follows:
I can call memcpy from top level with no issues, e.g. the following synthesizes fine:
But the issue is I can't (and shouldn't be) defining bus/m_axi interfaces for functions defined in xfopencv source.
What am I missing here?