nand2tetris/README.md

51 lines
1.6 KiB
Markdown
Raw Normal View History

2020-05-19 12:02:15 +00:00
# nand2tetris
2020-05-19 14:06:41 +00:00
Working my way through the [Nand to Tetris Course](https://www.nand2tetris.org/)
2020-05-19 12:42:52 +00:00
- Download the latest `nand2tetris.zip` from the book website, and overwrite everything in the `projects` and `tools` directory.
- Remember to run `chmod +X tools/*.sh` if you're on \*nix.
2020-05-19 14:03:19 +00:00
## [Project 1: Boolean Logic](https://www.nand2tetris.org/project01)
Build order as per the website. Cost for each gate in NAND in brackets.
- [x] `Nand` (primitive)
- [x] `Not` (1)
- [x] `Or` (3)
2020-05-19 16:52:53 +00:00
- [x] `Xor` (6, Can be improved)
2020-05-19 14:03:19 +00:00
- [x] `And` (2)
2020-05-19 16:52:53 +00:00
- [x] `Mux` (8, Took me ages. Can be improved)
2020-05-19 14:03:19 +00:00
- [x] `DMux` (5, Super Fun)
- [x] `Not16` (16)
- [x] `And16` (32)
- [x] `Or16` (48)
2020-05-19 16:52:53 +00:00
- [x] `Mux16` (113)
2020-05-19 17:22:09 +00:00
- [x] `Or8Way` (21)
2020-05-19 20:32:46 +00:00
- [x] `Mux4Way16` (339)
- [x] `Mux8Way16` (791)
- [x] `DMux4Way` (37, Fun)
2020-05-20 09:16:51 +00:00
- [x] `DMux8Way` (101)
2020-05-20 11:18:14 +00:00
## [Project 2: Boolean Arithmetic](https://www.nand2tetris.org/project02)
- [x] HalfAdder (Xor+And)
- [x] FullAdder (2 x HalfAdder, 1 Or)
2020-05-20 11:23:18 +00:00
- [x] Add16 (1 x HalfAdder, 15 x FullAdder)
2020-05-20 11:27:20 +00:00
- [x] Inc16 (1 x Add16)
2020-05-20 11:49:04 +00:00
- [x] ALU (nostat)
2020-05-20 12:09:50 +00:00
- [x] ALU (complete)
2020-05-20 13:19:00 +00:00
## [Project 3: Memory](https://www.nand2tetris.org/project03)
Make sure you read through the [Hardware Simulator Tutorial](https://b1391bd6-da3d-477d-8c01-38cdf774495a.filesusr.com/ugd/44046b_bfd91435260748439493a60a8044ade6.pdf) to understand the clock in the simulator.
- [x] DFF (primitive)
2020-05-20 13:25:32 +00:00
- [x] Bit (1 Mux, 1DFF)
2020-05-20 13:29:08 +00:00
- [x] Register (16 Bits)
2020-05-20 13:43:01 +00:00
- [x] RAM8 (8 Registers, 1 DMux8Way, 1 Mux8Way16)
2020-05-20 14:01:35 +00:00
- [x] RAM64 (8 RAM8, 1 DMux8Way, 1 Mux8Way16)
- [x] RAM512 (8 RAM64, 1 DMux8Way, 1 Mux8Way16)
2020-05-20 14:05:39 +00:00
- [x] RAM4K (8 RAM512, 1 DMux8Way, 1 Mux8Way16)
- [x] RAM16K (8 RAM4K, 1 DMux8Way, 1 Mux8Way16)
2020-05-20 13:19:00 +00:00
- [ ] PC