The DFX Controller IP is created, but the design is not yet compiled. In order to create the PROM image with all the necessary full and partial images, source the following scripts in Tcl mode using the commands below.
vivado -mode tcl -source design.tcl
vivado -mode tcl -source create_prom_file_vcu108.tcl
Sourcing create_prom_file_vcu108.tcl
creates the PROM image for the VCU108 target. This script contains hard-coded values
for bitstream address for the entire project. If this design is modified in such a
way that changes bitstream sizes, full or partial, then these values must also
change. Changes that affect bitstream sizes include changing the target device,
changing the size or shape of the Pblocks, or introducing bitstream options such as
compression or per-frame CRC.
This script defines PROM file options by setting properties and then making calls to write_cfgmem. The DFX Controller works in byte addresses because the data is stored in bytes in AXI. This linear flash PROM uses half word addresses because it stores data in half words (16 bits). Divide the ROM address by 2 to get the AXI address. For example, the shift_left address is given as 00B00000 during DFX Controller customization and 00580000 (half that value) for write_cfgmem. Note that the starting addresses are always multiples of 1024 (0x0400) to ensure that each bitstream starts on a byte address boundary.
Supplied in the lab directory is a file called dfxc_bitstream_sizes_lab6.xlsx. In this file, bitstream sizes are entered by the user based in the yellow highlighted fields. It calculates the starting address in hex for each partial bitstream at the next byte boundary. Values in blue are to be supplied for DFX Controller IP customization, in either the DFX Controller IP GUI, in the gen_ip_vcu108.tcl script, or in dfx_info_vcu108.tcl which is used for post-route API modification. The values in green are addresses divided by two to be used in PROM file generation in the create_prom_file_vcu108.tcl script.