From 7ae97dea41bc6a50d4e46f65d47825426e3a0180 Mon Sep 17 00:00:00 2001 From: Konarak Date: Sun, 5 Dec 2021 09:32:46 +0530 Subject: [PATCH] add stats --- README.md | 7 ++++ stats-01.md | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++ stats-02.md | 46 ++++++++++++++++++++++ stats-03.md | 69 ++++++++++++++++++++++++++++++++ 4 files changed, 232 insertions(+) create mode 100644 stats-01.md create mode 100644 stats-02.md create mode 100644 stats-03.md diff --git a/README.md b/README.md index 932e6a3..d8610fe 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ # nand2tetris Trying to build a modern computer from first principles. If you want to try it visit: [From Nand to Tetris](https://www.nand2tetris.org) (: + +## Nand Numbers: +Use [this script](https://gist.github.com/gaurishg/b788d4c13cbc02b324270e9b55f5d74d) to count how many gates you made. I modified it to print markdown tables so I can share them here: + +- [Project 01: Boolean Logic](stats-01.md) +- [Project 02: Boolean Arithmatic](stats-02.md) +- [Project 03: Memory](stats-03.md) diff --git a/stats-01.md b/stats-01.md new file mode 100644 index 0000000..9fa6980 --- /dev/null +++ b/stats-01.md @@ -0,0 +1,110 @@ +# Project 01: Boolean Logic + +## Not + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Nand | 1| 1| 1| +|**Total** ||| **1**| + +## And + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Nand | 2| 1| 2| +|**Total** ||| **2**| + +## Or + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Nand | 3| 1| 3| +|**Total** ||| **3**| + +## Xor + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Nand | 4| 1| 4| +|**Total** ||| **4**| + +## Mux + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Not | 1| 1| 1| +|And | 2| 2| 4| +|Or | 1| 3| 3| +|**Total** ||| **8**| + +## DMux + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Not | 1| 1| 1| +|And | 2| 2| 4| +|**Total** ||| **5**| + +## Not16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Not | 16| 1| 16| +|**Total** ||| **16**| + +## And16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|And | 16| 2| 32| +|**Total** ||| **32**| + +## Or16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Or | 16| 3| 48| +|**Total** ||| **48**| + +## Mux16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Mux | 16| 8| 128| +|**Total** ||| **128**| + +## Or8Way + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Or | 7| 3| 21| +|**Total** ||| **21**| + +## Mux4Way16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Mux16 | 3| 128| 384| +|**Total** ||| **384**| + +## Mux8Way16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Mux16 | 7| 128| 896| +|**Total** ||| **896**| + +## DMux4Way + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux | 3| 5| 15| +|**Total** ||| **15**| + +## DMux8Way + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux | 7| 5| 35| +|**Total** ||| **35**| + diff --git a/stats-02.md b/stats-02.md new file mode 100644 index 0000000..c3cea39 --- /dev/null +++ b/stats-02.md @@ -0,0 +1,46 @@ +# Project 02: Boolean Arithmatic +## HalfAdder + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Xor | 1| 4| 4| +|And | 1| 2| 2| +|**Total** ||| **6**| + +## FullAdder + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|HalfAdder | 2| 6| 12| +|Or | 1| 3| 3| +|**Total** ||| **15**| + +## Add16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|HalfAdder | 1| 6| 6| +|FullAdder | 15| 15| 225| +|**Total** ||| **231**| + +## Inc16 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Add16 | 1| 231| 231| +|**Total** ||| **231**| + +## ALU + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Mux16 | 6| 128| 768| +|Not16 | 3| 16| 48| +|And16 | 1| 32| 32| +|Add16 | 1| 231| 231| +|Or8Way | 2| 21| 42| +|Or | 1| 3| 3| +|Not | 1| 1| 1| +|Mux | 1| 8| 8| +|**Total** ||| **1133**| + diff --git a/stats-03.md b/stats-03.md new file mode 100644 index 0000000..520e4f4 --- /dev/null +++ b/stats-03.md @@ -0,0 +1,69 @@ +# Project 03: Memory +## Bit + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Mux | 1| 8| 8| +|DFF | 1| 4| 4| +|**Total** ||| **12**| + +## Register + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Bit | 16| 12| 192| +|**Total** ||| **192**| + +## RAM8 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux8Way | 1| 35| 35| +|Register | 8| 192| 1536| +|Mux8Way16 | 1| 896| 896| +|**Total** ||| **2467**| + +## RAM64 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux8Way | 1| 35| 35| +|RAM8 | 8| 2467| 19736| +|Mux8Way16 | 1| 896| 896| +|**Total** ||| **20667**| + +## RAM512 + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux8Way | 1| 35| 35| +|RAM64 | 8| 20667| 165336| +|Mux8Way16 | 1| 896| 896| +|**Total** ||| **166267**| + +## RAM4K + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux8Way | 1| 35| 35| +|RAM512 | 8| 166267| 1330136| +|Mux8Way16 | 1| 896| 896| +|**Total** ||| **1331067**| + +## RAM16K + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|DMux4Way | 1| 15| 15| +|RAM4K | 4| 1331067| 5324268| +|Mux4Way16 | 1| 384| 384| +|**Total** ||| **5324667**| + +## PC + +| Chip | Count | NANDs | Total | +|------------|------------|------------|------------| +|Inc16 | 1| 231| 231| +|Mux16 | 3| 128| 384| +|Register | 1| 192| 192| +|**Total** ||| **807**|