又一个周末来临,我可以花一些时间来做我热爱的项目,包括使用单板计算机、玩模拟器以及使用烙铁进行一般性的修补。今年早些时候,我写了一篇关于在 Raspberry Pi 上复活 Commodore Amiga的文章。一位同事将我们对旧技术的共同痴迷称为“对保护我们数字文化的热情”。
在我的“数字考古学”之旅中,我听说了一种使用 现场可编程门阵列 (FPGA) 来模拟旧系统的新方法。我对这个概念很感兴趣,所以我花了一个周末来了解更多。具体来说,我想知道我是否可以使用 FPGA 来模拟 Commodore Amiga。
什么是 FPGA?
当您构建电路板时,所有东西都字面上地蚀刻在硅片上。您可以更改在其上运行的软件,但物理电路是不可变的。因此,如果您想稍后向其中添加新组件或修改它,您将受到硬件物理性质的限制。使用 FPGA,您可以对硬件进行编程以模拟新组件或更改现有组件。这是通过可编程逻辑门(因此得名)实现的。这为物联网 (IoT) 设备提供了很大的灵活性,因为可以稍后对其进行更改以满足新的需求。

FPGA 现在被用于许多设备中,包括智能手机、医疗设备、机动车辆和飞机。由于 FPGA 可以轻松修改并且通常具有较低的功耗要求,因此这些设备随处可见!它们的制造成本也很低,并且可以配置为多种用途。
Commodore Amiga 采用具有特定用途和有趣名称的芯片设计。例如,“Gary” 是一个门阵列,后来在 A3000 和 A4000 上升级时变成了“Fat Gary”。 “Bridgette” 是一个集成的总线缓冲器,而令人愉悦的“Amber”是 A3000 上的“闪烁修复器”。使用可编程门模拟这些芯片的能力使其成为 Amiga 模拟的理想平台。
当您使用模拟器时,您是在欺骗应用程序使用软件来找到它所期望的架构。主要的限制是模拟的准确性以及命令通过 CPU 处理的顺序性质。使用 FPGA,您可以告诉硬件正在使用哪些芯片,并且软件可以像与本机芯片一样并行地与每个芯片通信。这也意味着应用程序可以像在原始硬件上运行一样进行线程处理。这使得 FGPAs 特别适合模拟旧系统。
介绍 MiSTer 项目
我一直在使用的板是 Terasic 的 DE10-Nano。开箱即用,此设备非常适合学习 FPGA 的工作原理,并为您提供访问工具以帮助您入门。

MiSTer 项目建立在此板之上,并采用子板来提供内存扩展、SDRAM 和改进的 I/O,所有这些都建立在基于 Linux 的发行版之上。要将其用作模拟平台,需要通过使用“核心”来扩展它,“核心”定义了板将模拟的架构。
将 MiSTer 发行版刷入设备后,您可以加载“核心”,它是您要使用的芯片的定义以及用于管理模拟系统的相关菜单的组合。

与运行模拟软件的 Raspberry Pi 相比,这些核心为模拟提供了更原生的体验,并且通常在基于软件的模拟器上无法完美运行的应用程序可以在 MiSTer 上正常运行。
如何开始
在线有大量的资源可以帮助您入门。第一站是 MiSTer 的 GitHub 页面上的文档,其中包含有关将所有内容组合在一起的分步说明。如果您更喜欢主板的可视演练,请查看 这个视频,来自 Retro Man Cave YouTube 频道。有关配置 Minimig (mini Amiga 的缩写)核心以加载磁盘或使用 Amiga 的经典 Workbench 和 WHDLoad 的更多信息,请查看此精彩的 教程,来自 YouTube 上的 Phil's Computer Lab。
核心
MiSTer 具有适用于多种系统的核心;我主要感兴趣的是 Amiga 模拟,它由 Minimig 核心提供。我对 Commodore 64 和 PET 以及 BBC 微型计算机也感兴趣,我在大学时使用过它们。我也很喜欢玩 Commodore PET 上的 Space Invaders,我承认(多年后!)这正是我在一周结束时预定大学计算机实验室时间的真正原因。
加载核心后,您可以通过连接的键盘并通过按 F12 访问“核心”菜单来与其交互。要访问 shell,您可以使用 F9 键登录,该键会向您显示登录提示。您将需要一个 kickstart ROM(相当于 PC 的 BIOS)才能使您的 Amiga 运行。您可以从 Cloanto 获得这些,Cloanto 出售 Amiga Forever 启动盘,其中包含启动系统所需的 ROM 以及游戏、演示和硬盘驱动器文件,这些文件可以在您的 MiSTer 上使用。将 kickstart ROM 存储在 SD 卡的根目录中,并将其命名为“KICK.ROM”。
在我的 MiSTer 板上,我可以运行我的 Raspberry Pi 上无法运行的 Amiga 演示,即使我的 Pi 有更多的可用内存。模拟更加准确并且运行效率更高。通过扩展板,我甚至可以使用旧硬件,例如原始的 Commodore 显示器和 Amiga 操纵杆。
源代码
MiSTer 项目的所有代码都可在其 GitHub 仓库中找到。您可以访问核心以及主要的 MiSTer 设置、关联的脚本和菜单文件。这些会经常更新,并且有一个可靠的社区积极开发、修复错误和改进所有贡献,因此请定期回来查看更新。该仓库提供了大量信息,可以帮助您启动和运行。
安全注意事项
有了定制的灵活性,也就带来了安全漏洞的潜在可能性。所有 MiSTer 安装都带有 root 帐户上的预设密码,因此您要做的第一件事就是更改密码。如果您使用该设备为游戏构建机柜,并且您已授予该设备访问您的网络的权限,则可以使用默认的登录凭据来利用它,这可能会导致第三方访问您的网络。
对于非 MiSTer 项目,FPGA 公开了一个进程能够侦听另一个进程的能力,因此限制对设备的访问应该是您要做的第一件事。构建应用程序时,应隔离进程以防止不必要的访问。如果您打算将您的板部署在可以公开访问其他用户或共享应用程序的地方,这一点尤其重要。
查找更多信息
在线有很多关于此类项目的信息。以下是一些您可能会觉得有用的资源。
社区
- MiSTer wiki
- 设置指南
- 支持核心上的互联网连接
- 讨论论坛
- MiSTer 插件(公共 Facebook 群组)
子板
视频和演练
- 探索 MiSTer 和 DE-10 Nano FPGA:这是复古的未来吗?
- Terasic DE10-Nano 上的 FPGA 模拟 MiSTer 项目
- FPGA 上的 Amiga OS 3.1—运行 MisTer 的 DE10-Nano
在哪里购买硬件
MiSTer 项目
- DE10-Nano (Amazon)
- Ultimate Mister
- MiSTer 插件
其他 FPGA
- TinyFPGA BX—带 USB 的 ICE40 FPGA 开发板 (Adafruit)
- Terasic,DE10-Nano 和其他高性能 FPGA 的制造商
评论已关闭。