There are many ways you can implement an Intel i386 CPU on an FPGA, with the use of original microcode probably being one of the most interesting approaches. This is what [nand2mario]’s z386 project does, with a recent blog post summarizing the development so far.
This effort is similar to the previously developed z8086 project, which as one may guess does something similar, except for the Intel 8086 CPU. By executing the original microcode you’re basically guaranteeing close compatibility with the original hardware, though of course the sheer scale of this microcode between an 8086 and 80386 is quite different.
There’s a much larger instruction set with a correspondingly much more complicated internal state to keep track of, including all those newfangled features like memory management, paging and register debugging, as well extensions to protected mode that began with the i286.
Currently z386 runs on a number of FPGAs, including the Altera Cyclone V and Gowin GW5A, with performance equivalent to a ~70 MHz i386 albeit with slightly worse cycle efficiency, some of which could be due to the limited 16 kB cache compared to the 32+ kB cache in the fastest i386 CPUs. Either way, it’s more than enough to run all kinds of software, including games like DOOM.
Important to note is that the goal here isn’t to be more performant than cores such as for example ao486, but more as an archaeological reconstruction of the original hardware and its interaction with said microcode.
Top image: line-up of Intel 286, 386 and 486 CPUs. (Credit: Sgroey, Wikimedia)

Despite being more of an 80286/16-Bit person myself I do agree here.
The 80386 wasn’t called a “mainframe on a chip” for nothing.
In the 80s, when still new, the i386 already was very respected and sought after.
Xenix 386, AutoCAD 386, PC-MOS/386, Concurrent DOS 386, Netware 386, Windows/386.. Just to name a few.
Even in 16-Bit environments (double sigma story) it was beloved for its solid performance over the predecessors.
In the 90s, Windows 3.x even featured a “386 Enhanced Mode” with its name in it.
So there’s no question that the 386 was historically the most signification step marker in x86 line, maybe.
By the mid-90s, the am386DX-40 with a static CMOS core still kept beating up lower end 486 CPUs, even.
I’m writing this despite me having a softspot for the 80286, its little brother.
(NEC V20/V30, Cyrix/Ti 486DLC, NexGen Nx586 and Chips Super386 were also cool, I think.)
I forgot to mention, there’s the excellent “red hill hardware guide”.
It will give an insight into history that alone Wikipedia won’t.
https://www.redhill.net.au/iu.php
Nice mention of the Red Hill guide. Encountered that many years ago, have to say it’s a nice treasure trove of information, esp. from a computer store’s perspective.
The 386 won the race, only because software caught up with the hardware at that specific time. Myself?…286 fan…it was a much better fit to the software being run at the time (DOS), a more efficient design, and still left the door open to the object orientation of the disastrous 432. A good 286 can outrun a 386SX in single-thread in a DOS application…
“The 80386 wasn’t called a “mainframe on a chip” for nothing.”
yes it was. The first really function chip in this series was the 80486 – the biggest thing being the FPU on core. The next biggest thing being the level 1 cache on core.
We – people doing number things on mainframes at the time – could suddenly run code on a pc. Not as fast as a mainframe, but it would actually run and was a lot cheaper that what we were charged for mainframe cycles.. I ended up with a fairly high rack of them, replaced with the pentium when it came out….
So the 80486 was actually the “mainframe on a chip”.
At Amdahl the 80386 was literally a mainframe on a chip in the form of a fully functional S/370 emulator. It wasn’t a replacement for the big iron, but it was one fine demonstration of what was possible.
Hm, my bad, just checked. It seems a few designs were described that way.
Thr Zilog 80000 or the i432, for example.
The i486 reference was from an 1991 Business Week magazine and some intel dev, it seems.
I think the 386 description fits to both 386/486 a like.
The Intel RapiCad was a special 486 for 386 motherboards, for example.
“The Zilog Z80000 is an unreleased 32-bit processor designed by Zilog and completed in 1986.
The Z80000 is a 32-bit expansion of the 16-bit Zilog Z8000 with multiprocessing capability, a six-stage instruction pipeline, and a 256-byte cache.[1]
It can address 4 gigabytes of RAM, but cannot execute code written for the Z8000 or Z80.
Described at the time as a “mainframe on a chip”, the processor is in many ways an equivalent to Intel’s 80386.
Delays in the initial manufacturing pushed back its availability date to after that of the 386, and the Z80000 only made it to a test sampling phase without ever being released commercially.[2]”
https://en.wikipedia.org/wiki/Zilog_Z80000
A real test of its compatibility would be too see if it can boot OS/2 and if it’s fully functioning, including the VDM (a precursor to things like kvm).
To me, it seems pointless if it doesn’t offer better performance. But I think there’s one use case where it could be invaluable. You’d build a computer with a motherboard and a network card, and not change a thing—just install security updates. After a few years, it could end up being the most secure processor.
Really burying the lede here in that this was made possible in the first place by the extraction and decoding of the 386’s microcode.
Annoyingly, the microcode is almost certainly still under copyright.