muchen 牧辰

Synchronous DRAM

Updated 2020-01-29

Unlike asynchronous DRAM, the synchronous DRAM, as the name suggests requires a clock. The synchronous DRAM offers burst mode and the internal buffers fills a bunch of data — then for each clock the data is shifted out like a shift register.

The burst mode is available in 1,2,4, 8 or full row in order to make access faster.

SDRAM on DE1-SoC

image-20200129121827253

Synchronous Commands

Because the device now is synchronous. Then any operations and commands needs to be signaled first, then clocked.

image-20200129122407080

Power-Up Programming

From the table above, we can use the LOAD MODE REGISTER command to push in Op-Code over the address bus.

image-20200129123542693

Initialization Procedures

Read Timing

Advanced features in SDRAM supports command pipelining — we can issue a new command before the previous command has completed. In the following diagram, note that the delay from start of command to getting the first bit of data is 5 clock cycles. So if we want to get more data after the four pieces of burst data as seen below, it would be slow if we start issuing new command after all the data has come out.

image-20200129122913533

Hence, we can use the time where the chip is clocking out the data to pipeline new commands. Note that on the positive edge of clock cycle #5, we started issuing new read command — and the burst output is continuous.

image-20200129123101351

Double Data Rate (DDR)

Instead of just synchronizing on positive edge of the clock, but we transfer data on both positive and negative edge. Theoretically, we can get data from memory twice as fast. In reality, the performance is marginally better.