前微软工程师用AI设计FPGA内存板,为1970年PDP-11古董机自制4MBRAM

前微软工程师Dave Plummer为解决PDP-11古董电脑原装内存价格高昂问题,借助ChatGPT与EasyEDA工具从零设计并实现一块兼容Q-Bus总线的4MB RAM扩展板,核心采用Latti...

互联网/IT

一台诞生于1970年的PDP-11小型机,如今仍被部分爱好者用于教学与历史复现。然而,其后期型号支持的最大4MB内存板,在收藏市场上动辄标价数千美元——这成为复原与运行该系统的主要障碍之一。前微软工程师Dave Plummer选择了一条不同寻常的路径:他没有购买原装模块,而是亲手设计并制造了一块功能等效的现代替代品。

Plummer曾参与Windows任务管理器、弹球游戏等经典项目的开发,拥有扎实的软件工程背景,但硬件设计并非其专长。他在项目初期坦言,自己此前从未为FPGA编写过固件,整个过程几乎是从零开始摸索。他利用ChatGPT辅助理解PDP-11的内存访问机制与Q-Bus总线协议,并通过EasyEDA在线电路模拟平台完成原理图绘制与仿真验证,最终生成可制造的PCB文件。

该内存板的核心是一颗Lattice MachXO2-2000HC FPGA,作为内存控制器协调数据流;外围连接四颗ISSI IS61LV102416AL-10T 1MB SRAM芯片,合计提供4MB存储容量。此外还集成了U2S I/O芯片、DIP开关组、串行通信端口及若干滤波电容,构成完整功能单元。整块板卡采用标准Q-Bus插槽规格,可直接插入PDP-11背板,与搭载M8190 CPU的主控板协同工作。

PDP-11自制RAM板实物图,绿色PCB上集成FPGA与四颗内存芯片,旁有咖啡杯与调试线缆

值得注意的是,PDP-11的内存访问存在一个易被忽视的细节:其地址总线最低位(A0)并非用于字节寻址,而是作为“通道选择器”,区分高字节与低字节。CPU在读取时会自动根据A0状态选取对应字节,但内存控制器仍需返回完整的16位字;写入时若未正确识别A0状态,直接覆盖整字将导致相邻字节被意外擦除。Plummer最初未能意识到该机制,导致早期测试中仅能稳定使用2MB有效空间,被网友戏称为“造了4MB内存结果只有2MB”。后续他在FPGA逻辑中补全了通道选择逻辑,恢复全部容量。

这一设计难点也折射出复古计算领域的典型挑战:现代工程师面对上世纪70年代的硬件规范,常需重新学习已被淘汰的底层交互逻辑。PDP-11采用22位地址总线,其中顶部256KB保留给I/O设备与ROM映射区域,实际可用RAM空间为4MB减去该预留段。Plummer的设计严格遵循此布局,确保与原始系统兼容。

项目完成后,Plummer在社区分享了技术细节,并回应了关于替代方案的讨论。有用户建议直接用树莓派通过软件模拟内存接口,绕过硬件开发复杂度。他回应称,自己已在上周尝试过基于QBone DEC接口板的类似方案,但更倾向于纯硬件实现——因其延迟更低、更贴近原始系统行为,且避免依赖额外主机设备。

从技术路径看,该项目融合了三类关键能力:一是对老式计算机体系结构的深度理解;二是现代EDA工具链的熟练运用;三是FPGA逻辑编程的快速学习能力。尤其值得指出的是,AI工具在此过程中扮演了“知识助手”角色:ChatGPT并未直接生成电路图或代码,而是帮助Plummer快速厘清PDP-11的Q-Bus时序、内存映射规则与FPGA寄存器配置要点,大幅缩短了试错周期。

在复古计算圈层中,此类“软硬结合”的DIY实践正日益增多。过去十年间,随着FPGA成本下降与开源EDA工具成熟,越来越多爱好者不再满足于仅修复旧硬件,而是主动重建缺失模块。例如,PDP-8的现代SRAM替换板、Altair 8800的USB接口适配器、以及Apple II的SD卡存储扩展等项目,均体现了类似思路。这些努力不仅降低了古董系统维护门槛,也为计算机教育提供了可操作的实物案例。

Plummer的RAM板尚未公开完整源码与Gerber文件,但他表示计划在完成稳定性测试后开源设计。考虑到PDP-11仍在部分大学计算机组成原理课程中作为教学平台使用,该成果有望被纳入实验套件,使新一代学生得以在真实硬件上运行DEC OS/8或RT-11系统,而非仅依赖模拟器。

需要强调的是,该项目并非追求性能突破,而是致力于“功能等效复现”。现代1MB SRAM芯片的访问速度远超1970年代的磁芯存储器,但Plummer刻意限制了时序参数,使其与原始内存响应时间匹配,以避免因速度差异引发总线冲突或系统不稳定。

在硬件复兴浪潮下,这类个人主导的微型工程正成为连接过去与未来的技术桥梁。它不依赖庞大团队或工业级资源,仅凭一位工程师的求知欲、一套在线工具与一块FPGA,便让沉睡近半个世纪的机器重获新生。这种实践本身,已是对计算史最生动的致敬。