A simulation of Ben Eater's 8 bit computer running in the logic simulator called Digital.
The goal was to see if I could build a virtual version of Ben Eater's 8 bit computer he documents on his website.
- Fidelity to the original design - by closely following Ben's design it 1) made it easier for me to debug the circuits as I assembled them and 2) makes it easier for others to follow along with Ben's material.
- Keep the main circuit abstract - by pushing the detail into subcircuits the main circuit becomes an abstraction of the machine. That's help in understanding how it operates.
- Clock Circuit - Digital, the simulation software used in this project, is designed to simulate digital logic circuits and does not support the 555 time chip since it requires analog components to operate. The included circuit that replaces Ben's original circuit provides the same inputs (HLT) and the same outputs (CLK and ~CLK).
- Programming - While debugging the circuits I found the change/test cycle was slowed by having to re-enter the test program each iteration. The programming circuit I added speeds the process by replacing a long series of (virtual) button pushes with a single click.
- Hex Output - I augmented the LEDs used for binary output with seven segment hex displays. I find it easier to think in hex. Keeping with my "fidelity" guideline I kept the original binary LEDs.
My first suggestion is - buy the parts (better yet, buy a kit from Ben) and build the real thing. This is a non-trival circuit and the time you invest in building something physical you can hold and share with others will bring great satisfaction.
If you decide to build the virtual verion then I suggest you DO NOT download the files from this repository. Instead you should create the circuits yourself - placing the components and wiring them together. The leaning is in the doing. Use the files I provide here as reference if you get stuck or as inspiration for clean layouts.
- Digital - https://github.com/hneemann/Digital
- 8 Bit Computer - https://eater.net/8bit