Hi, I’m Thomas, and I recently got very interested in the internals of computers, which has led me down various rabbit holes, and eventually, designing my own CPU.

GitHub - ThomasDLi/SPU: Sigma Processing Unit: an 8-bit CPU inspired by the 6502 and Ben Eater.

The Beginning

It all started an year ago, with a YouTube recommendation to a video made by Ben Eater, of him building his breadboard 8-bit computer. I was instantly amazed and mystified at a single person being able to build something that I previously thought of as untouchable, and something that would take giant teams of people to pull off. This inspired me to take a look into the world of processor design.

Bridging The Gap

As I previously only had experience in software development and the Arduino ecosystem, I decided that it was best for me to wait a bit and learn some other skills before diving headfirst into new territory. I decided to take the Nand2Tetris course, which was a course created by Shimon Schocken and Noam Nisan. The course goes through creating logic gates from the NAND gate, then building various computer components before assembling them together. I finished course 1 which deals with the hardware, however they also have a second course where they build a working OS from the computer designed in course 1. I highly recommend this course.

Learning The 6502

Next, I decided to learn all about and how to use the famous 6502 processor, which was found in the Atari 2600, Apple II, Commodore 64, and powered much of the home computing revolution. I decided to learn it because of the relatively simple assembly dialect that it has, as well as to see how other components interact with it, as well as how it deals with I/O. I decided to go with Ben Eater’s 6502 breadboard computer kit, as there is a lot of positive reviews on it, and I can see why, with extremely in-depth building videos and debugging instructions.

Designing the CPU

Finally, with many tools under my belt, I decided to tackle the challenge. Originally, I was building Ben Eater’s 8-bit computer that I was recommended to me before, however I gave up as I don’t have time to piece together all the components. This is when I decided to design my own CPU with the knowledge that I gained. So, I learned Autodesk EAGLE and pieced together a schematic then PCB.

spuimg1.png

spuimg2.png

spuimg3.png

Conclusion

This was an extremely fun adventure, and I got to learn a lot more skills from this. This has single-handedly given me an interest in processor design/hardware design in general. I will definitely consider going down this career path in the future if given the opportunity.