Satori-Komeiji / nand2tetris

My solutions for the nand2tetris course projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nand2Tetris Solutions

This repository contains my own solutions for the nand2tetris projects. Feel free to use for any purpose.

Nand2Tetris is a project-centered course where you build a modern computer system, from the ground up. You go all the way through, from constructing elementary logic gates to creating a fully functioning general purpose computer called HACK.

What I have done so far

Week 1

Implemented all elementary logic gates in HDL, along with more complex chips such as Multiplexers and Demultiplexers.

Week 2

Implemented a HalfAdder, a FullAdder and the ALU.

Week 3

Implemented sequential logic circuitry using D Flip-Flops. Built Registers, a Counter and RAM chips.

Week 4

Developed a few programs in the HACK assembly language.

Week 5

Implemented the CPU and the complete Memory chip with support for Screen and Keyboard memory mapping. Assembled the complete HACK computer architecture together. The HACK computer is now able to execute instructions written in the HACK assembly language.

Week 6

Developed a 2-pass symbolic assembler for the HACK assembly language in C.

Week 7

Implemented first part of a VM translator in C. This VM translates vm code produced by a Jack compiler into HACK assembly instructions. It implements a Stack Machine and supports stack arithmetic operations such as ADD, SUB, NEG, EQ, etc. It also offers support for using different memory segments.

Week 8

Completed the VM implementation. The VM now supports branching and implements specific calling and returning conventions for functions.

To be continued..

About

My solutions for the nand2tetris course projects


Languages

Language:Assembly 62.4%Language:Scilab 22.4%Language:C 8.7%Language:HTML 6.4%Language:Makefile 0.2%Language:Objective-C 0.0%