The Smallest Homebrewed TTL CPU In The World

This may very well be the smallest homemade TTL CPU we’ve ever seen. Measuring at one square inch, this tiny chip boasts 40 connections, an 8-bit databus, a 16-bit address bus, a 64 kB memory space, reset and clock inputs, and 5 V power lines.

TTL (transistor transistor logic) logic chips are pretty outdated today, but they do have all of the basics necessary for building a computer – logic gates, counters, buffers, and registers. The transistors perform both the logic and amplifying, as compared to resistor-transistor logic (RTL) and diode-transistor logic (DTL). In the 60s, when the technology was still fairly new, TTL ICs were commonly used in computers and industrial controls. Even after the advent of VLSI, TTL ICs were still being used for interfacing more densely integrated chips. Even so, most TTL chips tend to be on the bulkier side, which is what makes [roelh]’s project so unique. The entire PCB is hardly any larger than a coin.

On top of the hardware specs, [roelh] also implemented several useful software features: zero page addressing, load/store/compare instructions, stacks, conditioning branching, subroutine calls, and memory-mapped I/O. The registers are also in RAM, which has been implemented in microprocessors in the past (see TMS9900) for speed considerations, but in this case was implemented for size constraints.

An ALU was also left out of the design in order to constrain its size, leaving only 8 ICs on either side of the 2-layer PCB.

Microprograms are stored in Flash memory and can be programmed with a Raspberry Pi. by saving the Assembly code to a memory card and downloading the assembled binary code. Once the Raspberry Pi is connected to the development board, you can burn the binary code onto the Flash memory of the board using a Python script. An online Javascript editor also exists for assembling the Assembly code for the chip and simulating the CPU.

There is currently a development board made for the CPU, which includes six seven-segment displays and an I/O connector for running a digital clock and other applications. [roelh] has since built a retro TTL computer around the chip, which reintroduces the ALU and includes address registers, 256 KB of RAM, VGA video, PS/2 keyboard port, a sound system, and I/O pins. It’s a really exciting project that’s seriously pushing the constraints of retro computing.

16 thoughts on “The Smallest Homebrewed TTL CPU In The World

          1. Back in November 1972, “73” magazine ran an article about making your own computer . It wasn’t a construction article, but mapped out what was needed. Of course, this was before microprocessors, so the expectation was TTL.

            I can’t help but think that that was the foundation of Wayne Green’s interest in small computers, launching Byte in the fall of 1975, and running comouter articles in “73” .

            Michael

          2. You probably not heard of the Intel 4004 CPU introduced by Intel in March 1971 — a true microprocessor. I believe November 1972 is 1 yr and 8 months afterwards so Intel beat “73” to it, and yes, there were already microprocessors then. Most likely Wayne Green’s interest in small computers was started by Intel’s introduction of the 4004 CPU. Just want to set the record straight.

      1. I sincerely admire the achievement, it is very close to the smallest ALU described in Raul Rojas 2010 paper:
        https://pdfs.semanticscholar.org/811e/3c97e098ed5bb7075c52d8077c79356e89f2.pdf

        However, as you realized it while programming this Kobold CPU, having the smallest hardware is not necessarily the best compromise, as it moves all the complexity to software.

        Having arithmetic and bitwise logic done in hardware rather than as using software lookup tables is IMHO a required compromise for getting a minimum efficiency.

        Next important improvement is the ability to execute non-sequential code: it can be done by self-modifying the program (forging instructions on the fly), adding a jump instruction (and only forging the target on the fly), indirect addressing (the forged target is no longer in the code but in a data location) or conditional branching (the target depends on previous computation).

        OTOH, moving to a full ‘283 ALU-based design for the Kobold K2 is a little bit far from a minimal CPU to my taste.

        I don’t pretend to be even close to a working design, but I suggest you to read my #ALUMinimum project on Hackaday.io, I wrote some logs on this subject starting from a historical perspective, and present (without much explanation yet) a 4-bit ALU with 3-bit carry look-ahead able to perform all 16 logic functions, add/sub and right shift using only 9 small 14/16-pin DIL TTL chips, mostly MUXes, thus featuring minimum delays. It is an extension of the the work done by Dieter Mueller on 6502.org.

  1. Note that old dutch coins like the Gulden and Rijksdaalder were absolutely massive. In fact, the the later the size of the head of Queen Wilhelmina was life-sided. That’s what you get! Giant people, giant monetary units.

  2. I am sure if you were to take off the plastic off of the 4 TTL ICs, you will find even smaller components. In fact, most of the 1″ by 1″ area taken are the printed circuit board traces and package pin components. Even over 30yrs ago, in the late 1980’s, one could obtain micro-computers around 1/2″ by 1/2″ and companies such as National Semi., now part of TI used to make and sell them by the millions.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.