I'm no expert in this, but was interested to learn more, so did some research and had a go at putting a circuit together.  See the videos below for the research and building of the circuit, and this three-minute summary for a quick view of it:

How it works

The module currently provides three words (rows) of four bits (columns) each.  Each row has a "row select" input; when it's high, that row is selected and its contents appear on the data bus pins, shown with green LEDs in the video.  At the same time, the column amplifiers reinforce the stored data in the DRAM cells, so reading a row also refreshes it.

If a row is selected and something relatively low-impedance drives some of the data lines high or low, then the newly driven values will get written into the corresponding DRAM cells.  There's no explicit read/write enable input.

It works pretty well at manual speeds.  I'm planning to expand it to more words and more bits per word, and hook it up to a 6502 or Arduino to see what happens at faster speeds.


Here's a link to the circuit diagram, also in the gallery: https://hackaday.io/project/175774/gallery#b4bdff73509e92bea2cbd55bb8642105

Video log

And here are the videos in which I described my research, and built the first prototype.