Building a CPU from scratch


A central processing unit is the prime component of any computer. Its role is to carry out any instructions of a computer program. In this project, students are asked to design a CPU from scratch. The outcome of this project will enable one to build a computer with a CPU that can do simple instructions such as moving data from one register to another and performing simple arithmetics.

With that in mind, this project will help one understand the importance of the CPU in a modern computer. Also, this project helps improve skills with breadboards & wiring. Let's jump into more details.


There are six essential parts to building a CPU, let's go through them briefly


Before all, one needs to be comfortable with lab material & binary logic. Specifically, we look at commonly used parts & logic functions.

Timing Signal Generator

The timing signal generator for the computer is a clock with a cycle that repeats. It allows the computer the amount of time needed to perform operations.

Arithmetic Unit & Program Counter

In order to efficiently spread data throughout the breadboard, the data can be spread in a bus. The program counter of a computer holds the location of an execution to be executed.

Data Registers & the MAR

Data registers' main purpose is to hold data in order to ease manipulation and flow of data. The MAR is a Memory Address Register which provides the address of the RAM for instructions.

Program Memory

Computer memory is a storage device conceived for the storing of multiple bits. For the experiments in this lab, Read Only Memory (ROM) is used.

The Control Signal Generator

The control signal generator is the portion of the project that allows the computer to execute functions.