Skip to content

Latest commit

 

History

History
20 lines (13 loc) · 1.24 KB

File metadata and controls

20 lines (13 loc) · 1.24 KB

Computer Design

Building a computer from the CPU gate level to the OS. In this project, I designed a modern computer starting from the NAND gate level to the CPU to the compiler and all the way to the Operating System.

The projects in this course are based on the book The Elements of Computing Systems (MIT Press) by Noam Nisan and Shimon Shocken.

Project 1: Logic Gate Design

Using only a NAND gate, 16 bit AND, OR, NOT, Mux and DMux gates are designed.

Project 2: Arithmetic Logic Unit (ALU)

Using the chips designed in the previous section, a 16 bit Adder is first built to add two inputs of 16 bits. Following this, an entire 16-bit ALU is designed to perform 18 operations, +/-, AND/OR, incrememnt, and decerement on two 16 bit inputs.

Project 3: Random Access Memory (RAM)

Using a Data Flip Flop (DFF) as a primtive chip, a 16 bit register is built, multiple of which are then stacked to design a 32MB RAM.

Project 4: Machine Language

Multiplication and screen colouring are programmed using Assembly Language.

Project 5: Computer Architecture (CPU and Memory)

Starting with the ALU, a full 16 bit CPU is designed along with a ROM as instruction memory and a data memory comprising a 16K RAM, 256 x 512 px screen and a keyboard input.