5 ms·
How can I implement a simple asynchronous DRAM controller? (2018)
- dmitrygr 3y agoLike this… http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit
- 0xf00ff00f 3y agoWow, pretty impressive project!
- rasz 3y agoor like this http://amigaprj.blogspot.com/2013/05/amiga-fast-ram-expander-with-simm.html http://amigaprj.blogspot.com/2013/05/amiga-fast-ram-expander... 12 off the shelf TTL chips.
- repelsteeltje 3y agoI'm confused. I understand very little about electronics, but it seems the question was about asynchronous DRAM controller while the XT and PET answers appear to describe a synchronous setup? Can someone explain?
- celegans25 3y agoThe DRAM chips themselves are asynchronous (there's no clock signal connected to the RAM chip), however they expect a sequence of operations with specific timings in order to work. The PET's solution was to create a small synchronous circuit to generate the control signals with the correct timings for the DRAM. This however wasn't the only way it could be done, as the other answer states how the PC/XT did it with delay lines.
- repelsteeltje 3y agoThanks for this clear explanation
- SomeoneFromCA 3y agoApple 1 did it with single pulse RC, with timing constant of 500 usec generators.
- mk_stjames 3y agoThis is a tangent, but in the first question post the OP mentions considering implementing helper circuitry with quote "a GAL16V8 or something but I don't think I understand them well enough, programmers are very expensive and the programming software is closed source & Windows-only as far as I know." I went down this path on a project a few years ago and I just wanted to point out that you can burn the fuse file for the Lattice GAL16v8 or GAL22v10 chips these days using a cheap TL866 Plus programmer... And there is a very cool way to write the JEDEC fuse files- you can draw out the circuitry you want using the [0] Digital simulation package (it is similar to Logisim) and export a compatible bitstream to burn from there. Thus skipping the need to find a way to run the old WinCUPL or the even older DOS program that was used to do the synthesis back in the day. [0] https://github.com/hneemann/Digital https://github.com/hneemann/Digital
- justtinker 3y agoTried it on Windows 11 but got a Java run time error. Used the recommended JRT https://adoptium.net/ https://adoptium.net/ Wandered through the https://github.com/hneemann/Digital https://github.com/hneemann/Digital site and saw past issues with JRT but no obvious solution. I have a couple hundred GALs of same or similar model number of new old stock and was hoping to somehow make use of them.
- mk_stjames 3y agoI just tested it with Win10 and the Oracle Java runtime instead of the Adoptium openJDK and it runs for me. Using the 64-bit offline installer from https://www.java.com/en/download/windows_manual.jsp https://www.java.com/en/download/windows_manual.jsp May want to give that a try instead. I also use the OpenJDK on Mac and a Raspberry Pi and have no issues there, so it may be something with the Adoptium implementation on windows right now.
- dboreham 3y agoWeird seeing people do archeology on stuff I did almost every day for a few years. Eventually I got a job at a company with clueful CPU designers (Inmos) who had built in the DRAM timing generator on-chip. It ran off the polyphase clock and was programmable so the board only needed the address mux chips.