This project is the fruitful result of completing the 6 week long Nand2tetris course offered by Nand2tetris.org along with the book "The Elements of Computing System".
Using HDL and Hardware Simulater provide by Nand2tertris.org to build elementary
logic gates like And, Or, Not, Multiplexor,etc. starting
from Nand gate only.
Using the previously built logic chips to create new chips that can perform mathematical
operations like, adding two 16-bit integers. Fusing the new and previously built
chips to build the ALU for our HACK computer.
Using D Flip Flop (DFF) and previously built chips to create a Register that can store 1-bit data.
Combining these Registers in an ordered way to create bigger memory chips and finally combining these
memory chips to build Random Access Memory (RAM) of our HACK computer.
Using previously built increment chip and the register to create a Program Counter (PC)
that will help us to get the address of the next instruction to be processed
Using Hack assembly language and CPU emulator to build low-level programs to multiply two integers
and to handel the input output devices namely, screen and keyboard
Using the previously built chips to build the Central Processing Unit (CPU) (hardest part of the project)
and finally fusing the ROM, RAM and the CPU to get our working HACK computer.
Using a High-level language (C++ in my case), to build a program that translates the code
wriiten in Hack assembly language to Hack machine language.