0

I wrote a C program, which has a big size . However, it is known that the Microblaze by default uses only 64KB. So I change the amount of BRAM in the EDK to 512K but when I generate the bitsream I got this errors:

- C:\Users\slim\Desktop\hs\system.mhs line 74 
IPNAME: plb_v46, INSTANCE: mb_plb - 2 master(s) : 1 slave(s) 
IPNAME: lmb_v10, INSTANCE: ilmb - 1 master(s) : 1 slave(s) 
IPNAME: lmb_v10, INSTANCE: dlmb - 1 master(s) : 1 slave(s) 
ERROR:EDK:440 - platgen failed with errors!
Done!
arrow man
  • 51
  • 2
  • 11

1 Answers1

0

On a Spartan-6, EDK's blockRAM memory block are limited to 64kB if they are 32 bits large, 128kB if they are 64 bits large and 256kB if they are 128 bits large. Besides, the spartan-6 LX45 has only 238kB of BlockRAM memory available, so this is impossible altogether on your platform.

The memory the microblaze use to store it's program is limited to 32 bits, as far as I know. To use the larger memories you would need to connect it to an AXI port. Otherwise, Xilinx has an answer record on how to use 2 differents 64kB memory to present 128kB to the microblaze.

Do you really need that much memory? If the answer is "yes", you should use a microblaze with external memory instead. You will have much more memory available (your board has 128MB DDR ready to use) with minimal performance impact if you have sufficient caches.

Jonathan Drolet
  • 3,318
  • 1
  • 12
  • 23