Skip to content

ronakv/Computer-Design

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Building a computer from logic gates to the CPU to the OS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published