The extensible hardware design (.xsa) is created in Vivado and contains platform interfaces that allow the addition of programmable components such as AI Engine, PL kernels and subsystem features. The extensible .xsa is a container that is used by the Vitis linker command in both the Vitis Integrated Flow, and Vitis Export to Vivado Flow. This XSA file must be generated in Vivado prior to use by the Vitis linker.
The Export Hardware Platform wizard in Vivado supports three types of extensible hardware designs:
- Export XSA for hardware only: used to export extensible XSA to support hardware flow only.
- Export XSA for hardware emulation only: used to export extensible XSA to support hardware emulation flow only.
- Export XSA for hardware and hardware emulation: used to export extensible XSAs for both hardware and hardware emulation flows.
When the Vivado project type is set to the extensible Vitis platform, the Export Platform wizard is available from the menu command.
Export Extensible XSA
- Generate the Block Diagram.
- Click Generate Block
Diagram from the Flow Navigator window.
- Select Synthesis Options to
Global to save generation time. Click the
Generate button.
- Click Generate Block
Diagram from the Flow Navigator window.
- Export the hardware platform with the following scripts.
- Click . Alternatively, you can select from the Flow Navigator window: , or the Export Platform button at the bottom of the Platform Setup tab.
- Click Next from the Export Hardware Platform screen.
- Select Hardware. If there are IPs that don't support simulation, the Hardware XSA and Hardware Emulation XSA need to be generated separately. Click Next.
- Select Pre-synthesis, as a DFX platform is not being created. Click Next.
- Input the name and click Next.
- Update the filename and click Next.
- Review the summary and click Finish.
You can also perform this in the command line using the following command:
set_property pfm_name {vendor:board:name:version} [get_files <bd_file>]
write_hw_platform -hw -force <XSA file>
To create and combine a hardware XSA and a hardware emulation XSA, use the following commands:
write_hw_platform -hw <hw_platform>
write_hw_platform -hw_emu <hw_emu_platform>
combine_hw_platform -hw <hw_platform> -hw_emu <hw_emu_platform> -o <combined_platform>
#emulation XSA
set_property platform.platform_state "pre_synth" [current_project]
write_hw_platform -hw_emu -force -file vck190_custom_dfx_hw_emu.xsa
#hardware and RP XSA
set_property platform.platform_state "impl" [current_project]
write_hw_platform -force -fixed -static -file vck190_custom_dfx_static.xsa
write_hw_platform -force -rp design_1_i/VitisRegion vck190_custom_dfx_rp.xsa
For DFX design, RP BD should have the PLATFORM.NAME. Static BD should not have this property set.
For BDC design, child BD should have the PLATFORM.NAME. Parent BD should not have this propert set.