Hotdry.

Article

FPGA完整复现Apple Lisa硬件系统:自定义CPU、SOC架构与外设接口的工程实现

深入解析基于FPGA的Apple Lisa完整硬件复现项目,涵盖Motorola 68000 CPU实现、SOC架构设计、现代外设接口适配及硬盘/软盘 emulation 等工程细节。

2026-05-03systems

Apple Lisa 作为苹果公司 1983 年推出的商用工作站计算机,在个人计算历史上具有里程碑意义。其内部架构采用了 Motorola 68000 处理器、定制化芯片组以及独特的并行接口设计,这些硬件特征至今仍吸引着众多复古计算爱好者和硬件工程师去探索与复现。一个名为 LisaFPGA 的项目在经过约八个月的开发后,成功将完整的 Lisa 系统实现于一片 FPGA 之中,不仅还原了原始硬件的全部功能,还加入了对现代显示与输入设备的支持。本文从工程实现角度,深入剖析这一 FPGA 项目的架构设计、核心模块实现与现代接口适配方案。

项目背景与硬件平台概述

LisaFPGA 项目的核心目标是在 FPGA 可编程逻辑器件上完整实现 Apple Lisa 的硬件系统。与传统软件模拟器不同,FPGA 实现能够在硬件层面精确还原原始系统的时序特性与电气行为,从而实现近乎完美的兼容性。项目开发者设计了一块定制的电路板,该板卡集成了 FPGA 芯片、Lisa 所需的全部外部连接器、以及若干现代化改进模块。从 VCFed 论坛的讨论帖可知,这块自定义板卡包含了 Lisa 的原始接口定义,并在此基础上扩展了 HDMI 视频输出、USB 键盘鼠标输入、内置 ProFile 硬盘 emulation 以及软盘驱动器 emulation 功能。

在处理器核心方面,Lisa 采用了 Motorola 68000 这款 16 位微处理器,主频为 5MHz。为了在 FPGA 中实现该处理器,开发者可以选择两种路径:一是使用现成的软核 CPU IP,二是自行编写兼容 68000 指令集的处理器实现。考虑到项目对时序精确性的严格要求,自行实现处理器核心能够更好地控制每个指令周期的具体行为,这对于兼容 Lisa ROM 中的底层硬件访问代码至关重要。值得注意的是,项目还实现了最高四倍于原版 Lisa 时钟频率的超频能力,这意味着在 FPGA 上运行的 Lisa 系统能够以 20MHz 的频率运行,在保持软件兼容性的前提下显著提升响应速度。

SOC 架构设计与内存系统实现

Lisa 的硬件架构采用了多芯片分离设计,CPU、内存控制器、视频子系统、以及 I/O 控制器各自独立运行。在 FPGA 中复现这一架构,需要将这些原本分散的芯片功能整合到一个统一的 SOC 系统之中。FPGA 的可编程逻辑特性使得开发者能够精确模拟原始硬件的地址映射关系、中断响应机制、以及总线仲裁逻辑。这种深度整合的实现方式,相比分离的模拟器方案,能够提供更准确的硬件时序与更低的延迟。

内存系统是 Lisa 硬件复现中最具挑战性的部分之一。Lisa 配备了 512KB 到 2MB 的动态 RAM,其内存访问需要严格的刷新周期管理。在 FPGA 实现中,内存控制器模块需要精确模拟原始硬件的内存访问时序,包括刷新周期、等待状态插入、以及 DMA 访问的仲裁。LisaFPGA 项目在内存系统上的实现确保了与 LisaOS 及第三方操作系统如 GEM 的完全兼容。根据开发者的测试反馈,该 FPGA 实现能够稳定运行所有 Lisa 支持的操作系统,且与真实硬件无明显功能差异。

项目还实现了内置的 ProFile 硬盘 emulation 系统。ProFile 是 Lisa 原配的 5MB 或 10MB 硬盘驱动器,采用 SCSI 接口协议。在 FPGA 中实现硬盘 emulation,意味着需要在逻辑层面模拟硬盘控制器的全部命令集,包括寻道、读写、状态查询等操作。开发者将 emulation 存储介质部署在 FPGA 板卡上的非易失性存储芯片中,用户可以通过 USB 接口更新镜像文件,从而实现便捷的硬盘数据管理。此外,软盘驱动器 emulation 也在开发列表之中,尽管目前尚处于早期测试阶段。

现代接口适配与用户体验优化

LisaFPGA 项目最具创新性的特点在于其现代接口的大规模引入。原始 Lisa 系统采用专用的高压 CRT 显示器接口和五针圆形键盘连接器,这些接口在现代环境下已经难以寻觅相应的外设设备。FPGA 实现通过板载的 HDMI 输出端口和 USB 接口,彻底解决了这一兼容性问题。HDMI 接口不仅能够输出数字视频信号,还支持音频传输,这与原始 Lisa 的音频能力相匹配。用户只需将 FPGA 板卡连接至现代 HDMI 显示器、USB 键盘和 USB 鼠标,即可像使用普通电脑一样操作复刻版的 Lisa 系统。

在输入设备方面,项目实现了完整的 USB HID 设备支持。USB 键盘和鼠标能够被 FPGA 系统识别为 Lisa 的原始输入设备,相应的按键映射和鼠标移动数据会被转换为 Lisa 内部总线上的中断信号。这一适配过程涉及 USB 协议栈的 FPGA 实现以及输入事件到 Lisa 硬件中断的转换逻辑。对于需要使用真实 Lisa 外设的用户,板卡也提供了原始接口的扩展排针,可以连接至外部的键盘控制器或鼠标适配器。

项目的时钟倍频能力是一个值得关注的技术细节。通过将 FPGA 的时钟管理模块配置为可编程输出,开发者能够动态调整系统的运行频率。Lisa 原始硬件运行在 5MHz 主频下,而 FPGA 实现允许用户将其提升至约 20MHz。这种超频并非简单的时钟缩放,而是需要对总线时序、内存访问延迟、以及外设响应时间进行综合调整的项目,确保在高速运行下仍能保持对原始软件的完整兼容性。

开源计划与社区生态

根据项目开发者在 VCFed 论坛的声明,LisaFPGA 的完整设计将在最终 PCB 版本测试完成后开源至 GitHub。这意味着未来的爱好者将能够获取 FPGA 逻辑源码、电路板设计文件、以及相关的固件代码。开源策略不仅有助于社区的参与和改进,也确保了项目成果的长久保存与可验证性。

开发者在 LisaList2 论坛记录了完整的开发历程,目前已有约百篇帖子详细描述了从项目启动到当前状态的各种技术挑战与解决方案。这些第一手的技术文档对于理解 FPGA 硬件复现的实现细节具有重要参考价值。项目还计划在 VCF Southwest 活动上进行专题演讲,进一步分享技术细节与设计思路。

从技术角度审视,LisaFPGA 项目展示了 FPGA 在复古计算硬件 preservation 领域的巨大潜力。通过精确的硬件描述与实现,FPGA 能够不仅还原原始系统的功能,还能提供现代外设支持与性能增强。这种混合 approach 为类似的老旧计算机系统复现提供了可借鉴的工程范例。随着项目开源的推进,我们可以期待更多社区力量参与完善这一实现,使其成为永久保存计算历史的可靠数字载体。

资料来源:VCFed 论坛 "The Apple Lisa Inside an FPGA!" 主题讨论帖(https://forum.vcfed.org/index.php?threads%2Fthe-apple-lisa-inside-an-fpga.1257366%2F)

systems