04-09-2019 09:14 AM
I'm having issues with the updatemem utility. The only way in which the updatemem utility works for us is if we specify a single memory block in the memory specification file (.smi) that is large enough to contain the contents extracted from the ELF file.
I have a microblaze executable that is larger than a single BRAM, however, Vivado has provided 8 identical BRAMs that are ganged together to provide one large BRAM space to hold the executable. All I have been able to do so far is modify the SMI file that VIVADO creates to combine the BRAM definitions together to make the updatemem think that the BRAM size is larger than it really is for a single BRAM. Then I have to manually break the generated MEM file up into multiple MEM files to populate the actual number of physical BRAMs being used.
So here’s our process:
The export_simulation generates a SMI file AND it automatically runs something underneath to create MEM files that are needed for the simulation. HOWEVER, the export_simulation reports an ERROR saying that the BRAM block is too small to hold the program code!!! This means that export_simulation is running something similar to updatemem underneath and running into the same issues as I’ve already seen
So additional steps that we do to get the MEM files are:
Should we be doing the extra steps?.or is there a step that I'm missing?
04-09-2019 12:46 PM
Here are the commands
updatemem -meminfo working.smi -data sim.elf -proc fpga_top_i/emm_hier/microblaze_0
updatemem -meminfo fails.smi -data sim.elf - proc fpga_top_i/emm_hier/microblaze_0
I will send the files . I am unable to upload it here.