|
|
|
|
Reprogramming Block RAMs
- Generate the .bit file for the processor using the modified board.ucf with placements for each of the block RAMs. Be sure that you are using the correct board.ucf for the processor version that you are constructing or the place and route process might not be able to complete correctly.
- Make sure that you have cached.bmm available. This contains the mapping of address spaces to the block rams on the board. The standard MIPS memory ranges are used in naming the address spaces. You can only overwrite the block RAMs, the BIOS is fixed.
IRAM: 0x00400000 - 0x00407fff
DRAM: 0x10000000 - 0x10007fff
Stack: 0x7fff0000 - 0x7fff7fff
- Create a .mem file with the data that should be written to the RAMs along with the locations for that data. The .mem file is a text file that contains the location to write to, followed by a string of hex characters indicating the data that should be written to that location. For example, to write the word 0x0D2C5411 to memory location 0x10000000, the .mem file would contain the following:
@10000000 0D2C5411
You can also initialize entire blocks of memory at a time by adding more words after the first one. These words will be put into consecutive addresses in memory. For example:
@10000000 0D2C5411 0EA23BD2 09AC4533
This string will initialize the memory locations 0x10000000, 0x10000004, and 0x10000008 to 0D2C5411,0EA23BD2, and 09AC4533 respectively.
- Run "data2mem -bm cached.bmm -bd 'your mem file' -bt 'your bit file' -o b 'new bit file'"
- Use Impact to transfer the new bitfile onto the board.
- If you transferred a program onto the board, you can get out of the BIOS using a manual send with the command code 02.
Notes:
- If you wish to check the contents of memory on an existing .bit file, use the following command: "data2mem -bm cached.bmm -bt 'your bit file' -d > 'text file for dump'". You can search this file for phrases like "IRAM0" to find out what is in each individual RAM.
|