SmartVisionApplicationswithSDSoC

Course Description

This two-day course is structured to help designers new to the SDSoC™ development environment to quickly understand the full "end-user" tool flow to create accelerated systems. The focus is on utilizing the tools to accelerate an existing design at the system architecture level, not on the optimization of the accelerator microarchitectures.Several optional modules are provided to quickly provide students with the necessary background on both hardware and software. Participants will work with EagleGo-HD Smart Vision Platform based on Zynq SoC to put their knowledge and skills to test with image processing processing exercises.

• Identify candidate functions for hardware acceleration by using the TCF profiling tool• Use the System Debugger's capabilities to control the execution flow and examine memory and variables during a debug session• Move designated software functions to hardware and estimate the performance of the accelerator and the effect on the entire system• Use the hardware/software event trace to understand the performance of an application given the workload, hardware/software partitioning, and system design choices

Course Outline

Day 1

1.1 Zynq AP SoC Architecture Support for Accelerators [Optional]Discusses the relevant aspects of the Zynq All Programmable SoC architecture for accelerator design. The focus is on AXI ports and protocols, system latency, and memory utilization.

1.2Software Overview [Optional]Provides a thorough understanding of how the integrated design environment works, including how the compiler and linker behave, basics of makefiles, DMA usage, and variable scope.

1.3Introduction to the SDSoC ToolIntroduces the purpose, underlying structures, and basic functionality of the SDSoC development environment.

1.4 SDSoC Tool FlowExplains the complete development flow of the SDSoC integrated development environment (IDE).

1.5 Application DebuggingThrough the use of the System Debugger, students will learn how to follow the control flow in an executing application and see the effects of the code on memory to successfully debug software issues.

1.6 Application ProfilingProfiling is the process that identifies how the processor is spending its time. Through profiling, the user can quickly identify which functions must be optimized or moved to hardware to satisfy the performance requirements.

1.7 Understanding Estimations in the SDSoC ToolOnce a function is moved to hardware, questions remain: Will the accelerator fit in hardware? Will it fun fast enough? Estimations can provide the answers.

1.8QEMU EmulationDescribes how to use the emulation feature in the SDx IDE.

1.9 Hardware/Software Event TracingHardware/software event tracing helps users understand the performance of their application given the workload, hardware/software partitioning, and system design choices. Such information helps the user to optimize and improve system implementation.

2.0 Hands-on Implementation Using Xilinx ZYNQ SoC platform as labs platform, students will be familiar with the video system development processes and prepare for future complex digital system design.

Lab 1: Making image more clear

Lab Description: Through the EagleGo platform, participants will learn how to capture HD1080p video data from image, realizing the White Balance operation, and then send out the video through the HDMI interface. Restore the true color of the image, make the image clearer.

Lab Description: Through the EagleGo platform, you will learn how to capture HD1080p video data from image, realizing the edge detecting operation(Sobel filter), and then send out the video through the HDMI interface. After processing, only the edge of object can display.