This repository contains the files I created during a computer architecture course Nand2Tetris. Skills learned: Digital Logic | Computer Architecture | Assembly Language | Hardware Description Language (HDL) | CPU Operation | ALU Operation | Types of Instructions | Random Access Memory.
- Various Chips used to implement a von Neumann Architecture: AND gate, OR Gate, NOT Gate, XOR Gate, Multiplexer, Demultiplexer.
- Combine Chips to create an Arithmetic Logic Unit (ALU): Combine previous chips to create a Halfadder, Fulladder and an ALU.
- Combine Chips to crete a Register and expand to RAM: Combine previous chips to create a Register and Program Counter(PC) unit and use it to create a RAM.
- Use assembly language to implement a multiplication operation
- Use previous implementations to create a computer: ROM + CPU + MEMORY.
- Stack Arithmetic with assembly language: Use assembly to implement a stack with PUSH and POP operations on RAM.
- For Loop and Fibonacci sequence in assembly
- Implement an assembler using Python: Simple code in Python that reads a file with programming instructions and converts it to assembly.
- Build a Modern Computer from First Principles: Nand to Tetris Part. Hebrew University of Jerusalem. Shimon Schocken & Noam Nisan. https://www.coursera.org/learn/build-a-computer