At present, I am using Xilinx SPARTAN XC3S1500 FPGA with Micro MT46V16M16 to do some projects. As my programme is very large, there is not enough space to put them in the bram, so I have to put them in the ddr sdram. However, I found that when the programme is in the ddr sdram, the speed is 20 times lower than in the bram. I couldn't endure it.
Who knows how to speed up the programming in the ddr sdram?
do some projects. As my programme is very large, there is not enough space to put them in the bram, so I have to put them in the ddr sdram. However, I found that when the programme is in the ddr sdram, the speed is 20 times lower than in the bram. I couldn't endure it.
In addition to Antti's suggestion of enabling caches (absolutely essential), try using Xilinx's new mch_opb_ddr controller, and the CacheLink interfaces. These bypass the OPB bus for CPU memory accesses, and also allow wider cachelines than OPB transactions. We see an instant 2X speedup in real terms on uClinux systems with the MCH caches.
All the info is in the MicroBlaze reference guide. CacheLink is also supported in Base System Builder, I beleive.
There were some issues with the mch_opb_ddr controller in EDK7.1, no doubt fixed in 8.1 but hopefully Xilinx will also release a tactical patch to allow support for 7.1 for the late-adopters - hint hint!
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.