/nand2tetris

My attempt at building a modern computer from first principles: https://www.nand2tetris.org

Primary LanguageAssembly

Nand2Tetris

These are the projects I implement as my project solutions for the Nand2Tetris online course. In this course, the projects involved implementing a 16-bit computer (almost) from scratch -- first the hardware, followed by the hardware. Please read below for details of all the projects (computer hardware/software) implemented:

Hardware Projects

Week Hardware Chips Details
1 And, And16, Not, Not16, Or, Or8Way, Or16, DMux, DMux4Way, DMux8Way, Mux, Mux16, Mux4Way16, Mux8Way16, Xor Implemented 1-bit and 16-bit version of logic gates, multiplexer and demultiplexer
2 Inc16, Add16, HalfAdder, FullAdder, ALU Implemented 16-bit arithmetic chips, Half and Full Adder as well as Arithmetic Logic Unit (ALU)
3 Bit, Register, PC, RAM8, RAM8, RAM64 Implemented 1-bit and 16-bit register, Program Counter, different sizes of RAM (8, 64, 512, 4K, 16K each of 16-bit registers)
5 Memory, CPU, Computer Impletemented memory (RAM+Screen+Keyboard), CPU based on Harvard architecture with fetch-execute cycles based on 16-bit instruction, control and memory bus, Computer (using memory, CPU and built-in ROM)

Software Projects

Week Software Details
4 Fill, Mult Wrote assembly programs which (1) Fills screen based on keyboard input and (2) Multiplies two numbers and stores the results in RAM
6