Using UpdateMEM - 2023.1 English

UpdateMEM User Guide (UG1580)

Document ID
Release Date
2023.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 can also take an ELF file or CPU Software Image as an input and write out MEM files for simulation purposes. The UpdateMEM command takes the following inputs:

  • A bitstream (BIT) file, or RDCO file for Versal adaptive SoC devices, which is initially generated by the AMD 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 commands respectively. These files are binary data files that contain the bit images of the design, to be downloaded to an AMD devices. The UpdateMEM command reads a BIT 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 the 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 that file into the <project>.runs/impl_1 folder when generating the bitstream, or you can manually write that 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 that file into the <project>.sim/sim_x/behav folder when simulation is run on the design.
  • An executable and linkable format (ELF) file, which is a product of the AMD Vitis™ integrated design environment, 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 also lets you merge multiple data files for multiple processors in designs that have more than one embedded processor. In this case, the -data and -proc options must be 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, and so on.

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