Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

FPGA as SDRAM - a complex undertaking?

Not open for further replies.


Advanced Member level 4
Aug 16, 2007
Reaction score
Trophy points
Activity points
fpga as sdram

I am in a situation where I need a powerful coprocessor to take care of large sets of algorithm expressions (the algorithm lines are in a repetative form with different values, think block IIR filter). I have my eyes on the new Spartan-6 devices, with their DSP48A1 blocks for algorithm power and integrated memory blocks for storage of the input and output values.

Now, my processor has an unused external bus interface (16 or 32-bit wide data, upto 25 bits of address IIRC, differential clock, 1.8V or 3.3V). I am thinking I'll interface the FPGA to the processor's unused bus interface as it would provide a pretty decent bandwidth.

I am thinking a flow like page writing the input variables to FPGA block RAM, then writing some trigger/message into a dedicated command/control block RAM area of the FPGA initiating the algorithm (could be as simple as two huge lists of 128-bit fixed point numbers i wanted multiplied in pairs), then make the FPGA trigger an external interrupt to the processor telling the algorithm has completed, and lastly reading the data back from a result block RAM, again as if the FPGA was SDRAM.

I am pretty noob on FPGAs so I don't have experience enough to trust my system design thoughts on this matter, could anyone give me a heads up on this method? Is such an SDRAM "slave" interface a complex undertaking?

interfacing fpga to sdram

Have you thought to use a GPU architecture like NVIDIA ..Those cpu are very powerfull and can be harness under CUDA ..


Actually, that thought has not crossed my mind at all. At first glance it looks very interresting, I like the concept of stream processing, and that is essentially what I planned to do on the Spartan-6 only in a larger scale. The device I had in mind have 180 DSP blocks each containing an 18-bit x 18-bit multiplier so I was thinking to build larger MACs for increased fixed point precision and use them in parallel (i was planning on going with fixed point numbers but that's not a necessity, double precision floats would work just fine).

Back to the GPUs/GPGPUs you mentioned... I seem to have trouble getting an overview of the silicon devices available. Due to layout size restrictions I would have to use them as chips and not modules like graphic cards (although I will buy a Tesla for my PC when I have the money for it, didn't know such things existed.. CUDA seem to work with Matlab using some wrapper also.. Amazing but OT, thanks alot)

Any pointer to actual GPU/GPGPU chips and their datasheets? I didn't find silicon devices at NVIDIA..

BTW, the topic still stands. I'd really appreciate some feedback on the approach.

edit: typos

Not open for further replies.

Part and Inventory Search

Welcome to