Turning a Bag of Transistors Into a Computer
This computer was designed around a full-fledged CPU that was built from over 2,000 discrete transistors — and you can build one too.
For electronics enthusiasts, building a computer is something of a rite of passage. Many have taken on this challenge for the fun of it, and also to gain a deeper understanding of the computers we use every day. But modern computers are incredibly complex. They are composed of hundreds of billions of transistors and were engineered with optimization techniques that have been refined over periods of decades. Fully understanding even one small corner of these technologies could take a person years of study and experimentation.
This leads most hobbyists to look to a simpler time in computing, when CPU transistor counts were in the low thousands and traces on circuit boards were wide enough to drive a bus through. Computing technologies of the 1970s and 1980s provide a perfect platform for the engineer that wants to understand every aspect of a computer’s operation.
But if you think about it, that is not quite true as most projects leverage a handful of integrated circuits in the course of the build. And while we may fully understand the signals going into, and coming out of, these chips, like the 6502 or Z80 CPUs, for example, the inner workings of the chips themselves still remain a mystery.
A Reddit user going by the handle Weekly_Salamander_78 was not content to leave that mystery unexplored, so decided to go all the way and build a full-fledged CPU out of more than 2,000 discrete transistors. It is a little bit of an oddball with an 11-bit architecture, and it also has its own instruction set, rather than adopting an established standard. Interfacing with the machine looks to be pretty simple, as it supports a character LCD display for output and a keyboard for input. The point of the project is to build a CPU from scratch, so we will not fault it for sneaking in an Arduino to serve as the main memory.
A blog detailing the build is under development, and promises to provide all the information needed to recreate the project. It also gives some critical background knowledge, like on the design of logic gates, that one must understand to complete the computer. As of the time of this writing, the blog was not yet complete, but there are plans to detail each major component, walk through assembly of the hardware, and the loading of some example programs.
So far, Weekly_Salamander_78 has written a simple “Hello, World!” program, and also a dinosaur game. You will have to hang tight for a bit to get all the details before you can build your own, but in the meantime, a simulator has been released that will help you to acquaint yourself with the computer’s operation.
As someone who has built a number of computers myself, I will offer one piece of advice to those that take on this project: be persistent. You will undoubtedly make mistakes that will be challenging and frustrating to track down, but the knowledge you pick up while troubleshooting them will be invaluable to you in the future.