Using Export Hardware - 2023.2 English

Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

Document ID
Release Date
2023.2 English

Export hardware supports both fixed and extensible platforms. Fixed platforms contain the complete set of hardware files for the device and are exported to the Vitis tools to add software to the design. Extensible platforms allow the Vitis tools to add hardware accelerators to the design. For more information on fixed and extensible platforms, see the Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393).

You can export the design using the write_hw_platform Tcl command or using the File > Export > Export Hardware menu command in the Vivado IDE. Using this command from the Vivado IDE defaults to the active parent configuration and generates the XSA type defined in the project settings. To generate the XSA for a child run, open that implementation run first before exporting hardware via write_hw_platform.

For fixed hardware platforms, there are several command-line switches, currently available in Tcl only, to configure write_hw_platform. The following table shows the contents of the Xilinx support archive (XSA) file for specific command line arguments related to the programmable device image (PDI) file and hardware hand off (HWH). These options are available for Versal devices only.

Table 1. Contents of a Fixed XSA File for Specific write_hw_platform Arguments
Command Line Arguments Exported PDI Exported HWH
Default (only option available in the GUI via Export Hardware) Complete PDI for active configuration Complete HWH for active configuration
-static Complete PDI for active configuration Reconfigurable partitions are black boxed
-rp -rm Partial PDI for the specified RM in the specified partition HWH for the specified RM in the specified partition

After export, the Vitis tools use the XSA file to complete the software platform.

Extensible platforms require the following additional properties to be set so they can be passed to the Vitis tools:

  • set_property platform.platform_state "impl" [current_project]
  • set_property platform.uses_pr true [current_project]
  • set_property platform.dr_inst_path { <dynamic region impl hierarchy path> } [current_project]
Note: PFM_NAME must be set on the DFX block design.

A call to write_hw_platform without the -fixed option creates an extensible platform. For more information on extensible dynamic platforms, see the Versal Adaptive SoC Custom DFX Platform Creation Tutorial available from the GitHub repository.