Introduction
The software-defined system-on-chip SDSoC™ environment provides the tools necessary to implement heterogeneous embedded systems for Zynq® UltraScale+™ MPSoC and Zynq®-7000 SoC devices. This document describes how to create an SDSoC platform using the Eclipse-based SDx™ integrated development environment (IDE) with a hardware design generated by the Vivado® Design Suite.
Figure: Platform Components
The concept of a platform is integral to the SDSoC environment, as it defines the hardware and software components as well as the meta-data on which SDSoC applications are built. The above figure illustrates the platform and its components. An SDSoC platform defines a base hardware/software architecture and an application context including the processing system, external memory interfaces, custom input/output, a software runtime with an operating system (possibly "bare-metal"), boot-loaders, drivers for platform peripherals and a root file system. Every project created with the SDx IDE targets a specific platform and is customized with application-specific hardware accelerators and data motion networks.
A platform developer designs the platform's hardware component by first
implementing a hardware design using the Vivado Design Suite and its IP
integrator design canvas. The IP integrator block design is created with platform interfaces
that are enabled for use by the sds++/sdscc (referred to as
sds++) system compiler
as attachment points for generated hardware accelerators and data movers. This hardware design
component along with its meta-data are encapsulated into a Device Support Archive (DSA). The
DSA contains the Vivado IP integrator design as well as the
required processor and memory system configuration, all board interfaces and I/O connections.
Platform properties are also defined in the DSA for platform identification and interface
configuration.
The platform developer must also provide any boot loaders and target operating systems used to bring-up the platform. A platform optionally includes software libraries for linking with applications. If a platform supports a Linux target operating system, the Petalinux tools can be used to configure and build the Linux kernel, produce a U-Boot bootloader and a root file system. The Xilinx SDK provides code templates for developing software components for a platform and can be customized. The SDx IDE can also be used to generate software components but for customization it is recommended that developers use the SDK or PetaLinux tools directly.
Creating a platform is accomplished by generating or gathering together the hardware and software components for use in an SDx Platform project. The SDx tools can use an existing platform as a basis for a new platform or use the hardware defined by a user-provided input DSA. In a similar manner, the SDx environment can use a set of existing software objects created by the developer prior to invoking the SDx tools, or generate the software objects as part of the SDSoC platform creation process.
The example platform that is described and built in this document uses the hardware and software components that are provided as part of the ZCU102 platform included with the SDx tools. After going through the steps of using the SDx Platform project flow to assemble a platform, this document describes how to build the hardware and software components that make up a custom platform.