I'm currently evaluating a Xilinx Microblaze system. One of the must-have features is a fast memcopy. Therefore, I implemented a basic system consisting of a Microblaze core (no caches, but program runs in BlockRAM) and a SDRAM controller. Burst support of the SDRAM core is enabled. Burst support of the microblaze core should work out-of-the-box according to the manuals. The system consists of:
- Microblaze 2.0 core
- OPB bus v20
- OPB SDRAM controller
Memcopy delivers unsatisfactory performance, an analysis shows that the main reason is that the SDRAM controller does not perform burst accesses to the RAM. The memcopy routine is quite optimal, it consists of four consecutive read and four write instructions, so bursting should work in theory.
Is there anything more I need to do to get bursts to work? I already spent two days reading manuals and FAQs trying to identify the problem, but no success.