Using UpdateMEM - 2024.1 English

UpdateMEM User Guide (UG1580)

Document ID
Release Date
2024.1 English

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™ adaptive SoC 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_bitstream or write_device_image Tcl 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_info command. 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 -data and -proc options are specified in pairs, with the first -data file providing the software image or memory content for the first -proc specified. The second -data applies to the second -proc.

This command returns the name of the bitstream file created from the inputs, or returns an error if it fails.