当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom

FPGA技术江湖 2026-06-20 05:45

对于很多硬件工程师来说,Intel 80386 是一个传奇。

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图1

它不仅开启了 32 位 PC 时代,也奠定了后来 x86 计算机几十年的基础架构。

而最近,一个名为 Z386 的开源项目正在尝试做一件相当疯狂的事情:

  • 用 FPGA 重新实现 Intel i386,而且还能运行 Doom。

项目消息最近出现在多个硬件社区,引起了不少 FPGA 和复古计算机爱好者关注。

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图2

前言

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图3

在FPGA上实现Intel i386 CPU的方法有很多,其中使用原始微代码可能是最有趣的方法之一。z386项目正是采用了这种方法。

“z386 是一款基于英特尔原始微代码构建的 386 级 CPU,其设计理念与 z8086 相同,“它的核心并非 RTL(寄存器传输级)指令级模拟器。其目标是尽可能地还原原机,以便恢复的 386 控制 ROM 能够驱动它。如今,z386 可以启动 MS-DOS 6 和 DOS 7,运行 DOS/4GW 和 DOS/32A 等保护模式程序,并能运行 id Software 的《Doom/毁灭战士》和 Sensible Software 的《Cannon Fodder/炮灰》等游戏。”

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图4

目前,z386 架构已可在多种 FPGA 上运行,包括 Altera Cyclone V 和 Gowin GW5A,其性能与 70 MHz 左右的 i386 处理器相当,但周期效率略低,部分原因可能是其缓存容量仅为 16 kB,而最快的 i386 CPU 则拥有 32 kB 以上的缓存。无论如何,它足以运行各种软件,包括像 DOOM这样的游戏。

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图5

什么是微码

现代 CPU 执行:

MOV
ADD
MUL
JMP

这些指令时,

内部并不是直接完成动作。

而是进一步拆解成更底层的控制步骤。

例如:

取指

译码

寄存器读取

ALU运算

写回

这些底层控制序列就是:

Microcode(微码)

早期复杂指令集 CPU(CISC)大量依赖微码实现。

而 80386 正是经典代表之一。

历史

英特尔于 1985 年推出了 386 处理器,最初名为 80386,后来更名为 i386,承诺比其前代 286 处理器性能更强,并支持高达 4GB 的内存。尽管直到 2007 年才正式停产,但 386 处理器一直是英特尔的畅销产品,即便在 1989 年速度更快的 i486 处理器发布之后也是如此。

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图6

“有理由认为,386 是英特尔最重要的 CPU,它并非最简洁,在当时速度也并非最快,设计也并非最优雅。但它在硬件和软件的结合方面做得相当出色:它是一款 32 位 x86 处理器,具备保护模式、分页机制和良好的向下兼容性。另一种观点也提出了类似的看法:我们现在所说的 x86 架构,正是从 80386 开始真正成型的。”

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图7

链接

参考链接:

https://hackaday.com/2026/05/25/z386-an-open-source-80386-built-around-original-microcode/

https://www.hackster.io/news/the-z386-is-an-fpga-re-implementation-of-intel-s-i386-and-yes-it-runs-doom-c2dfe05c3625

项目链接:

nand2mario 的博客上有完整的介绍文章(包括设计细节);

https://nand2mario.github.io/posts/2026/z386/

源代码在 GitHub 上:

https://github.com/nand2mario/z386

可在基于 MiSTer FPGA 的平台上运行的核心:

https://github.com/nand2mario/z386_MiSTer

资源消耗(和Ao486对比):

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图8
当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图9

往期精选 

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图10
当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图11





当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图12
当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图13

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图14

加群主微信,备注姓名+学校/公司+专业/岗位进群


FPGA技术江湖QQ交流群

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图15

备注姓名+学校/公司+专业/岗位进群

当 FPGA 开始“复活”386:一个开源 i386 CPU 竟然跑起了 Doom图16

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
FPGA 开源
more
FPGA 原型验证中的内存模型应用:基于 DDR5 的 Linux 系统启动与测试
国际先进!中科亿海微国产嵌入式FPGA IP核及EDA系统设计技术通过科技成果评价
基于FPGA的自动白平衡算法的实现(附代码)
国产FPGA的“黄金窗口”:紫光同创如何卡位AI算力新战场?
FPGA零基础学习精选:Intel FPGA 开发流程(超详细)
资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2026.02.28更新)
SystemVerilog如何优雅的提升FPGA开发效率
FPGA杂谈:APB、AHB-Lite、AXI-Lite的选型与痛点
FPGA远程更新/远程调试的一种简单方法
一款改变了世界的FPGA
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号