2
\$\begingroup\$

I'm designing a simple SDRAM controller for fun and want to implement support for full page bursts. To do this I have been looking at datasheets of a few SDRAM ics that I have laying around on FPGA boards. To start the implementation I have looked at the following 2 chips with the same layout to make things simpler:

These chips are relatively similar. Timing is a little different but it seems it should be relatively easy to make a simple controller that can support both. However one thing that tripped me is the following about auto-precharge in the Winbond datasheet in section 7.14 Auto-precharge Command:

Issue of Auto-precharge command is illegal if the burst is set to full page length.

I can't find anything about this in the ESMT sdram chip. And it's also not clear to me whether this means it will always auto-precharge. Since you have read or written the entire page it makes little sense to not always automatically precharge. So what exactly does this mean. Do I need to a manually precharge for full page burst mode? Is this something that holds for all SDR SDRAM modules or is this different on a module by module basis, this is important because the ESMT module mentions nothing.

Any help is appreciated.

\$\endgroup\$
3
  • \$\begingroup\$ Hi. In my understanding, the auto-precharge type of commands would never be able auto-precharge, because the burst length is not known in advance, so the ram couldn't "plan" for it. I don't recall whether the chip I read about required a "manual" precharge command after that, or if it was possible to combine (or replace) the burst stop command with the precharge command. \$\endgroup\$
    – akwky
    Jul 19, 2021 at 7:42
  • \$\begingroup\$ @akwky How so. A full page is known in advance. In both these chips it's 256 words. \$\endgroup\$
    – John Smith
    Jul 19, 2021 at 8:06
  • \$\begingroup\$ If I recall correctly, the full page burst write had no exact length specified - it was possible to keep filling data indefinitely (overwriting the previous contents), and the buffer address would just wrap around. Sorry for not being of more help. \$\endgroup\$
    – akwky
    Jul 19, 2021 at 8:33

1 Answer 1

0
\$\begingroup\$

As JEDEC stated, AUTO-PRECHARGE command is not allowed during full page burst mode. Take a look at JEDEC Standard No. 21--C Page 3.11.5.1-7:

The autoprecharge function is not allowed in full page burst mode since the end of the burst is indefinite. Therefore the autoprecharge bit, AP, is ignored during read or write commands if the mode register is set to full page burst mode.

So, you have to do a PRECHARGE for the currently opened row at the end of reading or writing. Full page burst mode does not mean you must read/write a full page. In this mode, you can read/write less than or equal to full page length data. You can determine the arbitrary length by Burst Stop command (or other terminations commands). Also, you shall pay attention, full page bursts wrap within the page if the boundary is reached. And, You can start reading/writing from/to anywhere on the desired page. I suggest you read and use JEDEC documents as your reference if you want to write a generic SDRAM controller. The manufacturers claim which implemented JEDEC standard. Using the reference of datasheets always is better than using datasheets.

Good luck!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.