解决昨日的问题

© 1999-2025 Jürgen Müller juergen@e-basteln.de Vintage Computing LittleGP-30

基于 FPGA 的 LGP-30 复刻项目

LGP-30 是一台 1956 年发布的商用计算机。由于其简单的设计和相对较低的成本,它可以被视为第一台“个人计算机”——供单个用户作为他们的“桌面计算机”使用。(它可以放在你的桌子旁边,而且尺寸也和桌子差不多。)

在真空管时代设计,它总共只需要 113 个真空管,其中只有 24 个用于 CPU 本身! 这种简单性是通过位串行 CPU 设计实现的,该设计与磁鼓存储单元紧密集成。 磁鼓不仅包含主存储器,还包含 CPU 的三个 32 位寄存器,以及用于控制指令解码和执行的多个具有定时信号的磁道。

本页面描述了一个真实的位串行实现及其时序的复刻版本,但使用了现代组件。 CPU 和磁鼓存储器在 FPGA 中重新创建——通过实现由 LGP-30 的发明者发布的完整逻辑方程式(在一篇科学论文和计算机的服务手册中)。 磁鼓虽然在 FPGA 内部的板载内存中实现,但可以通过可选的视频显示其内容来实现。

这样,人们就可以玩转 LGP-30 的所有怪癖,包括程序的时序行为,这在很大程度上取决于指令和数据在磁鼓上的位置。 对于那些想真正深入了解位串行设计的细节的人来说,时钟频率可以减慢(一直到单步、逐位时钟),并且可以在 LCD 上检查 CPU 基于真空管的触发器的内容(全部 15 位!)。

The original LGP-30 最初的 LGP-30:“比桌子还小”! Handheld LittleGP-30 replica 基于 FPGA 的复刻版本:比桌子小得多…… 这个复刻版本基于一个低成本的 FPGA 开发板,即 Numato Mimas (Xilinx Spartan 6 FPGA)。 我添加了一个前端板来提供所有必要的 I/O,并对 FPGA 进行了编程,以实现 LGP-30 逻辑单元,将来自外部 ASCII 终端的字符转换为 LGP-30 的“Flexowriter”打字机使用的代码,并驱动 LCD 和外部 HDMI 显示器以可视化 LGP-30 的内部工作原理。

目前,这只是一个网页,用于托管复刻版本的数据文件和说明。 下面有非常全面的构建说明 - 如果你想了解更多,请从那里开始。 这只是一个业余爱好项目,我不提供套件,但我目前有一些备用的 PCB。 如果您有任何问题或意见,请随时通过以下电子邮件地址与我联系!

最新版本的 LittleGP-30 PCB 除了经典的 RS-232 端口外,还具有用于连接到 PC 的原生 USB 端口。 这使得可以通过单根 USB 电缆轻松地从任何现代 PC 进行数据传输和电源供应。 更新后的二进制文件也为所有较旧的 LittleGP-30 板带来了一些改进:触发器的内容显示并在 HDMI 屏幕上解码,以便更容易地在单步模式下跟随操作。 LCD 上还有一个更好的“示波器”显示,改进的编码器去抖动和磁鼓定位,以及通过编码器调整 LCD 对比度的选项。

值得炫耀的权利:这个项目曾在 Hackaday 上做过专题报道。 ;-)

复刻项目文件

如果您想构建和使用最新版本的 LittleGP-30,请参阅“最新”文件。 这具有上面所示的“宽面板”布局,以及板载的 USB 和 RS-232(迷你 DIN 连接器)接口。

除非另有说明,否则这些文件也适用于早期版本的 LittleGP-30 PCB。 一些特定于版本的文件可以在下面的“旧 PCB 版本的文件”下找到。

最新项目文件

旧 PCB 版本的相关文件

开发工具

LGP-30 文档

斯图加特大学托管了一个很棒的 LGP-30 程序和文档档案。 一些文档是德语的(有一个获得许可的制造商和分销商负责完全德语化的 LGP-30),但也提供了大量英语手册和程序库说明:

Cory Heisterkamp 正在恢复可能是在北美最后一台接近正常工作的 LGP-30。 他有一个关于恢复项目的非常好的网站,该网站还托管了 LGP-30 的发明者 Stanley Frankel 的两篇经典论文。 强烈推荐!

LittleGP-30 boards up close 自下而上:Numato Mimas FPGA 板、LittleGP-30 接口板和前面板覆盖层。 LittleGP-30 replica with and without enclosure 有外壳和没有外壳的 LittleGP-30 复刻版本