CPU Made From 74HC Chips Is A Glorious Mess

Did you ever start a project that you felt gained a life of its own? This project by [Paulo Constantino] is an entire CPU named dreamcatcher on breadboards, and is a beautiful jungle of digital. On top of that, it works to connect to an analog VGA display. How cool is that!

Designing an ALU and then a CPU is a typical exercise for students of digital design and is done using VerilogHDL or VHDL. It involves creating an ALU that can add, subtract etc while a control unit manages data moves and the like. There is also a memory fetch and instruction decode made up of de-mulitiplexers and a bunch of flip-flops that make up registers and flags. They are as complex as they sound if not more.

[Paulo Constantino] went ahead and designed the whole thing in Eagle as a schematic using 74HC logic chips. To build it though instead of a PCB he used breadboards. Everything from bus decoders to controlling an external VGA display is done using jumper wires. We did cover a video on the project a while back, but this update adds a video card interface to the build.

The CPU updates the display buffer on the VGA card, and in the video below shows the slow and steady update. The fact that the jungle of wires can drive a display is awesome. He has since started working on a 16-bit version of the processor and we’d love to see someone take it up a notch.

For those more accustomed to the PCB, the Z80 membership card project is a great build for 8-bit computer fans.

Thanks to [analog engineer] for the tip.

27 thoughts on “CPU Made From 74HC Chips Is A Glorious Mess

  1. I appreciate a fine rats nest like this but maybe some ribbon cables or harness wrapping might help it look less like the intention is to make it a mess. Lots of open space on boards also. Not feeling it was ‘thought out’ at all. Functional so everything else griping and it is cool.

  2. That’s great idea for assembly standards of spy drones. You don’t have to worry if it falls into enemy hands. Driving foreign scientists into complete madness could be set as secondary objective.

  3. I couldn’t stand that– what if a single wire became unplugged (as easily as it can from a breadboard). Hours and years to debug. To make this work is madness.

    1. Plus, those jumper wires are probably ebay/Chinese specials, which ime means they’ll be shoddy quality and break internally (normally at the pin/wire interface) just for the hell of it at random.

      I’ve seen software that’s better structured than this! Not very often, granted :)

      1. PFY – Pimply Faced Youth, a.k.a. The Geek or The New Guy – the intern and understudy to the
        BOFH – Bastard Operator From Hell, a.k.a. The Sysadmin, The Bastard, That Mothf$%#er, or My Lord, as I like to be referred to.

  4. Eagle was the wrong tool.

    Hah, I know I’m going to get some nasty responses here but… considering that this ended up built on breadboards… Should have used Fritzing!

    Yah, Yah, I know, Fritzing. But hey, maybe there wouldn’t be quite as much of a wire mess that way. Components could be re-arranged on the virtual breadboard to minimize mess, connections could be checked and then it could be used as a guide to populate the real breadboard.

    I wish KiCAD would develop a feature like that. I wonder if they would accept code contributed toward that end. I am imagining two new tools added to KiCAD. One is a breadboard editor that allows one to create a model of their breadboard. The other consumes both that model and the netlist and allows one to layout the components, jumpers, etc and validates that all the connections are correct. I would use that AND create the PCB too at the end when breadboard-design phase is done with.

  5. Ah sweet memories of the late 60’s when a full semester of EE class was spent going over each line and chip in a Data General Nova Mini Computer to learn computer cpu design!!!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.