Warren’s Crazy Small CPU
(c) 2017 Warren Toomey, GPL3
This is the website for version 2 of my “crazy small CPU”, one that has the fewest 7400-style chips. The design has only eleven chips:
three 74LS161 4-bit registers for the A & B registers and to store the flags output from the ALU
one 74LS157 4-bit multiplexer, to choose from where to load the A & B registers
two 74LS161 4-bit register/counters which are the Program Counter (PC)
one NE556 timer which acts as either a one-shot clock or a periodic clock
one RAM chip for memory: only 256 4-bit words are used
one ROM chip that acts as an ALU with two 4-bit inputs, sixteen operations, a 4-bit output and also four result flags: negative, zero, overflow and carry (NZVC)
two ROM chips that provide the control logic: one holds literal values and the other enables the control lines for the other chips
The CPU is small enough that you can build it on two breadboards, but it is powerful enough to calculate the Fibonacci sequence up to 27 decimal digits, and to draw a sine wave using Minsky’s circle drawing algorithm.
A description of the CPU’s architecture (version 2)
My Github repository (version 2) with the software for the CPU plus the breadboard schematic
The Youtube video playlist on the CPU, including coverage of the architecture and all the stages of building it
A bill of materials for the project
Some design tips that you might find useful
If you want to leave comments about the CPU, feel free to use the GitHub issues page for this purpose.
Here is a video of version 1 of the CPU running the Fibonacci + Minsky sine wave programs in Logisim.