[Editor’s note: We got this one wrong! The computer uses an actual 486: the FPGA is running essentially as the chipset, interfacing the RAM and the ISA bus with the CPU. And since this went to press, [maniek-86] put out a nicer writeup of the project, which you should go check out, in addition to the GitHub link below.]
Given the technical specs of the FPGAs available to hobbyists these days, it really shouldn’t be a shock that you can implement a relatively-modern chipset on one, like one for a 486 system. In spite of knowing that in the technical sense, we were still caught off guard by [maniek-86]’s M8SBC project that does just that– the proas both CPU and BIOSducing a 486 FPGA chipset with a motherboard to boot.
Boot what? Linux 2.2.6, MS-DOS 6.22 or FreeDOS all work. It can run DOOM, of course, along with Wolfenstien 3D, Prince of Persia, and even the famous Second Reality demo– though that last without sound. [maniek-86]’s implementation is lacking direct memory access, so sound card support is right out. There are a few other bugs that are slowly being squished, too, according to the latest Reddit thread.
The heart of the system is a Xilinx Spartan II XC2S100 FPGA, which serves the motherboard chipset, codnamed “Hamster I”. The CPU is a vintage i486, running at a configurable 24MHz. The BIOS code is based on an open-source project by [b-demitri1] that’s also on GitHub, if you happen to need a PC BIOS. The FPGA isn’t doing everything: graphics is, as right and proper for a PC-compatible of this vintage, provided by an ISA card. [maniek] has tested several VGA cards and all apparently worked equally well, so that aspect of the system is apparently well in hand. The 4MB of system RAM seems pretty reasonable for a 486 build, as does restricting peripherals to PS/2 and the aforementioned ISA bus. We might have gone for a faster clock default than 24MHz, but that’s well within historical territory. Only a few bugs and the pesky lack of a DMA controller keep this from being a true PC-Compatible build, and that’s pretty amazing for one human’s hobby project.

Eventually, as stocks dwindle, reproducing retrocomputers in FPGA– as was recently done with the MSX standard–may be the only way to enjoy them. That’s probably least true of the 486, which lived on for decades in industrial hardware, but that doesn’t take away from how impressive this build is.
Thanks to [sven] for the tip! Remember: if you see something, say something, because Big Hacker isn’t always watching. (We leave that to the tech giants.)

Just think of all the computers that could be resurrected. e.g. Lisp machine, BeOS, etc.
Why would you want to bring the Cloaca Maxima of 20th century computing? Might as well hit yourself in the head with a dirty toilet brush or go to a skatepark and start chewing used condoms.
BeOS
https://www.haiku-os.org/
+1 Haiku is great!
Though I guess Ostracus meant hardware emulation of the BeBox, a special BeOS PC.
https://en.wikipedia.org/wiki/BeBox
In theory with DMA and maybe 8 or 12 MB of ram (more would be better) it should be possible to boot a stripped-down copy of modern NetBSD.
No, the FPGA is not serving as CPU, there is real Intel 486DX2 on there, and does NOT serve as BIOS, there is real W29C020 serving rom contents.
Despite using really fast SRAM instead of DRAM thus skipping designing own memory controller the speed is really really low at 17MB/s meaning cpu is running in 386 compatible mode (no burst).
Using 5V toleant Spartan 2 was really smart!
DMA and second PIC should easily fit inside FPGA.
ps: nasi tu byli
Lol, that is just lazy AF.
It’s literally the 4th line in that repo’s readme.md:
Thanks to the title literally the whole article is wrong. Unless “calling” a computer based on the chipset is the norm now.
Hmm the git repo hasn’t been modified in the last two weeks so it can’t be that (change after writing but before posting this “article”).
Did the AI summary function totally bug out?
really lazy isn’t. I thought this looked exciting(and it still is) but theres a big glaringly obvious socket for a 486 in the very first picture. Hopefully the author will fix this “minor” issue!!!
Personally, I think it’s good if the socket remains an option, though.
The 8086 to 80286 were second sourced a lot, while the 486 was the era of the x86 clones.
At the time, the 486 was the first profitable CPU for the mass market.
The 386 had much fewer alternatives, by direct comparison.
The am386 (static CMOS core), the Cyrix/Ti 486DLC and its twins, the Chips Super 386, the IBM 386/486 cores and a few more maybe.
By contrast, the 486 platform had a dozen drop-in replacements.
And 25 MHz was the lower, but also stable end.
33 MHz clock speed was ideal for 486DX-33 and 486DX2-66.
Maybe the FPGA could do an 386 internally and the socket remains available for a 486?
Way back in the 90s, highly compact 386/486 Baby AT mainboards had soldered a cheap 386DX33 or 40 (plastic package),
but also offered an optional 486 socket for full performance.
The on-board 386 basically was like a free gift, to get the user started.
And in most cases it did a really good job, especially if the motherboard had offered enough cache.
A practical 80386 CPU clone would be incredibly difficult (if not impossible) to fit within the Spartan-II device employed in this project (Cool project by the way!). Best one might be able to hope for is squeezing in an MCL88 8088 soft-CPU inside the existing FPGA or upgrade to a XC2S200 device and try for a Next186 core instead.
Oh, okay. That makes sense, thanks for the info!
Having an 80186-ish core would be very cool, too!
Some 80286 applications could get along with that already.
And EMU386 might be able to make some 80386 Real-Mode applications run.
What? No! Using real vintage parts (CPU, PIC, PIT, eeprom, SRAM) is not lazy – its AWESOME and the best part of this project. Not everyone wants another $200 Mister clone.
nie zesraj się
That’s very obvious from the architecture diagram embedded in the post. An author must have been very sleep-deprived to make such an unforced error. Hopefully it reads with better accuracy now.
That’s okay for a start, really.
On DOS, most games should fit into that (DOS4GW games can use swap file).
Though I’ve seen 286es with such an amount of RAM.. ;)
Anyway, it’s okay to boot into Windows 3.x or run Geoworks Ensemble.
If more RAM is needed, it can be provided via memory boards on ISA bus, just like it was done with IBM AT.
Up to 16 MB are available that way (as Exended Memory).
EMS using bank-switching can be higher, of course (up to 32 MB as of LIM4 specs).
But that being said, retro/vintage computing is more than just computer games, of course.
And especially the 486 was part of the early multimedia, virtual-reality and internet era.
There’s so many useful hard- and software from that time period.
For example, about ham radio or astronomy. Or DTP, CAD, animation, Amiga music.
Sophisticated DOS software such as JV-Fax, BayCom/PC-Com, TOP/STOP/X-Packet, HamComm, GSHPC, Hellschreiber,
SkyGlobe, STS Orbit Plus, Predict, TrakSat, GeoClock,
Ventura Publisher, D-Paint, NeoPaint, ZSoft Paintbrush, PC Paint, Dr. Halo, TelePaint (Splash!),
AutoCAD R12, AutoSketch 3, Autodesk 3D Studio R3, Autodesk Animator Pro,
Impulse Tracker, AdLib Tracker II etc.
Just to name a few that come to my mind. There are so many!
Time to browse through some shareware CD-ROMs from the 90s and 2000s! 😃
Ham radio free/shareware for DOS can be found here, for example:
https://www.iz3veo.it/download-dos/HamSoft/HamSoft.htm
The website has pictures showing the programs, which give a good idea.
These oldies are still fun to have in the ham shack,
also because they rely on small homebrew interfaces for serial or parallel port.
And they’re fun to build or to tinker with (since this is HaD).
Some use a Sound Blaster soundcard audio input and output instead.
They might be handy for testing compatibility.
SB Pro is often being supported, but SB16 with 16-Bit and 44 KHz sampling rate is better for DSP applications.
PS: About sound cards an music..
The Emu 8000 synth, OPL3 and the OPL4 don’t rely on DMA, right?
So it might be possible to have FM music in AdLib Tracker II or use an AWE card to play MOD files.
Impulse Tracker does support AWE’s Emu8k, but also uses the SB16 DAC for more voices?
Then there’s OPL4 synth. If it has sample RAM it can play MODs via Mod4Win, but the sound drivers and Windows 3.1x itself maybe want a DMA controller.
Otherwise, with sample ROM, it would still be a fine MIDI synth..
Speaking of OPL chip, the ESFM core on some ESS soundcards has a native mode that’s way beyond OPL3.
There’s a demo, koolnESS, that’s impressive.
I’ve long been a fan of Future Crew’s earlier Unreal demo – Second Reality is amazing, but somehow, Unreal tops it for me.
It was perhaps more amazing given the constraints they had to work with.
A motherboard based around an FPGA, it made me think of the C-one
https://en.wikipedia.org/wiki/C-One
Peer review should be mandatory before an article goes public.
Not to be offensive but I feel like I was either experiencing dyslexia or a stroke trying to read this article what gives? “Proas both cpu and biosducing”? The rest of the article was half baked and fails even the least rigorous scrutiny
The article quality aside, I really encourage you to read the project writeup. It’s decently written and it’s awesome to learn from someone else’s mistakes. I got the answers to all the questions I had after looking at this project. And I learned about author’s previous homebrew computer projects which, while not as complex as this one, are also awesome.
ps: lcamtuf i rasz_pl, moi dwaj ulubieni polscy hackerzy w jednym wątku? [tu wstaw mema “what is this, a crossover episode?”]
Yep. Had blog entry doesnt do justice to this AMAZING project. Author implemented:
Intel 386/486 CPU bus handling
ISA bus handling
reused vintage 486 CPU
reused vintage 8259 PIT (timer)
reused vintage 8254 PIC (interrupts)
maniek86 build a legit vintage PC motherboard the way companies did back in mid eighties designing own Chipsets, all on his own in a span of few months. The only missing component is old school DRAM memory controller, skipping it is no brainer as driving DRAMs is almost an art form (as much digital as analog) and learning how to create one could take another year with most time spend chasing quirks and compatibility woes.
Want to hear something wild – this was maniek86s first 4 layer board ever :o Talk about jumping into deep water.
From reading maniek86 blog it all started when he got scammed buying Chinese no name ISA/PCI Post Code analyzer card that didnt really support ISA side https://maniek86.xyz/pl/blog.php?p=31 :
And so he did, just like Bender with blackjack and all! End result is https://maniek86.xyz/projects.php?p=41 https://github.com/maniekx86/isa_debug_post_card https://github.com/maniekx86/isa_debug_post_card_cpld_source deserving its own HaD entry. To make Post Code card maniek86 had to:
learn how ISA bus works
learn VHDL
do digital archeology to dig up 17 year old Xilinx ISE that could support obsolete XC95144XL 5Volt CPLD
learn about output buffers the hard way by frying first XC95144XL driving LEDd directly, didnt we all? :)
This Post Code analyzer card led directly to creation of M8SBC. What a hacking tour the force. I absolutely love it.
ps: Ten podpis lcamtufa to niestety stety fejk.