Having been a software engineer professionally for a good 16 years, you would expect me to have a good understanding of what actually goes on inside a CPU. Well, that definitely wasn't the case in the beginning of 2017!
Sure, I knew it works based on electronic signals representing zeroes and ones, but I didn't understand it in a way that I could draw it or explain to someone else.
That all changed when I stumbled across Ben Eater's amazing video series on YouTube.
I was instantly hooked to his videos and the way he thoroughly explained every detail of the "simple as possible" computer that he was building on a breadboard.
When I started realizing that I actually understood what he was teaching, I was on eBay ordering parts before I knew it.
Throughout his video series I kept track of a list of all the parts that are required to build this breadboard computer.
This opened a window for collaboration with other enthusiasts which helped me a lot during the project, especially when I got to the point where I got ahead of Ben's videos.
The result is a fully functional, although very simple, computer on a breadboard.
It is an 8-bit CPU with 16 bytes of RAM, 2 general purpose registers, 1 instruction register, a simple adder/substracter and an output display consisting of 3 7-segment displays.
It supports 7 instructions that are programmed directly into the RAM using DIP switches.
In my case it runs at a maximum speed of around 15 Hertz and it can easily be single stepped.
This limited instruction set is enough to run a very simple programming outputting a Fibonacci sequence:
I encourage everyone with an interest of electronics and computers to replicate this build!
It has truly been the most educational weeks of my life, even though 60% of the time is spent on cutting and stripping wires ;-)
Check out the Github repository for the complete parts list and some resources that will help you with the build (for example, details on programming the ROM chips for instruction decoding).