Skip to content

Documenting my attempt to make a modern computer out of Nand logic gates

Notifications You must be signed in to change notification settings

ishwar00/NandToTetris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 

Repository files navigation

justforfunnoreally.dev badge

NandToTetris

What I cannot create, I do not understand — Richard Feynman.

Table of contents

General info

What is it?

This repository is me documenting, things i will be learning and building while reading The elements computing systems.This is an attempt to make a modern comptuter out of nand gates.

quoting from book:

Nand to Tetris: a hands-on journey that starts with the most elementary logic gate, called Nand, and ends up, twelve projects later, with a general purpose computer system capable of running Tetris, as well as any other program that comes to your mind. know more.

How i am doing it?

They are two ways to go about,

  1. Take online courses: NandToTetris Part1, and NandToTetris Part2
  2. Reading the book The elements of computing systems: Building a Modern Computer from First Principles

I prefer reading, so i went with the book :), and sometimes Computer Systems Design - Kamakoti | IIT Madras

back to table of contents?

Technologies

Project structure

Namespace Tree of the project at depth level 3.

+---nand2tetris
|   +---projects
|   |   +---01 Boolean Logic
|   |   +---02 Boolean Arithmetic
|   |   +---03 Memory
|   |   +---04 Machine Language
|   |   +---05 Computer Architecture
|   |   +---06 Assembler
|   |   +---07 Virtual Machine 1 (processing)
|   |   +---08 Virtual Machine 2 (control)
|   |   +---09 High-Level Language
|   |   +---10 Compiler I: Syntax Analysis
|   |   +---11
|   |   +---12
|   |   +---13
|   |   +---demo
|   +---tools
|   |   +---bin
|   |   +---builtInChips
|   |   +---builtInVMCode
|   |   +---OS
+---utils

directory nand2tetris/projects has 12 projects(directories), each project is part of a chapter in the book.
directory nand2tetris/tools has The Nand to Tetris Software Suite which will be used to simulate the computer.

back to table of contents?

Status

HARDWARE PART

✔️ Boolean Logic
✔️ Boolean Arithmetic
✔️ Memory
✔️ Machine Language
✔️ Computer Architecture
✔️ Assembler

Completed projects 1–6, and built a general-purpose computer system from first principles 🙌, the computer is capable of executing only programs written in machine language

SOFTWARE PART

✔️ Virtual Machine I: Processing
✔️ Virtual Machine II: Control
✔️ High-Level Language
✔️ Compiler I: Syntax Analysis(did not clear all tests )
❌ Compiler II: Code generation
❌ Operating System
❌ More Fun to Go

back to table of contents?