Code Monkey home page Code Monkey logo

sdsoc-tutorials's Introduction

English | 日本語

2018.3 SDSoC™ Development Environment Tutorials

See other versions
Tutorial Description
Getting Started This tutorial shows how to create an SDSoC environment platform that can be used to accelerate software functions using the SDx™ Integrated Development Environment (IDE) tool.
Migrate OpenCV to xfOpenCV This tutorial demonstrates how to migrate from using OpenCV to using xfOpenCV, which is hardware-accelerated functions optimized for Xilinx® SoCs and FPGAs. By optimizing your code to use xfOpenCV, code is up to 40x faster than embedded GPUs and 100x faster than CPUs.
Platform Creation This tutorial demonstrates how to create an SDSoC platform on which an example SDSoC application is created and run.

Overview

The SDSoC (Software-Defined System-On-Chip) environment is an Eclipse-based Integrated Development Environment (IDE) for implementing heterogeneous embedded systems using the Zynq-7000 SoC and Zynq UltraScale+ MPSoC platforms. The SDSoC environment provides an embedded C/C++ application development experience with an easy to use Eclipse IDE, and comprehensive design tools for heterogeneous Zynq SoC development to software engineers and system architects. The SDSoC environment includes a full-system optimizing C/C++/OpenCL compiler that provides automated software acceleration in programmable logic combined with automated system connectivity generation. The application programming model within the SDSoC environment should be intuitive to software engineers. An application is written as C/C++/OpenCL code, with the programmer identifying a target platform and a subset of the functions within the application to be compiled into hardware. The SDSoC system compiler then compiles the application into hardware and software to realize the complete embedded system implemented on a Zynq device, including a complete boot image with firmware, operating system, and application executable.

The SDSoC environment abstracts hardware through increasing layers of software abstraction that includes cross-compilation and linking of C/C++/OpenCL functions into programmable logic fabric as well as the Arm CPUs within a Zynq device. Based on a user specification of program functions to run in programmable hardware, the SDSoC environment performs program analysis, task scheduling and binding onto programmable logic and embedded CPUs, as well as hardware and software code generation that automatically orchestrates communication and cooperation among hardware and software components.

The SDSoC environment 2018.2 release includes support for the ZC702, ZC706, and Zed development boards featuring the Zynq-7000 SoC, and for the ZCU102 development board featuring the Zynq UltraScale+ MPSoC. Additional platforms are available from partners. For more information, visit the SDSoC development environment web page.


Copyright© 2019 Xilinx

sdsoc-tutorials's People

Contributors

amantalwar04 avatar brydonc avatar erintruax avatar ryanvergel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdsoc-tutorials's Issues

write_dsa failed

image

As the picture shows,when I try to write dsa in vivado 2018.2, it shows the error that "Project property dsa.name needs to be set before generating a DSA.", how to solve this problem?

Warnings in Lab3 while building sdx_app1

Hi,
I got 2 warnings while building the sdx_app1 in lab 3, do you know what seem to be the issues? I am using zedboard as target board, so there were some modifications made for zedboard as I followed along the tutorials. The build was completed and output files in sd_card folder can be run on my zedboard and output was seen via terminal program. Thank you.

  1. WARNING: [CF2XD 83-1006] Invalid clock id 1 for platform zedboard
    clock_id

  2. CRITICAL WARNING: [VPL 60-724] 'D:/SDSoC_projects/sdx_workspace/zedboard/export/zedboard/hw/zedboard.dsa' : failed DSA integrity check: digest mismatch.
    DSA

ERROR: [VPL-4] Design failed to meet timing.

Hi, I was migrating my OpenCV application to xfOpenCV. I got the following error when build with SDx2018.2. How can I fix this?


[16:40:23] Starting bitstream generation..

===>The following messages were generated while Compiling (bitstream) accelerator binary: bin Log file: /home/jun/workspace_sdx/VideoFusion/Release/_sds/p0/vivado/prj/prj.runs/impl_1/runme.log :
ERROR: [VPL-4] Design failed to meet timing.
Failed timing checks (paths):
{zcu102_rv_ss_i/zynq_ultra_ps_e_0/inst/PS8_i/MAXIGP0ACLK --> zcu102_rv_ss_i/axi_interconnect_hpm0/m14_couplers/auto_cc/inst/gen_clock_conv.gen_sync_conv.gen_conv_write_ch.w_sync_clock_converter/gen_sync_clock_converter.m_tvalid_r_reg/D}

Please check the routed checkpoint (dr_routed_timing.dcp) and timing summary report (dr_timing_summary.rpt) for more information.
ERROR: [VPL 60-704] Integration error, problem implementing dynamic region, route_design ERROR
ERROR: [VPL 60-806] Failed to finish platform linker
ERROR: [SdsCompiler 83-5019] Exiting sds++ : Error when calling '/home/jun/Programs/Xilinx2018.2/SDx/2018.2/bin/vpl --iprepo /home/jun/workspace_sdx/VideoFusion/Release/_sds/iprepo/repo --iprepo /home/jun/Programs/Xilinx2018.2/SDx/2018.2/data/ip/xilinx --platform /home/jun/zcu102-rv-ss-2018-2/zcu102_rv_ss/zcu102_rv_ss.xpfm --temp_dir /home/jun/workspace_sdx/VideoFusion/Release/_sds/p0 --output_dir /home/jun/workspace_sdx/VideoFusion/Release/_sds/p0/vpl --input_file /home/jun/workspace_sdx/VideoFusion/Release/_sds/p0/.xsd/top.bd.tcl --target hw --save_temps --kernels w0_xf_boxFilter:w3_xf_add:w2_xf_subtract:w1_xf_multiply:w4_xf_calcHist:adapter --webtalk_flag SDSoC --remote_ip_cache /home/jun/workspace_sdx/ip_cache --xp "vivado_prop:run.impl_1.{STEPS.PHYS_OPT_DESIGN.ARGS.MORE OPTIONS}={-directive Explore}" --xp "vivado_prop:run.impl_1.{STEPS.ROUTE_DESIGN.ARGS.MORE OPTIONS}={-directive Explore}" --xp "param:compiler.deleteDefaultReportConfigs=false" '
sds++ log file saved as /home/jun/workspace_sdx/VideoFusion/Release/_sds/reports/sds.log
ERROR: [SdsCompiler 83-5004] Build failed
sds++ completed at Tue Mar 19 16:45:02 UTC 2019

In lab 3(Optimize the Application Code), step 2, does “clean project” need to be performed before “build project” in order to make the modified code take effect?

Hi,
As I followed step 2 in lab 3 (Optimize the Application Code), upon project build completion after inserting #pragma SDS data sys_port(A:ACP, B:AFI) code in mmultadd.h, mmult_1 IP port B was not assigned to AFI port in the Data Motion Network Report as shown in the tutorial. However, if I perform “clean project” before “build project”, mmult_1 IP port B will be assigned to AFI port in the Data Motion Report.
system_port

Run xfOpenCV tutorial on Ultra96 board

Hi,
As it is mentioned in "Migrate OpenCV to xfOpenCV Labs", it is designed to use the released ZCU102 reVISION Platform.
I want to run this lab on Ultra96 platform. Is there any where to find released Ultra96 reVision Platform to run this lab ?

Can't find xfFunctions in lab-1-migrate-opencv-to-xfopencv

Why the following three functions could not be resolved.
xf::colorthresholding
xf::erode
xf::dilate
But no bug in the line where xf::RGB2HSV is used.
And I can not find the xf::colorthresholding function in the Xilinx OpenCV User Guide (UG1233)
Is so weird. I'm sure I Edited the CFLAGS right and all head files are included.

Question regarding setting root function for performance estimation

Hi,
In lab 2 performance estimation, it seems not all function calls in the main.cpp can be set as root function. Only the ones with small "S" letter on the upper right of the green dots ahead of the function names were displayed in the "select root function" window, if it is possible to select any function we want? And once I set root function from main to others, I was not able to see the main function in the “select root function windows” again in order to change back. Is there anyway to set it back? Thank you in advance!
performance2

fatal error:fatal error: xil_io.h: No such file or directory

Hello,when i compile my code with SDx in lab2, I get this error:

image
when
Step 2: Creating an FSBL Application
Right-click on Debug and select Build.

The SDx Console window shows the FSBL compilation steps and the size of the resulting fsbl.elf executable software file.

best Regards

Error in step 2 of Lab 2: Performance Estimation

Error occur
when I do the step 2 of Lab 2: Performance Estimation

sds.log
... ERROR: [VPL 60-399] vivado failed, please see log file for detail: '/home/greedyhao/Projects/fpga/sdx-2018-2/lab2_2/Release/_sds/p0/vivado/vivado.log' ERROR: [VPL 60-806] Failed to finish platform linker ...
vivado.log
... couldn't change working directory to "prj/prj.sim/sim_1/behav/xsim": no such file or directory while executing "cd $project_name/$project_name.sim/sim_1/behav/$simulatorSelected" (procedure "hw_em_common_util::generate_simulation_scripts_and_compile_u..." line 49) invoked from within "hw_em_common_util::generate_simulation_scripts_and_compile_unip $config_info" (file "/home/greedyhao/Projects/fpga/sdx-2018-2/lab2_2/Release/_sds/p0/vivado/ipirun.tcl" line 192) ...

Lab 2 Step 4/5

In lab 1 the user will need to write out a HDF. Lab 2 step 4/5 says
Click Add New DSA/HDF….

In the Add New DSA/HDF dialog, navigate to the HDF exported in Lab 1.

Lab 1 needs to add in the step at the end. File -> Export Hardware (Local to project)

Error building xfOpencv application using Zedboard

Hi, I'm trying to migrate my opencv application to xfopencv. I already built it with zcu102 revision platform, but when I transfer to zedboard, error shown as follow.

'' ERROR: [SYNCHK 200-79] Cannot find the top function 'w0_xf_boxFilter' in the design. Possible causes are: (1) the top function name is misspelled; (2) the top function is nonexistent or declared as static.
ERROR: [HLS 200-70] Synthesizability check failed.''

log file attached here:
sds_guided_filter.log

My setting is as follow:
image

image
/usr/local/arm/opencv-install/include/opencv is a cross compilied OpenCv.
image

This is my source file. Could anyone help me build it?
Thanks.

ZCU104 Freezes when running opencv to xfopencv tutorial

I have a ZCU104 and worked through the OpenCV to xfOpenCV tutorial. I swapped out the board files from the zcu102-rv-ss to zcu104-rv-ss. Everything successfully built, however when I bring the 4 files from the tutorial over to my board and run "./colordetect image.jpg" I am met with nothing. The ZCU104 is unresponsive and generates no output. I am unable to kill the program with CTRL-C or any other attempts other than to turn off the board. I am wondering if there is an additional step or something to have this tutorial run on the ZCU104.

I built the system using the code from the source folder and followed the tutorial, as well as building the solution folder code. Both with the same result.

no matching function for call to 'erode"

I try to build example same as tutorial and document but i got some problem with argument in xf: :erode, xf::dilate with wrong matching function call.
error log:
/home/fallinlove/SDx_workspace/opencvsample/src/colordetect_accel.cpp:24:2: error: no matching function for call to 'erode'
xf::erode<XF_BORDER_CONSTANT, XF_8UC1, HEIGHT, WIDTH, XF_NPPC1>(_range, _erode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fallinlove/SDx_workspace/opencvsample/libs/xfopencv/include/imgproc/xf_erosion.hpp:323:6: note: candidate function template not viable: requires 3 arguments, but 2 were provided
void erode (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWSK_COLS])
^
/home/fallinlove/SDx_workspace/opencvsample/src/colordetect_accel.cpp:25:2: error: no matching function for call to 'dilate'
xf::dilate<XF_BORDER_CONSTANT, XF_8UC1, HEIGHT, WIDTH, XF_NPPC1>(_erode, _dilate1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fallinlove/SDx_workspace/opencvsample/libs/xfopencv/include/imgproc/xf_dilation.hpp:318:6: note: candidate function template not viable: requires 3 arguments, but 2 were provided
void dilate (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWS
K_COLS])
^
/home/fallinlove/SDx_workspace/opencvsample/src/colordetect_accel.cpp:26:2: error: no matching function for call to 'dilate'
xf::dilate<XF_BORDER_CONSTANT, XF_8UC1, HEIGHT, WIDTH, XF_NPPC1>(_dilate1, _dilate2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fallinlove/SDx_workspace/opencvsample/libs/xfopencv/include/imgproc/xf_dilation.hpp:318:6: note: candidate function template not viable: requires 3 arguments, but 2 were provided
void dilate (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWSK_COLS])
^
/home/fallinlove/SDx_workspace/opencvsample/src/colordetect_accel.cpp:27:2: error: no matching function for call to 'erode'
xf::erode<XF_BORDER_CONSTANT, XF_8UC1, HEIGHT, WIDTH, XF_NPPC1>(_dilate2, _dst);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/fallinlove/SDx_workspace/opencvsample/libs/xfopencv/include/imgproc/xf_erosion.hpp:323:6: note: candidate function template not viable: requires 3 arguments, but 2 were provided
void erode (xf::Mat<TYPE, ROWS, COLS, NPC> & _src, xf::Mat<TYPE, ROWS, COLS, NPC> & _dst,unsigned char _kernel[K_ROWS
K_COLS])
^
ERROR: [SdsCompiler 83-5005] clang exited with non-zero code processing /home/fallinlove/SDx_workspace/opencvsample/src/colordetect_accel.cpp
sds++ log file saved as /home/fallinlove/SDx_workspace/opencvsample/Release/_sds/reports/sds_colordetect_accel.log
ERROR: [SdsCompiler 83-5004] Build failed

src/subdir.mk:21: recipe for target 'src/colordetect_accel.o' failed
make: *** [src/colordetect_accel.o] Error 1

15:43:25 Build Finished (took 17s.858ms)

Is the custom platform created and added in the repository in lab 3 able to be used in a new workspace?

Hi,
As I followed along lab 3 from step 1 through step 6, there is no issue to add a custom platform to repository then selected this custom platform in step 6 as a platform type for sdx_app1 project.
After lab3, I created a new workspace for a different lab, and then I was not able to find the custom platform name created in lab 3 from the platform list for the new project. I am not sure if it is because the workspace is different. Now should I use the steps in lab 3 to create a new platform with the files stored in staging area from lab 2, and then generate the platform and add it into repository in current workspace again? Or is there any easy way to do it? Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.