Some of the most interesting
projects in computing are the “Just for fun,” builds that individuals
dream up. A year and a half ago, we met
a room-scale CPU implementation with each and every component visible,
clocked at a blistering 20KHz. Now we’ve got another from-scratch CPU
implementation on a smaller scale, and its own unique window into the
history of CPU design.Paulo Constantino has built himself an
8-bit CPU implemented on breadboard, with a veritable explosion of wires
running across the hardware to connect everything together. All
programming is done via DIP switches, and the CPU can perform tasks
like counting from 0-255, or playing an off-key-but-recognizable-variant
of the Mario theme. No shade for the wrong notes; I can’t even play the
Mario theme on a piano, much less program something else to play it for
me. Part of what’s interesting about projects like this, and the earlier Megaprocessor, is the way they demonstrate previous
state of the art technology. Breadboards have all but replaced earlier
methods of prototyping hardware, like wire-wrapping, but there was a
time when this kind of CPU design process represented a cutting-edge
hardware implementation. We take modern-day PCB manufacturing and
printed circuit boards for granted, but these technologies had to be
invented.
The
image above shows the wire-wrapped backplane of a Zilog Z80 system,
circa 1977. The Z80 was an 8-bit CPU developed by Federico Faggin, who
also led the development of the first single-chip microprocessor (the
Intel 4004), as well as several later Intel CPUs, the 8008, 4040, and
8080. The Z80 was a major improvement over the 8080, retained software
compatibility with it, and is still in production today. You can see a
distinct similarity between the wire-wrapping technology we were using
in the late 1970s and the modern solderless breadboard approach used
today. In this case, looking at the tangle of wires required for a
simple 8-bit CPU illustrates how more complex chips, with wider buses
and more functions, required the creation of new mounting technologies.
It eventually became impractical to wire-wrap a prototype. Increasing
clock speeds and larger buses meant trace lengths needed to be
controlled more rigorously. The Megaprocessor similarly showcases a time
when reducing the distance between function units and increasing
component integration cut costs, reduced power consumption, and led to
long-term performance gains. Sometimes it’s as interesting to see where
computing used to be as where it’s headed today. As for Constantino,
Motherboard that his next goal is to integrate a keyboard, making his homemade CPU a bit easier to program.