Spartan UltraScale+ Bitstream Format - 2025.2 English - UG909

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

Document ID
UG909
Release Date
2025-12-17
Version
2025.2 English

For Spartan UltraScale+ FPGAs, bitstream (.bit) files are not used. Instead, the programmable device image (PDI) file defines the application-specific FPGA functionality. The full-device PDI file contains the platform loader manager (PLM) firmware .elf for boot and configuration and the programmable logic (PL) data .rcdo (equivalent to the bitstream data). Partial images do not include the PLM firmware .elf, as it has already been loaded in the platform management controller (PMC), but the format of these partial images are also PDI files, containing the PL .rcdo data for the user-defined logical region.

When generating full and partial programming images in the Vivado IDE, the Generate Bitstream step creates the full and partial programming images by default, as it does for all DFX designs. However, this command is comprised of two explicit steps: write_bitstream and bootgen. The write_bitstream step creates full and partial .bit files, but these files must NOT be used to program the device. The outputs of Bootgen are the desired .pdi files that are the ones to send to the Spartan UltraScale+ device.

If you are not using the Vivado IDE in project mode, you can generate full and partial programming images using these two explicit steps. The write_bitstream command is used exactly as it is for any other UltraScale+ device, but instead of using the full or partial .bit files, you need to use the .bif and .rcdo files that are generated (along with the fixed plm.elf delivered with Vivado). Use bootgen with the -arch option set to spartanup to create the necessary .pdi files.

bootgen -arch spartanup -image <design.bif> -o <design.pdi>

Repeat this command for each full or partial programming image required.