- The location of the ELF file to be loaded
- The address space accessible via a master interface to a memory location, which the ELF file will be stored
- The mapped peripheral within that address space representing the memory where ELF file will be stored and from where it will be accessed at run time
This process uses SCOPED_TO_REF and SCOPED_TO_CELLS properties on the MicroBlaze processor itself, and not to the Block RAMs that are the actual target of the ELF file data.
You can associate the ELF file to the MicroBlaze processor during the v++
--link
process using the --advanced.param
<param_name>=<param_value>
command as described in
--advanced
Options
. An example for a
config file is shown below.
[advanced]
param=hw_emu.post_sim_settings=<file_path>/link.tcl
The link.tcl should add the ELF file to the Vivado Design Suite project, exclude it for use in simulation, and associate it with the MicroBlaze processor, as shown in the example below.
add_files <file_path>/executable.elf
set_property used_in_simulation 0 [get_files <file_path>/executable.elf]
set_property SCOPED_TO_REF base_microblaze_design [get_files -all \
-of_objects [get_fileset sources_1] {<file_path>/executable.elf}]
set_property SCOPED_TO_CELLS { microblaze_0 } \
[get_files -all -of_objects [get_fileset sources_1] {<file_path>/executable.elf}]
This information will be used to generate a BMM file which will be used
by programs such as data2mem
to generate a .mem file that will populate the Block RAMs that are
generated from the block_memory_generator
.