Introduction

The software-defined system-on-chipSDSoC™environment provides the tools necessary to implement heterogeneous embedded systems forZynq® UltraScale+™ MPSoCandZynq®-7000 SoCdevices. This document describes how to create anSDSoCplatform using the Eclipse-basedSDx™integrated development environment (IDE) with a hardware design generated by theVivado® Design Suite.

Figure:Platform Components

The concept of a platform is integral to theSDSoCenvironment, as it defines the hardware and software components as well as the meta-data on whichSDSoCapplications are built. The above figure illustrates the platform and its components. AnSDSoCplatform 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 theSDxIDE 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 theVivado Design Suiteand its IP integrator design canvas. The IP integrator block design is created with platform interfaces that are enabled for use by thesds++/sdscc(referred to assds++) 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 VivadoIP integratordesign 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. TheSDxIDE 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 anSDxPlatform project. TheSDxtools 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, theSDxenvironment can use a set of existing software objects created by the developer prior to invoking theSDxtools, or generate the software objects as part of theSDSoCplatform 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 theSDxtools. After going through the steps of using theSDxPlatform project flow to assemble a platform, this document describes how to build the hardware and software components that make up a custom platform.