LisaFPGA:在FPGA中实现的Apple Lisa计算机

Lobsters Hottest 工具

摘要

Apple Lisa计算机已在FPGA中忠实地实现,并进行了现代增强,包括HDMI视频、USB输入和低功耗。该项目完全开源,运行在定制PCB上。

<p><a href="https://lobste.rs/s/kd2o1j/lisafpga_apple_lisa_computer">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/07/09 07:44

alexthecat123/LisaFPGA 源: https://github.com/alexthecat123/LisaFPGA # LisaFPGA 在 FPGA 中实现的 Apple Lisa 计算机! # 从这里开始 以下是一些链接,指向本文档的不同部分,根据你希望做的事情: - 我买了一块板子,想学习如何使用它。 - 我需要更新板子的固件。 - 我想购买板子或自己制作 PCB。 - 我想学习如何从源码构建 LisaFPGA 代码。 - 我需要故障排除帮助。(https://github.com/alexthecat123/LisaFPGA/FAQ.md) # 目录 - 简介 - 硬件 - 购买或制作板子 - 编程/更新固件 - 使用指南 - 自己构建代码 - 开发笔记 - 未来增强 - 联系我! - 变更日志 - 附录 - 跳线、开关、按钮和 LED # 简介 自从两年前在本科期间上了一门 FPGA 入门课程后,我就对 FPGA 及其令人难以置信的通用性产生了浓厚的兴趣。我想做一个能加深我对 FPGA 理解的项目,于是决定将 FPGA 与我的另一个重要兴趣——Lisa 结合起来。现在,9 个月过去了,我们有了一个在 FPGA 内运行的功能完整的 Lisa,并附带大量现代化改进,使其在 21 世纪更易于使用! ## 特性 - 硬件模拟 Lisa 1 或 2/5。 - 低功耗约 2.8W;使用标准 10,000mAh USB 移动电源可运行约 14-18 小时。 - 与原始 Lisa 相同的所有 I/O,但无扩展槽。 - 2MB RAM,可在运行时配置为 512K 到 2MB 之间的任意大小。 - 实时超频,最高可达原始 Lisa 速度的 3.75 倍。 - 通过 1080p HDMI 输出视频和音频。 - 如果 HDMI 显示器没有扬声器,可使用板载扬声器。 - USB 键盘/鼠标支持(当然,如果你愿意,也可以使用原始 Lisa 的键盘/鼠标)。 - 板载 ProFile 硬盘模拟,得益于集成的 ESProFile(https://github.com/alexthecat123/ESProFile)。 - 基于 ESP32 的板载软盘模拟(注意:此功能尚未工作)。 - 同时支持外部 ProFile 和软盘驱动器。 - Serial B 可重新路由到 USB-C 端口,以便直接通过 USB 与 Lisa 通信。 - 实时 ROM 切换,可在 H(矩形像素)和 3A(方形像素)CPU 板 ROM 之间切换。 - 通过可选的转接板支持 Twiggy 驱动器。注意,此功能目前未经测试,因为我手头没有 Twiggy 驱动器,但我正在努力在不久的将来借用一台 Lisa 1 进行测试。 - 完全开源;欢迎随意修改设计! # 硬件 LisaFPGA 硬件基于一块定制的 6 层 PCB,核心为 Xilinx Artix 7 100T FPGA。该 PCB 通过 USB-C 供电,并带有板载开关稳压器,用于生成我们所需的相当荒谬数量的电压。除了来自 USB 的 5V 外,我们还需要 -12V、-5V、1V、1.8V、3.3V 和 12V。这可真是一大堆稳压器!!!此外,还有一个板载 CH334 USB 集线器,将 USB-C 连接分成 4 个独立的 USB-C 接口。其中一个连接到 FT232,用于通过 JTAG 编程 FPGA;两个连接到两个 ESP32(ESProFile 和尚未开发的软盘模拟器);最后一个连接到 CP2102N,允许将 Serial B 重新路由到 USB-C 端口。 Lisa 的 RAM 并不在 FPGA 内部;它存储在与 FPGA 相邻的板载外部 2MB SRAM IC 中。HDMI 端口和 USB 键盘/鼠标端口不需要单独的控制 IC;它们直接连接到 FPGA,FPGA 在内部实现了所有必要的硬件。 板载扬声器使用与原始 Lisa 完全相同的音频放大器电路(减去输出晶体管),因此其工作方式和音感应尽可能与原始机器相似。 Rev.3 板还包含一个用于真实 8530 SCC 芯片的插座,用于控制串行端口。这是因为在设计板子时,SystemVerilog SCC 核心尚不存在。但现在已经有了,因此 Rev.3 板上的插座是空的,后续版本则完全去掉了插座! 硬件过于复杂,无法在此详细说明,但欢迎查看 hardware 目录中的原理图以获取更多信息。有关在 FPGA 上运行的实际 HDL 代码的更多信息,请查看后面的 开发笔记 部分。 # 购买或制作板子 ## 购买板子 我通过 MacEffects(https://maceffects.com/products/lisafpga)和 Joe’s Computer Museum(https://jcm-1.com/product/lisafpga/)销售 LisaFPGA 板子。两块板子在两个网站上的售价均为 350 美元;选择从谁那里购买完全取决于你更倾向于与谁交易。这些板子相当受欢迎,我制造的每批都有数周的交货周期,因此它们很可能经常缺货,尤其是在初期。希望随着 2026 年后期需求开始下降,情况会有所改善! 如果你买了一块板子,看到顶部中央附近有一个大的空插座,请不要担心;你拿到的是 Rev.3 板,插座按设计是空的!你没有缺少任何零件,后续版本将完全去掉这个插座。 ## 自己制作板子 如果你想通过 PCB 制造服务自己制作/组装一批板子,那也是完全可以的!这并不特别困难,我将在这里指导你完成。但请记住,由于固定生产成本很高,小批量购买这些板子非常昂贵,而批量购买时成本会大幅下降。因此,如果自己制作,你需要以最小订单量 2 块(总价约 1000 美元)来估算,每块约 500 美元,而从我的一批订单中购买一块只需 350 美元。 我使用 JLCPCB(https://jlcpcb.com/)进行所有 PCB 订单,强烈建议你同样使用。尤其在这个项目中,整个物料清单都是根据 JLC 通常的库存定制的,PCB 走线间距/宽度也针对阻抗匹配设计为匹配 JLC 的一种板层堆叠。现在让我们逐步完成整个过程,包括主 LisaFPGA 板子和 Twiggy 转接板(如果适用)。 ### LisaFPGA 主板 前往 JLCPCB 网站(https://jlcpcb.com/),点击“立即下单”,然后点击“添加 Gerber 文件”按钮。选择你想要制作的 LisaFPGA 板的 Gerber 文件;这些文件位于 hardware/lisafpga_desktop/rev_X 目录中,其中 X 是你想要制作的板子的版本号。你可能想选择最新版本的板子! 上传 Gerber 文件后,界面应如下所示: 现在,在进入下一屏幕之前,我们需要更改一些选项:三个可选选项和两个必选项。 - 可选:如果你很富有并且想要大量板子,可以将数量增加到 5 以上。 - 可选:将板子颜色改为绿色以外的颜色。 - 可选:加急 PCB 制造时间,但这非常昂贵,在我看来完全不值得。 - 将“指定叠层”更改为“是”,然后选择 JLC06161H-3313。如果系统警告厚度不是精确的 1.6mm,直接继续即可;这完全没问题。 - 将“最小过孔孔径/直径”选择为 0.25mm/(0.35/0.4mm)。除非你知道自己在做什么,否则其余选项保持默认。 完成所有这些更改后,设置应如下所示: 这就是 PCB 制造本身的全部配置;现在我们只需告诉他们如何将所有元件组装到板子上。首先向下滚动到页面底部,打开“PCB 组装”的开关。然后对 PCB 组装设置进行以下更改: - 将 PCBA 类型更改为“标准”。 - 将组装面更改为“双面”。 - 将 PCBA 数量设置为你实际希望他们组装的板子数量。最小为 2,最大为你之前要求他们制造的板子数量。任何你要求制造但未组装的板子将作为裸板直接运给你。同样,除非你知道自己在做什么,否则其余选项保持默认。 此时,页面应如下所示: 现在点击“下一步”,你将看到裸板的预览。我不知道这页的目的是什么,因为上一页我们已经有了预览;直接再次点击“下一步”,进入要求上传 BOM 和 CPL 文件的页面,这些文件包含板上元件的信息及其位置。按提示上传这两个文件;它们都在 hardware/lisafpga_desktop/rev_X 目录中,BOM 文件名中包含“bom”,CPL 文件名中包含“pick_and_place”。上传后,点击“处理 BOM 和 CPL”按钮继续。 处理完 BOM 和拾放文件后,你将看到一个列表,包含板上所有元件、你的订单所需数量、总成本以及是否有任何元件的库存不足(库存短缺)。首先,检查列表,确保所有没有库存短缺的元件都已勾选。默认情况下应全部勾选,但我注意到 J20/SW13 等有时需要手动勾选。如果有任何元件库存短缺,只需点击该元件,你将看到一些详细信息。然后转到“搜索零件”选项卡寻找合适的替代品,选择它,然后继续使用替代零件。 确认所有元件都正确后,点击“下一步”,你将看到板子的 3D 渲染图,上面已放置所有元件。一切应该没问题,但花一两分钟浏览板子(顶部和底部),确保所有元件看起来安装正确;对于如此昂贵的订单,这样做总是好的。不必担心 FPGA 下方板子底部的晶振安装反了;我认为这只是因为底部封装的镜像特性,他们的工程师每次都会发现并纠正这个问题。 确认所有元件放置满意后,再次点击“下一步”。如果弹窗显示需要确认元件放置,只需点击确定;这意味着在他们的工程师审查完你的布局后,你会收到一封电子邮件,需要确认他们对元件放置所做的任何更改。但这非常简单;你只需点击邮件中的链接,查看板子的 3D 视图,然后选择“是”选项。 关闭该弹窗后(如果出现),你将看到整个订单的费用。准备承受一笔昂贵的费用!阅读摘要,产品描述选择任意内容,如果允许且你想加急组装,可以选择加急,然后点击“添加到购物车”。放入购物车后,你可以像其他网站一样进行结算。但请注意:一旦开始结算,你的购物车将被清空,所以如果你开始结算、改变主意然后又返回购物车,你将丢失整个订单并需要重新开始。相当烦人;我这样做的次数多得不好意思说! 这些是 6 层板,上面有相当多的元件,因此制造和组装并不特别快速或简单。给 JLC 大约 2 周(或稍长)时间完成制作和组装,然后再过一周运输。 收到板子后,你还需要一样东西:用于板上所有配置跳线块的跳线(https://www.amazon.com/California-JOS-Standard-Circuit-Connection/dp/B0BRK36G33)。前往 附录 了解如何安装和配置它们。 请注意,如果你有 Rev.3 板,且在 U28 处有一个大的 DIP-40 插座,则不应在插座中安装任何东西,因为这会导致与 FPGA 的信号冲突。该插座是当我打算使用真实的外部 SCC 芯片控制串行端口时遗留下来的,但现在 SCC 已在 FPGA 内部实现,不再需要此插座。Rev.3 之后的版本甚至没有这个插座。 ### Twiggy 转接板 如果你是少数幸运者之一,恰好拥有一套 Twiggy 驱动器并希望连接到你的 LisaFPGA 板,那么你也需要制作一些 Twiggy 转接板。幸运的是,这些非常便宜! 请注意,Twiggy 转接板目前未经测试,因为我没有幸运到拥有任何 Twiggy 驱动器。但我将在不久的将来借用某人的 Lisa 1 来获取测试数据并修复任何问题。请记住,当前板子版本可能无法工作;使用风险自负! 过程与主 LisaFPGA 板几乎相同,只是你应该使用 hardware/twiggy_breakout/rev_X 中的文件,其中 X 是该目录中可用的最新版本号。 Twiggy 转接板的好处是,你不需要像主 LisaFPGA 板那样选择一堆自定义选项。它们非常简单,可以使用默认设置制造。你可能感兴趣更改的唯一内容是: - 你想要制造的 PCB 数量。 - PCB 的颜色。 - 你想要它们组装的 PCB 数量。 你还需要合适的 IDC 电缆将转接板连接到 LisaFPGA 板和你的驱动器。以下是你需要的电缆以及每个的亚马逊链接: - 1 条 6 针 (2x3)(https://www.amazon.com/FOCMKEAS-Connector-Ribbon-Length-2-54mm/dp/B0F3DHFFT5) - 1 条 20 针 (2x10)(https://www.amazon.com/FOCMKEAS-Connector-Ribbon-Length-2-54mm/dp/B0F3DDQTPK) - 2 条 26 针 (2x13)(https://www.amazon.com/FOCMKEAS-Connector-Ribbon-Length-2-54mm/dp/B0F3DFR3ZY) 请注意,每个链接是五条电缆,因此你每个只需订购一条,尽管你需要两条 26 针电缆。或者,如果你想自己制作电缆,这里有一个 DigiKey 清单(https://www.digikey.com/en/mylists/list/7JY9404QK4),其中包含制作一套所需的所有零件。 # 编程/更新固件 本节适用于购买了预装板子的人和自制板子的人。如果你购买了预装板子,则无需立即执行此操作,因为板子将预先编程好,但将来当我发布 FPGA、ESProFile 以及尚未实现的 ESFloppy 固件的更新时,你可能需要这样做。如果你自制了板子,那么它们当然是空白的,因此你需要编程所有内容后才能使用板子。无论哪种方式,过程都是相同的、自动化的,并且适用于 macOS 和 Linux。自动化过程不适用于 Windows,因此如果你正在运行 Windows,那么是时候转向 Linux 了! 你只需在 macOS 或 Linux 上打开终端,使用 cd 命令进入 LisaFPGA 目录,然后运行 program_board.sh 脚本。假设 LisaFPGA 仓库在我的 Downloads 文件夹中,操作如下: cd ~/Downloads/LisaFPGA-main/ ./program_board.sh 当然,确保在运行脚本之前将板子连接到电脑并通电!此脚本将自动安装所有必要的依赖并执行 t

相似文章

从零开始在FPGA上设计科学计算器

Lobsters Hottest

一系列详细的博客文章,记录了从零开始使用FPGA设计和实现科学计算器的过程,涵盖了数值方法、CPU架构、微码和硬件原型设计。

让Apple II成为严肃商用机的卡片

Lobsters Hottest

深入探究Videx VideoTerm——这款80列卡片将Apple II转变为严肃商用机,以及通过A2FPGA项目实现的现代FPGA仿真,重点关注硬件架构和MC6845 CRT控制器。