Hi, I am new on FPGA. I am planning to buy a spartan3e starter kit. But I don't have idea if it has enough resource for my application. My application may need a lot of memory. The on board memory of spartan3e such as distributed RAM and block RAM may not be enough.
So my question is can I use DDR SDRAM as an additional memory to save the coefficients when block RAM is not enough? If not, then what can it be used for? What is the difference between DDR SDRAM and block RAM? Is DDR SDRAM much slower than block RAM?
The Spartan3E starter kit has 512 Mbit (64 Mbyte) DDR SDRAM. You use the reference implementation for accessing it:
(you need to register first for the memory section of the Xilinx site, it's free, then you can download "Spartan-3E DDR Reference Design for the Spartan 3E Starter Kit"). The only drawback is, that this reference design needs an external 133 MHz oscillator. I've tried to generate the clock from the 50 MHz on-board oscillator with a DCM, but the RAM access was unreliable with the DCM clock, I don't know why. So you have this nice 64 Mbyte RAM, but looks like currently there is no free implementation for accessing it out of the box, without buying and building extra parts.
Block RAM is integrated on the FPGA and is faster: You can clock it with
230 MHz with speed grade -4 devices, which is on the starter kit. And you don't need complicated I/O controller for using it, like with the DDR SDRAM, which is an external chip. For the starter kit FPGA version you have
20 block RAMs, each with 18,432 bits, so you'll have about 46 Kbyte.
Frank Buss, email@example.com