← Projects

8-bit Computer from TTL Logic

A breadboard computer built from more than 200 TTL chips with a custom instruction set, a modular architecture, and lab materials used to teach 30 students.

hardware
Problem
Textbooks explain how a CPU fetches and executes an instruction, but the explanation stays abstract until you can watch the bits move. There was no hands-on computer architecture lab for students to do that.
Solution
Built an 8-bit computer on breadboards from more than 200 TTL logic chips, with a custom instruction set and a modular design where the clock, registers, ALU, RAM, program counter, and output display can each be swapped independently. Wrote documentation and lab materials and used the machine to teach 30 students in hands-on workshops.

Overview

What it is: An 8-bit computer built from more than 200 TTL logic chips on breadboards, with a custom instruction set and a 7-segment output display. The clock, registers, ALU, RAM, program counter, and output display are separate modules, so any one of them can be swapped without rebuilding the rest.

Why it matters: Most students meet computer architecture as a diagram. This machine makes the fetch and execute cycle physical: the program counter, the instruction register, the ALU, and the bus between them are all on the bench where you can probe them.

Who it’s for: Students learning digital logic and computer architecture, and anyone teaching those subjects without a lab. The documentation and lab materials were written so a workshop group can follow along at the breadboard.

Impact: The machine and its lab materials were used to teach 30 students in hands-on workshops. Built between May and December 2024 in Zimbabwe.

The Problem

The Challenge

The gap between a block diagram of a CPU and a working CPU is where most students lose the thread. Register transfers, control signals, and timing are hard to reason about when the only feedback is a textbook figure.

Specific issues:

Who was affected:

Constraints & Requirements

Technical constraints:

Resource constraints:

The Solution

Approach & Methodology

The computer is split into independent modules that share a bus. Each module was built and tested on its own before being connected, which kept debugging local to one breadboard at a time.

Modules:

  1. Clock
  2. Registers
  3. ALU
  4. RAM
  5. Program counter
  6. Output display (7-segment)

Technology Stack

Hardware:

Design:

Why this stack:

Key Features

  1. Modular design: the clock, registers, ALU, RAM, program counter, and output display are separate modules that can be swapped
  2. Custom instruction set: instructions decoded by the control logic into per-module control signals
  3. 7-segment output: results are shown on a display driven from the output module
  4. Documentation and lab materials: written to run hands-on workshops

Technical Highlights

Architecture and the fetch/execute cycle

The modules share one bus. On each clock pulse the control logic chooses which module drives the bus and which module latches from it, so an instruction runs as a short sequence of bus transfers.

The fetch phase is the same for every instruction: the program counter supplies the address, RAM supplies the instruction byte at that address, the instruction register latches it, and the program counter advances. The execute phase depends on the opcode now sitting in the instruction register, which the control logic decodes into the control signals for the remaining steps, for example moving a value from RAM into a register or putting an ALU result on the bus.

The table below is illustrative only. It shows the shape of a microcode-style control sequence for a “load register from memory” instruction on a machine of this kind, not the exact signals of the finished build.

StepPhaseBus sourceBus destinationOther
0FetchProgram counterMemory address
1FetchRAMInstruction registerAdvance program counter
2ExecuteInstruction register (operand)Memory address
3ExecuteRAMRegister

Illustrative microcode-style sequence. The real control logic differs in its step count and signal names.

First breadboard First breadboard, May 2024.

Clock and register LEDs Clock and register LEDs, June 2024.

Bus and registers Bus and registers, September 2024.

ALU wiring ALU wiring, September 2024.

Full board overhead Full board from above, September 2024.

Full board side view Full board from the side, September 2024.

Seven-segment output Seven-segment output display, September 2024.

Process & Timeline

The build ran from May to December 2024. The photo dates give the rough order:

Challenges & Solutions

Challenge 1: Debugging across 200+ chips

The Problem: With this many chips and wires on breadboards, a single loose connection can corrupt a bus transfer and the symptom shows up far from the cause.

The Solution: Keep modules independent. Each module was built and tested on its own breadboard before it joined the bus, so a fault could be isolated to one board.

What I learned: Modularity is a debugging tool, not just a design nicety.

Challenge 2: Teaching with it

The Problem: A machine that only its builder can operate does not teach anyone.

The Solution: Wrote documentation and lab materials that walk a group through the modules and the fetch/execute cycle, and ran hands-on workshops with the machine on the bench.

What I learned: Writing the lab materials forced a clearer description of the control sequence than the wiring alone gave me.

Results & Metrics

Learnings


Completed: December 15, 2024