The easy to use IDE features a project creation wizard where the
user can select the target platform and operating system, and use
templates to create fully functioning SDSoC projects that can be
used as starting point to build their own applications.
SDSoC also provides software teams with a simple GUI option
to select functions to be accelerated in the programmable logic.
The SDSoC compiler will generate all the necessary hardware and
software pieces to be readily run on a target platform board.
System-Level Profiling
Building on the advanced software profiling found today in the
Xilinx Software Development Kit (SDK), SDSoC adds system-level
profiling for rapid system (hardware and software) performance
estimation. This enables rapid generation and exploration for
optimal total system performance and power.
SDSoC allows users to profile their software application, using a
non-intrusive profiler based on PC sampling as well as using the
standard gprof profiler, to identify the function that takes up most
of the time and are candidates for hardware acceleration.
SDSoC then adds rapid estimation of system (hardware and
software) performance and device utilization to enable fast
system-level architecture exploration for optimal total performance,
resource utilization and power. Users can specify which functions
should be accelerated in programmable logic, and SDSoC
instruments the C/C++ code to report software cycles, hardware
cycles, estimates for the data transfer, overall application speedup
as well as hardware resource utilization.
Leveraging the platform-based performance estimation flow,
software developers can rapidly get an estimation of performance
impact of moving one or more software functions to hardware
for acceleration in a matter of minutes versus actual hardware
generation which can take up to an hour or more.
On the target platform, SDSoC provides automated
performance measurements for cache, memory, software
accelerator and bus utilization by using performance counters
provided by ARM CPU and by automatically inserting AXI
Performance Monitors (APM) into the programmable logic to
collect hardware performance data. Software running on the
platform collects the performance data and SDSoC uses this
data to help identify performance bottlenecks in the system.
This rapid performance feedback enables optimal partitioning
of code to meet system level requirements for performance and
power while saving weeks in the development process.
Full System Optimizing Compiler
SDSoC also features a full system optimizing compiler targeting
both the ARM-based processing systems as well as the
programmable logic. SDSoC is designed to enable system
architects as well as software teams to use a ‘golden C/C++
source’ to rapidly configure macro and micro architectures with
optimal system connectivity generation. This results in optimal
system connectivity and memory interfaces, and enables rapid
design space exploration allowing the developer to trade-off
performance, throughput, and latency while maintaining short
design iteration times.
The complier leverages a foundational high-level synthesis
compiler technology that is utilized by more than 1,000
programmers for generation of high performance C/C++ based
IP. Together the compiler and linker transforms programs into
complete hardware/software systems based on target platform
and user-directed automated software acceleration generated in
programmable logic.
System-level Profiling
C/C++ Development
System-level Proler
Specify C/C++ Functions
for Acceleration
Full System
Optimizing Compiler
System-level Proling
Specify C/C++ Functions
for Acceleration
Full System Optimizing Compiler
C/C++ Development
Full System Optimizing Compiler
GCC Vivado
ARM Code
Main( )
Connectivity
Accelerator
Func( )