1

I wonder how fast I can read from a DDR SDRAM (known as DDR1) clocked at 200 MHz. The controller will be implemeted on an FPGA.

I have an 8-bit data interface to the DDR. Each data pin reaches 400 Mbps. Therefore the total throughput is 3.2 Gbps = 400 MBps, however, there will be an overhead for read commands to the DDR.

Including those, what is the practical maximum read throughput I can reach?

ocrdu
  • 8,705
  • 21
  • 30
  • 42
user1175197
  • 149
  • 3
  • for the practical maximum, you would need to sit down and work through your latency contributions, e.g. refresh cycles, row and column latency, etc, all of these chip away at your maximums, – Reroute Aug 25 '19 at 12:55

1 Answers1

1

If your DDR SDRAM has multiple banks, it is often possible to interleave the bank burst transfers in such a way that all of the other overhead is "hidden". And if you're accessing memory sequentially anyway, you can sometimes even forget about separate refresh cycles. This means that you can sustain the raw (peak) bandwidth of the data bus more or less indefinitely.

I work with high-bandwidth video systems, and we do this sort of thing all the time, for external frame buffers attached to FPGAs.

Implementing a DDR SDRAM controller that's sophisticated enough to interleave bank accesses is rather tricky — we nearly always use the FPGA vendor's IP for the physical memory controller, and then add our own multi-port access multiplexer on top of that.

Dave Tweed
  • 168,369
  • 17
  • 228
  • 393