How quickly could you make an entire computer from 74 series logic, from scratch? [Richard Grafton had only 30 days until the UK’s Retro Computer Festival and set out to design and build his Cambridge-1 computer in that time. The result is a machine spread across several breadboards, with neatly placed wiring and unexpectedly an Arduino Micro sitting in the corner. Isn’t the little Italian board a cheat? Not so, he says, because instead of being part of the computer itself it serves as a program loader to make putting software onto the machine from a PC as easy as possible.
The machine itself is simple enough, a 4-bit design with 8-bit data and address busses. There are only 16 instructions, and the clock speed is a relatively pedestrian 40Hz. This does, however, allow the many blinkenlights to show the machine’s state in a more visible manner. There’s a video which we’ve placed below the break, and if you have further questions you might like to look at the GitHub repository.
We like the Cambridge-1, and we see no problem with the Arduino being part of it. It doesn’t take away from the 74-driven nature of the machine. Instead, it enhances the usefulness of the device by facilitating coding on it. We’ve had huge quantities of TTL computers here over the years so it’s difficult to pick one to send you towards, however you may want to consider the 7400 as the original in the series.
Interesting – nice to see people getting involved with the electronics of computers. I tried building the Wireless World Computer – I am unsure but that must have been in 1967. That took a lot of my money , time and patience…
Nice build! That’s ok to use the Arduino to load/view memory but to use it as the microcode/fetch&control section is taking away from the best part of a CPU. However, it serves as a great way to test things out and given your tight schedule of 29 days (more like a couple of hours at night each day?) it’s understandable to take this short cut. Looks great, I really hope you take it to the next level and move the fetch&decode to TTL chips, then hide that Arduino to simply load/view memory. It would look great if you could watch memory in real time on your display.
One could say that the microcode/control section is what makes the CPU, and the other parts are just peripherals hanging off of the internal bus.
Luke,
I totally agree. I like to think of it as the engine, or the part that runs in circles searching for something to do and doing it (fetch and execute). I really hope they take it a step further, now that the time crunch is over.
Here’s the link to the github repo – https://github.com/arith-matic/cambridge-1
(the article link points to the video on youtube)
A slightly better link to the repo is: https://github.com/arith-matic/cambridge-1/wiki/Cambridge-1-CPU
Oh the memories:
I worked debugging a wirewrapped LSTTL supercomputer prototype. It had around 10,000 ICs.
We used an apple IIe to load the program memory! (That Arduino is probably a lot more powerful than the apple.)
Can it run cr… um… well… how about tic-tac-toe?
Would you like to play a game?
Designing with discrete logic seems to be a lost art. At work I was the only one old enough to know how to use them, the younger ones were totally confused (where is the code?). It was great fun, like puzzle pieces.