Every few years, someone on the Internet builds a truly homebrew CPU. Not one built with a 6502, Z80, or a CPU from the 80s, either: one built completely out of 74-series logic chips or discrete transistor. We’re lucky enough to have [Alexander] document his build on Hackaday.io, and even luckier to have him enter it into this year’s Hackaday Prize. It’s an 8-bit computer built completely out of NAND gates.
Computers are just logic, and with enough NAND gates, you can do anything. That’s exactly what [Alex] is doing with this computer. It’s built entirely out of 74F00 chips – a ‘fast’ version of the ubiquitous quad 2-input NAND chip. The architecture of this computer borrows from the best CPUs of the 70s and 80s. The ALU is only four bits, like the Z80, but also uses the 6502 technique where the borrow is an inverted carry. It’s a small instruction set, a 2-stage pipeline, and should be able to compute one million instructions per second.
Designing a CPU is one thing, and thanks to Logisim, this is already done. Constructing a CPU is another matter entirely. For this, [Alex] is going for a module and backplane approach, where the ALU is constructed of a few identical modules tied together into a gigantic motherboard. [Alex] isn’t stopping at a CPU, either: he has a 16-byte ROM that’s programmed by plugging diodes into holes.
It’s an amazingly ambitious project, and for entering this project into the 2016 Hackaday Prize, [Alex] already netted himself $1000 and a trip to the final round of competition.
We had an article about this same project before, in February. Just saying. http://hackaday.com/2016/02/24/8-bit-computer-made-solely-from-nand-gates/
Anyways, this did open my eyes to the fact that the Z80 (favourite CPU of all time) has a 4-bit ALU. Didn’t believe it, but http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html
YYes . In the 70s I worked for a French company and one of its computers called GE58 is done almost exclusively by nand gates.Aquela was the era of SMALL and MEDIUM SCALE OF INTEGRATION
I have got to stop coming to this site.
You are normalizing insane behaviors.
And this is a great project +100
And I didn’t say that!
If it’s to used in an educational environment then I think the ROM board should have DIP switches. Sure it means soldering an extra 512 connections but what be half insane?
This reminds me of the people who make relay computers for FUN. Crazy awesome.
Alexander’s gallery is so clean and clear!
Very nice project; I wish I could program at one-diode-at-a-time precision, but ‘hello world’ is a start for me.
This is great. Maybe I missed something, but what is the first program?
And I agree, DIP’s. But it looks like 70’s tech on 2015’s PCB’s, which is awesome.
Really challenging to squeeze a useful instruction set into a strictly 8 bit instruction. For instance I don’t see a way to abuse an instruction to read/write memory. As far as IO – I suppose you could just hard wire and thus designate any particular register as an input or output register. Fixed length 8 bit instructions do make the hardware design a LOT easier, though!