在FPGA上实现Intel i386 CPU并运行Doom游戏

描述

以下文章来源于OpenFPGA,作者碎碎思

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

开源

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

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

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

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

开源

前言

开源

在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/炮灰》等游戏。”

开源

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

开源

什么是微码

现代 CPU 执行:

 

MOV
ADD
MUL
JMP

 

这些指令时,内部并不是直接完成动作。

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

例如:

 

取指
↓
译码
↓
寄存器读取
↓
ALU运算
↓
写回

 

这些底层控制序列就是:

Microcode(微码)

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

而 80386 正是经典代表之一。

历史

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

开源

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

链接

参考链接:

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对比):

开源

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分