09-28-2018 08:16 PM
Hello , i have succeeded in building xfOpenCV/example/dilation in zedboard7020 in Sdx 2018.2 ! And now i am trying to build my own project just changing from xfOpenCV/example/dilation --
#include "xf_dilation_config.h" #pragma SDS data access_pattern("_src.data":SEQUENTIAL, "_dst.data":SEQUENTIAL) #pragma SDS data copy("_src.data"[0:"_src.size"], "_dst.data"[0:"_dst.size"]) #pragma SDS data mem_attribute("_src.data":NON_CACHEABLE|PHYSICAL_CONTIGUOUS) #pragma SDS data mem_attribute("_dst.data":NON_CACHEABLE|PHYSICAL_CONTIGUOUS) void dilation_accel(xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> &_src,xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> &_dst) { xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> img2; xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> img3; xf::Threshold<XF_THRESHOLD_TYPE_BINARY,XF_8UC1,HEIGHT, WIDTH,NPC1>(_src,img2,30,255,0); xf::dilate<XF_BORDER_CONSTANT,TYPE ,HEIGHT, WIDTH,NPC1>(img2, img3); xf::erode<XF_BORDER_CONSTANT,TYPE ,HEIGHT, WIDTH,NPC1>(img3,_dst); }
What i have changed is that adding xf::Threshold and xf::erode to the top function , does which break the rule in using xfOpenCV ? This new project has been building from yesterday to now and the build log is like the following:
INFO: [DMAnalysis 83-4497] Analyzing callers to hardware accelerators... Creating Vivado project and starting FPGA synthesis. [10:24:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:25:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:26:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:27:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:28:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:29:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:30:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:31:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:32:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:33:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:34:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:24:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:25:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:26:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:27:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:28:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:29:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:30:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:31:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:32:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:33:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running. [10:34:29] Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running.
I do not know what's wrong with it ! There is so many statements like " Block-level synthesis in progress, 0 of 1 jobs complete, 1 job running." and the number of these statements is going increased.
10-12-2018 01:54 AM
Sdsoc seems does not support define a local xf::Mat in functions like function dilation_accel() in my file !
Like the following img2 and img3 in my function.
xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> img2;
solution: define the variable img2 in testbeach file , send the img2 as an argument of function dilation_accel().
09-29-2018 07:00 PM
10-08-2018 10:29 PM
Hi @wd-hyj
Please let us know what the issue was and how you solved it.
Also, mark that as a solution
10-12-2018 01:54 AM
Sdsoc seems does not support define a local xf::Mat in functions like function dilation_accel() in my file !
Like the following img2 and img3 in my function.
xf::Mat<TYPE, HEIGHT, WIDTH, NPC1> img2;
solution: define the variable img2 in testbeach file , send the img2 as an argument of function dilation_accel().