SDSoC Platforms

Introduction

An SDSoC platform consists of a Vivado® Design Suite hardware project, a target operating system, boot files, and optionally, software libraries that can be linked with user applications that target the platform. An SDSoC platform also includes supporting XML files that describe the hardware and software interfaces used by the SDSoC compilers to target the platform. These files are generated by the SDSoC Platform Utility.

A platform developer designs the platform hardware using the Vivado Design Suite and IP Integrator. After the hardware has been built and verified, the platform developer also provides a Tcl script to run within the Vivado tools to specify SDSoC platform hardware interfaces and generate the SDSoC platform hardware metadata file. See Hardware Platform Creation for more information on creating the hardware platform and required Tcl script.

The platform developer must also provide boot loaders and target operating system required to boot the platform. A platform can optionally include software libraries to be linked into applications targeting the platform using the SDSoC compilers. If a platform supports a target Linux operating system, you can build the kernel and U-boot bootloader at the command line or using the PetaLinux tool suite. You can use the PetaLinux tools, SDx IDE or the Xilinx SDK to build platform libraries. Refer to Software Platform Data Creation for more information on defining the software platform libraries.

Figure: Primary Components of an SDSoC Platform



An SDSoC platform consists of the following elements, hierarchically structured as shown in Figure 2:

  • Metadata files generated by SDSoC Platform Utility:
  • Vivado Design Suite project
    • Design Source Files
    • Timing and Physical Constraint Files
    • IP blocks
  • Software files
    • Library header files (optional)
    • Static libraries (optional)
    • Common boot objects (first stage boot loader, for Zynq UltraScale+ MPSoC ARM trusted firmware and power management unit firmware)
    • Linux related objects (u-boot and Linux device tree, kernel and ramdisk as discrete objects or an image.ub unified boot image)
  • Pre-built hardware files (optional)
    • Bitstream
    • Exported hardware files for SDK
    • Pre-generated port information software files
    • Pre-generated hardware and software interface files
  • Platform sample applications (optional)

Figure: Directory Structure for a Typical SDSoC Platform



In general, only the platform provider can ensure that a platform is “correct” for use within the SDSoC environment. However, the folder <SDx_install_path>/samples/platforms/Conformance contains basic liveness and sanity tests you should run, with instructions describing how to run them. These tests should build cleanly, and should be tested on the hardware platform.

A platform should provide tests for every custom interface so that users have examples of how to access these interfaces from application C/C++ code.

A platform may optionally include sample applications. By creating a samples sub-folder containing source files for one or more applications and a template.xml metadata file, users can use the SDx Environment IDE New Project Wizard to select and build any of the provided applications. For additional information on application template creation, see Platform Sample Applications.

The SDSoC environment provides the SDSoC Platform Utility, sdspfm, to assist with the creation of an SDSoC platform. You can use this utility after you have created the required Vivado hardware files and Tcl script, and built the components of your software platform.