Building Vintage Memory From Scratch

A former Microsoft engineer and software developer has completed a custom hardware project to build a new RAM board for a vintage PDP-11 computer after encountering high prices for original memory modules.

The PDP-11 originated in 1970, with later iterations capable of utilizing up to four megabytes of memory. The creator utilized ChatGPT and the EasyEDA online circuit simulator to plan the hardware despite lacking prior experience with complex electronics projects. Because several PDP-11 models relied on Q-Bus boards for core components, the RAM was engineered as an independent card and tested on a backplane alongside an M8190 CPU board.

Circuit Architecture and Hardware Components

The design incorporates a Lattice MachXO2 FPGA functioning as a memory controller, linked to four ISSI 1MB memory chips. Additional hardware includes a U2S I/O chip, DIP switches, communication ports, and supporting capacitors. The M8190 board architecture features a 22-bit bus that reserves the top 256KB for I/O and ROM operations.

Addressing Bus and Controller Hurdles

The development process involved initial trial and error, particularly regarding flash-programming the FPGA chip. Furthermore, the engineer encountered architectural specifications inherent to the PDP-11 memory bus.

The system architecture requires access to entire two-byte words simultaneously, treating the lowest bit of any memory address as a lane selector to differentiate between the low and high byte within the word.

During read operations, the CPU isolates the required byte, whereas the custom memory controller must return a full two-byte word. On write cycles, the address bit selector determines which specific byte receives the update to prevent invalid data corruption across the active bus lines.

Community feedback highlighted address translation nuances in the initial build, prompting adjustments to the FPGA code to ensure proper word handling and system compatibility.

Alternative suggestions involving software-based memory emulation via a Raspberry Pi were noted, though the engineer had previously experimented with similar modern DEC interface boards containing embedded computing modules.