Inspired by Ben Eater, I built an 8-bit computer using breadboards and simple chips. It contained things like an ALU, a set of designed micro instructions, and 16 bytes of programmable RAM (via a DIP switch). You can clearly see the lane for each of the 8 bits by looking at the bus running down the center of the computer.
This project helped me understand computer architecture and how software abstracts hardware.
To illustrate this, note that this computer can only execute the following micro instructions.
This means our hardware cannot directly multiply two numbers together. However, we can combine these micro instructions to create a program that (barely) fits in our 16 bytes of programmable RAM to do this.
We can see a video of this program executing (for 13 x 17) here:
This shows the base case of how software can build upon hardware and opens the door for more and more powerful abstractions.