A computer... from scratch?

Inspiration

Why do this in the first place? When I first looked at Ben Eaters plans to make a computer on a breadboard I was instantly hooked. I decided then and there, if it could be done, I would do it. In the tesla coil project, I learned the hard way that reading about the principles of electronics and building functional electronics require entirely different levels of understanding. For quite some time I have been enthralled by the idea of unvieling the mysteries of the mysterious and powerful electromagnetic forces that permeate our everyday lives. Additionally, I was hoping this might be that one project that put me over the top, the one project that transformed me to a definable electrical wizard. Turns out, I was right, after you build a computer from scratch you move to the next level and then you jump 8 more. The rules of physics are the only bounds that exist.

What is a computer, really?

A digital computer is an information processing device. On a basic level, a digital computer uses many arrays of transistors set into specific configurations (gates) to control and store voltage differences. It is these voltage differences (highs and lows, 1’s and 0’s …) that when properly processed and interpreted provide all the magic of a modern computing experience.

Logic Gates and Universal Gates

If the most basic unit of a digital computer is a semiconductor transistor, then the next level up is a logic gate.

Logic gates allow the processing of information in the form of voltage differences using boolean logic. For each gate the voltage potential at the input(s) dictate the output voltage as according to the truth table for that gate. My favorite gates are the Universal NOR and NAND gates.

They are universal because these gates can be chained together in various ways to build any other gate. These two logic gates are thus completely self sufficient in their ability execute any mathematical logic that exists.

Storage of Information

One of the most natural extensions of logic gates is the ability to store information as the presence or absence of a voltage potential. In this case a 0 volt potential represents a boolean 0 and a high voltage potential (i.e. > 4.5 volts) represents a boolean 1. A single digital output is called a bit. One of the simplest forms of storing a bit is in the flipflop circuit.

An 8 Bit Breadboard Computer

Building in stages

When attacking a big problem I always appreciate following the reductionist mindset. Generally, the simple thought of building a computer from just wires and IC’s seems completely mental. However, if we break the problem of assembling a working computer into parts, i.e. sets of simpler problems. Then all we have to do is solve all those, and bring them together. From that perspective building a computer is no harder than building anything else. It simply requires resources, experience and a lot of patience.

The Long Term Memory of an 8 bit computer

The Short Term Memory of an 8 bit computer

The Heart of an 8 bit computer

The Brain of an 8 bit computer

Doing Math with 0's and 1's

Bringing it all together

From humble beginnings

Programming flash memory

Microcode programming

Runtime

Simple Operations