When trying to run updatemem on an IPI design that contains more than one BRAM range, I receive the error below on Windows when I run the following command:
C:\Xilinx\SDK\2014.3\bin\updatemem.bat -meminfo test.mmi -data test.mem -bit test.bit -proc mb_block_i/microblaze_0 -out download.bit
How can this be resolved?
There are two causes for this issue.
To fix the first issue, open the generated MMI file and correct the address range.
For example, the address range will be seen as:
Here we can see that the address range is a negative number, this should not be the case.
To obtain the correct value, open the address Editor in Vivado IPI design, or you can obtain it from the BMM file (by using the TCL command write_bmm).
Once this obtained, convert the HEX address range to Decimal.
For example, an address range of
0xC0000000 to 0xC0001FFF
would change to
To address the second issue.
Convert the MEM file into a UNIX format.
This can be done by using an open source dos2unix tool.
The command is seen below:
dos2unix <MEM file name>
Once these two steps have been completed, re-run the updatemem.