For embedded processor based designs, the UpdateMEM (
updatemem) command merges CPU software images into bitstream files to
initialize the block RAM memory within the target AMD device. The UpdateMEM command also uses an ELF file or CPU
software image as an input and writes MEM files for simulation purposes. The UpdateMEM
command takes the following inputs:
- A bitstream (BIT) file or RDCO file for AMD Versal™
devices, which is initially generated by the Vivado Design Suite
implementation tools. You can create a bitstream or RCDO file from an implemented
design using the
write_device_imageTcl command respectively. These binary data files contains the bit images of the design to be downloaded to an AMD devices. The UpdateMEM command reads a BIT file or RCDO file as an input, and writes a BIT or RCDO file as an output.
- The memory-map information (MMI) file is a text file that describes how
individual block RAMs on an AMD device are
grouped together to form a contiguous address space called an address block.
The Vivado Design Suite writes the MMI file automatically and places the file into the <project>.runs/impl_1 folder when generating the bitstream. Alternatively, you can manually write the information using the
write_mem_infocommand. The UpdateMEM command uses the MMI file to identify the physical block RAM resources that map to a specific address range. For more information on the MMI file, see Block RAM Memory Map Info File.
- The Vivado Design Suite writes the SMI file (memory-map information file for simulation) automatically and places the file into the <project>.sim/sim_x/behav folder when simulation is run on the design.
- An executable and linkable format (ELF) file is a product of an AMD Vitis™ integrated design environment. It is a binary data file that contains an executable program image ready for running on an embedded processor. The ELF file contains the data to be mapped by UpdateMEM into the address ranges of the block RAMs.
- Optionally, a memory (MEM) file is a manually created text file that describes contiguous blocks of data to initialize or populate a specified address space. The UpdateMEM command can use the MEM file in place of an ELF file. See Memory Files for more information.
- An instance ID of the embedded processor in the design, to associate the ELF or MEM file with the processor.
The UpdateMEM command populates contiguous blocks of data defined in ELF or MEM files, across multiple block RAMs of an AMD device mapped by the MMI file. The UpdateMEM command merges the memory information into a bitstream file for configuring and programming the target AMD device.
The UpdateMEM command allows you to merge multiple data files for multiple
processors in designs that have more than one embedded processor. In this case, the
options are specified in pairs, with the first
file providing the software image or memory content for the first
-proc specified. The second
-data applies to the second
This command returns the name of the bitstream file created from the inputs, or returns an error if it fails.