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:
- Winbond W9816G6JH: https://www.winbond.com/resource-files/w9816g6jh_a03.pdf
- ESMT M12L16161A: https://www.esmt.com.tw/upload/pdf/ESMT/datasheets/M12L16161A(2R).pdf
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.