From a9267122dc1ba58ba77d0fb5f5f038e784076227 Mon Sep 17 00:00:00 2001 From: ATherkel Date: Mon, 6 May 2024 11:39:14 +0200 Subject: [PATCH 1/2] project1 files --- nand2tetris/projects/1/And.hdl | 3 ++- nand2tetris/projects/1/And.out | 5 +++++ nand2tetris/projects/1/And16.hdl | 17 +++++++++++++++- nand2tetris/projects/1/And16.out | 7 +++++++ nand2tetris/projects/1/DMux.hdl | 5 ++++- nand2tetris/projects/1/DMux.out | 5 +++++ nand2tetris/projects/1/DMux4Way.hdl | 14 +++++++++++++- nand2tetris/projects/1/DMux4Way.out | 9 +++++++++ nand2tetris/projects/1/DMux8Way.hdl | 29 +++++++++++++++++++++++++++- nand2tetris/projects/1/DMux8Way.out | 17 ++++++++++++++++ nand2tetris/projects/1/Mux.hdl | 5 ++++- nand2tetris/projects/1/Mux.out | 9 +++++++++ nand2tetris/projects/1/Mux16.hdl | 17 +++++++++++++++- nand2tetris/projects/1/Mux16.out | 9 +++++++++ nand2tetris/projects/1/Mux4Way16.hdl | 18 ++++++++++++++++- nand2tetris/projects/1/Mux4Way16.out | 9 +++++++++ nand2tetris/projects/1/Mux8Way16.hdl | 5 ++++- nand2tetris/projects/1/Mux8Way16.out | 17 ++++++++++++++++ nand2tetris/projects/1/Not.hdl | 2 +- nand2tetris/projects/1/Not.out | 3 +++ nand2tetris/projects/1/Not16.hdl | 17 +++++++++++++++- nand2tetris/projects/1/Not16.out | 6 ++++++ nand2tetris/projects/1/Or.hdl | 4 +++- nand2tetris/projects/1/Or.out | 5 +++++ nand2tetris/projects/1/Or16.hdl | 17 +++++++++++++++- nand2tetris/projects/1/Or16.out | 7 +++++++ nand2tetris/projects/1/Or8Way.hdl | 10 +++++++++- nand2tetris/projects/1/Or8Way.out | 6 ++++++ nand2tetris/projects/1/Xor.hdl | 7 ++++++- nand2tetris/projects/1/Xor.out | 5 +++++ 30 files changed, 274 insertions(+), 15 deletions(-) create mode 100644 nand2tetris/projects/1/And.out create mode 100644 nand2tetris/projects/1/And16.out create mode 100644 nand2tetris/projects/1/DMux.out create mode 100644 nand2tetris/projects/1/DMux4Way.out create mode 100644 nand2tetris/projects/1/DMux8Way.out create mode 100644 nand2tetris/projects/1/Mux.out create mode 100644 nand2tetris/projects/1/Mux16.out create mode 100644 nand2tetris/projects/1/Mux4Way16.out create mode 100644 nand2tetris/projects/1/Mux8Way16.out create mode 100644 nand2tetris/projects/1/Not.out create mode 100644 nand2tetris/projects/1/Not16.out create mode 100644 nand2tetris/projects/1/Or.out create mode 100644 nand2tetris/projects/1/Or16.out create mode 100644 nand2tetris/projects/1/Or8Way.out create mode 100644 nand2tetris/projects/1/Xor.out diff --git a/nand2tetris/projects/1/And.hdl b/nand2tetris/projects/1/And.hdl index 7dc5083..44c866f 100644 --- a/nand2tetris/projects/1/And.hdl +++ b/nand2tetris/projects/1/And.hdl @@ -11,5 +11,6 @@ CHIP And { OUT out; PARTS: - //// Replace this comment with your code. + Nand(a = a, b = b, out = tmp); + Not(in = tmp, out = out); } \ No newline at end of file diff --git a/nand2tetris/projects/1/And.out b/nand2tetris/projects/1/And.out new file mode 100644 index 0000000..7a3c7de --- /dev/null +++ b/nand2tetris/projects/1/And.out @@ -0,0 +1,5 @@ +| a | b |out| +| 0 | 0 | 0 | +| 0 | 1 | 0 | +| 1 | 0 | 0 | +| 1 | 1 | 1 | diff --git a/nand2tetris/projects/1/And16.hdl b/nand2tetris/projects/1/And16.hdl index 3ce4bc1..02e4887 100644 --- a/nand2tetris/projects/1/And16.hdl +++ b/nand2tetris/projects/1/And16.hdl @@ -12,5 +12,20 @@ CHIP And16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + And(a = a[0], b = b[0], out = out[0]); + And(a = a[1], b = b[1], out = out[1]); + And(a = a[2], b = b[2], out = out[2]); + And(a = a[3], b = b[3], out = out[3]); + And(a = a[4], b = b[4], out = out[4]); + And(a = a[5], b = b[5], out = out[5]); + And(a = a[6], b = b[6], out = out[6]); + And(a = a[7], b = b[7], out = out[7]); + And(a = a[8], b = b[8], out = out[8]); + And(a = a[9], b = b[9], out = out[9]); + And(a = a[10], b = b[10], out = out[10]); + And(a = a[11], b = b[11], out = out[11]); + And(a = a[12], b = b[12], out = out[12]); + And(a = a[13], b = b[13], out = out[13]); + And(a = a[14], b = b[14], out = out[14]); + And(a = a[15], b = b[15], out = out[15]); } \ No newline at end of file diff --git a/nand2tetris/projects/1/And16.out b/nand2tetris/projects/1/And16.out new file mode 100644 index 0000000..fb8dbfc --- /dev/null +++ b/nand2tetris/projects/1/And16.out @@ -0,0 +1,7 @@ +| a | b | out | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | +| 0000000000000000 | 1111111111111111 | 0000000000000000 | +| 1111111111111111 | 1111111111111111 | 1111111111111111 | +| 1010101010101010 | 0101010101010101 | 0000000000000000 | +| 0011110011000011 | 0000111111110000 | 0000110011000000 | +| 0001001000110100 | 1001100001110110 | 0001000000110100 | diff --git a/nand2tetris/projects/1/DMux.hdl b/nand2tetris/projects/1/DMux.hdl index c518937..1c38f66 100644 --- a/nand2tetris/projects/1/DMux.hdl +++ b/nand2tetris/projects/1/DMux.hdl @@ -12,5 +12,8 @@ CHIP DMux { OUT a, b; PARTS: - //// Replace this comment with your code. + Not(in = sel, out = sela); + + And(a = in, b = sela, out = a); + And(a = in, b = sel, out = b); } diff --git a/nand2tetris/projects/1/DMux.out b/nand2tetris/projects/1/DMux.out new file mode 100644 index 0000000..5b65adb --- /dev/null +++ b/nand2tetris/projects/1/DMux.out @@ -0,0 +1,5 @@ +|in |sel| a | b | +| 0 | 0 | 0 | 0 | +| 0 | 1 | 0 | 0 | +| 1 | 0 | 1 | 0 | +| 1 | 1 | 0 | 1 | diff --git a/nand2tetris/projects/1/DMux4Way.hdl b/nand2tetris/projects/1/DMux4Way.hdl index 6c19dc5..34dffbe 100644 --- a/nand2tetris/projects/1/DMux4Way.hdl +++ b/nand2tetris/projects/1/DMux4Way.hdl @@ -14,5 +14,17 @@ CHIP DMux4Way { OUT a, b, c, d; PARTS: - //// Replace this comment with your code. + Not(in = sel[0], out = notsel0); + Not(in = sel[1], out = notsel1); + + And(a = notsel1, b = notsel0, out = sel00); + And(a = notsel1, b = sel[0], out = sel01); + And(a = sel[1], b = notsel0, out = sel10); + And(a = sel[1], b = sel[0], out = sel11); + + + And(a = in, b = sel00, out = a); + And(a = in, b = sel01, out = b); + And(a = in, b = sel10, out = c); + And(a = in, b = sel11, out = d); } \ No newline at end of file diff --git a/nand2tetris/projects/1/DMux4Way.out b/nand2tetris/projects/1/DMux4Way.out new file mode 100644 index 0000000..7734e2a --- /dev/null +++ b/nand2tetris/projects/1/DMux4Way.out @@ -0,0 +1,9 @@ +|in | sel | a | b | c | d | +| 0 | 00 | 0 | 0 | 0 | 0 | +| 0 | 01 | 0 | 0 | 0 | 0 | +| 0 | 10 | 0 | 0 | 0 | 0 | +| 0 | 11 | 0 | 0 | 0 | 0 | +| 1 | 00 | 1 | 0 | 0 | 0 | +| 1 | 01 | 0 | 1 | 0 | 0 | +| 1 | 10 | 0 | 0 | 1 | 0 | +| 1 | 11 | 0 | 0 | 0 | 1 | diff --git a/nand2tetris/projects/1/DMux8Way.hdl b/nand2tetris/projects/1/DMux8Way.hdl index a9c3792..ae3e9b0 100644 --- a/nand2tetris/projects/1/DMux8Way.hdl +++ b/nand2tetris/projects/1/DMux8Way.hdl @@ -18,5 +18,32 @@ CHIP DMux8Way { OUT a, b, c, d, e, f, g, h; PARTS: - //// Replace this comment with your code. + + Not(in = sel[0], out = notsel0); + Not(in = sel[1], out = notsel1); + Not(in = sel[2], out = notsel2); + + And(a = notsel1, b = notsel0, out = sel00); + And(a = notsel1, b = sel[0], out = sel01); + And(a = sel[1], b = notsel0, out = sel10); + And(a = sel[1], b = sel[0], out = sel11); + + And(a = notsel2, b = sel00, out = sel000); + And(a = notsel2, b = sel01, out = sel001); + And(a = notsel2, b = sel10, out = sel010); + And(a = notsel2, b = sel11, out = sel011); + And(a = sel[2], b = sel00, out = sel100); + And(a = sel[2], b = sel01, out = sel101); + And(a = sel[2], b = sel10, out = sel110); + And(a = sel[2], b = sel11, out = sel111); + + And(a = in, b = sel000, out = a); + And(a = in, b = sel001, out = b); + And(a = in, b = sel010, out = c); + And(a = in, b = sel011, out = d); + And(a = in, b = sel100, out = e); + And(a = in, b = sel101, out = f); + And(a = in, b = sel110, out = g); + And(a = in, b = sel111, out = h); + } diff --git a/nand2tetris/projects/1/DMux8Way.out b/nand2tetris/projects/1/DMux8Way.out new file mode 100644 index 0000000..e1b2e74 --- /dev/null +++ b/nand2tetris/projects/1/DMux8Way.out @@ -0,0 +1,17 @@ +|in | sel | a | b | c | d | e | f | g | h | +| 0 | 000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 001 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 011 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 100 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 101 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 0 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 000 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 001 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 010 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | +| 1 | 011 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | +| 1 | 100 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | +| 1 | 101 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | +| 1 | 110 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | +| 1 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | diff --git a/nand2tetris/projects/1/Mux.hdl b/nand2tetris/projects/1/Mux.hdl index 1433573..89d9fcb 100644 --- a/nand2tetris/projects/1/Mux.hdl +++ b/nand2tetris/projects/1/Mux.hdl @@ -11,5 +11,8 @@ CHIP Mux { OUT out; PARTS: - //// Replace this comment with your code. + Not(in = sel, out = notsel); + And(a = a, b = notsel, out = sela); + And(a = sel, b = b, out = selb); + Or(a = sela, b = selb, out = out); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Mux.out b/nand2tetris/projects/1/Mux.out new file mode 100644 index 0000000..eb25f2e --- /dev/null +++ b/nand2tetris/projects/1/Mux.out @@ -0,0 +1,9 @@ +| a | b |sel|out| +| 0 | 0 | 0 | 0 | +| 0 | 0 | 1 | 0 | +| 0 | 1 | 0 | 0 | +| 0 | 1 | 1 | 1 | +| 1 | 0 | 0 | 1 | +| 1 | 0 | 1 | 0 | +| 1 | 1 | 0 | 1 | +| 1 | 1 | 1 | 1 | diff --git a/nand2tetris/projects/1/Mux16.hdl b/nand2tetris/projects/1/Mux16.hdl index 6149baf..27f27c9 100644 --- a/nand2tetris/projects/1/Mux16.hdl +++ b/nand2tetris/projects/1/Mux16.hdl @@ -12,5 +12,20 @@ CHIP Mux16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + Mux(a = a[0], b = b[0], sel = sel, out = out[0]); + Mux(a = a[1], b = b[1], sel = sel, out = out[1]); + Mux(a = a[2], b = b[2], sel = sel, out = out[2]); + Mux(a = a[3], b = b[3], sel = sel, out = out[3]); + Mux(a = a[4], b = b[4], sel = sel, out = out[4]); + Mux(a = a[5], b = b[5], sel = sel, out = out[5]); + Mux(a = a[6], b = b[6], sel = sel, out = out[6]); + Mux(a = a[7], b = b[7], sel = sel, out = out[7]); + Mux(a = a[8], b = b[8], sel = sel, out = out[8]); + Mux(a = a[9], b = b[9], sel = sel, out = out[9]); + Mux(a = a[10], b = b[10], sel = sel, out = out[10]); + Mux(a = a[11], b = b[11], sel = sel, out = out[11]); + Mux(a = a[12], b = b[12], sel = sel, out = out[12]); + Mux(a = a[13], b = b[13], sel = sel, out = out[13]); + Mux(a = a[14], b = b[14], sel = sel, out = out[14]); + Mux(a = a[15], b = b[15], sel = sel, out = out[15]); } diff --git a/nand2tetris/projects/1/Mux16.out b/nand2tetris/projects/1/Mux16.out new file mode 100644 index 0000000..80b6ece --- /dev/null +++ b/nand2tetris/projects/1/Mux16.out @@ -0,0 +1,9 @@ +| a | b |sel| out | +| 0000000000000000 | 0000000000000000 | 0 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 1 | 0000000000000000 | +| 0000000000000000 | 0001001000110100 | 0 | 0000000000000000 | +| 0000000000000000 | 0001001000110100 | 1 | 0001001000110100 | +| 1001100001110110 | 0000000000000000 | 0 | 1001100001110110 | +| 1001100001110110 | 0000000000000000 | 1 | 0000000000000000 | +| 1010101010101010 | 0101010101010101 | 0 | 1010101010101010 | +| 1010101010101010 | 0101010101010101 | 1 | 0101010101010101 | diff --git a/nand2tetris/projects/1/Mux4Way16.hdl b/nand2tetris/projects/1/Mux4Way16.hdl index 7f87982..4d0a434 100644 --- a/nand2tetris/projects/1/Mux4Way16.hdl +++ b/nand2tetris/projects/1/Mux4Way16.hdl @@ -14,5 +14,21 @@ CHIP Mux4Way16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + Not(in = sel[0], out = notsel0); + Not(in = sel[1], out = notsel1); + + Nand(a = notsel1, b = notsel0, out = sel00); + Nand(a = notsel1, b = sel[0], out = sel01); + Nand(a = sel[1], b = notsel0, out = sel10); + Nand(a = sel[1], b = sel[0], out = sel11); + + Mux16(a = a, b = false, sel = sel00, out = sela); + Mux16(a = b, b = false, sel = sel01, out = selb); + Mux16(a = c, b = false, sel = sel10, out = selc); + Mux16(a = d, b = false, sel = sel11, out = seld); + + Or16(a = sela, b = selb, out = orAb); + Or16(a = selc, b = seld, out = orCd); + + Or16(a = orAb, b = orCd, out = out); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Mux4Way16.out b/nand2tetris/projects/1/Mux4Way16.out new file mode 100644 index 0000000..659176d --- /dev/null +++ b/nand2tetris/projects/1/Mux4Way16.out @@ -0,0 +1,9 @@ +| a | b | c | d | sel | out | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 00 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 01 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 10 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 11 | 0000000000000000 | +| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 00 | 0001001000110100 | +| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 01 | 1001100001110110 | +| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 10 | 1010101010101010 | +| 0001001000110100 | 1001100001110110 | 1010101010101010 | 0101010101010101 | 11 | 0101010101010101 | diff --git a/nand2tetris/projects/1/Mux8Way16.hdl b/nand2tetris/projects/1/Mux8Way16.hdl index 78dfa50..9e2b59f 100644 --- a/nand2tetris/projects/1/Mux8Way16.hdl +++ b/nand2tetris/projects/1/Mux8Way16.hdl @@ -20,5 +20,8 @@ CHIP Mux8Way16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + Mux4Way16(a = a, b = b, c = c, d = d, sel = sel[0..1], out = abcd); + Mux4Way16(a = e, b = f, c = g, d = h, sel = sel[0..1], out = efgh); + + Mux16(a = abcd, b = efgh, sel = sel[2], out = out); } diff --git a/nand2tetris/projects/1/Mux8Way16.out b/nand2tetris/projects/1/Mux8Way16.out new file mode 100644 index 0000000..11ff518 --- /dev/null +++ b/nand2tetris/projects/1/Mux8Way16.out @@ -0,0 +1,17 @@ +| a | b | c | d | e | f | g | h | sel | out | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 000 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 001 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 010 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 011 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 100 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 101 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 110 | 0000000000000000 | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 0000000000000000 | 111 | 0000000000000000 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 000 | 0001001000110100 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 001 | 0010001101000101 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 010 | 0011010001010110 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 011 | 0100010101100111 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 100 | 0101011001111000 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 101 | 0110011110001001 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 110 | 0111100010011010 | +| 0001001000110100 | 0010001101000101 | 0011010001010110 | 0100010101100111 | 0101011001111000 | 0110011110001001 | 0111100010011010 | 1000100110101011 | 111 | 1000100110101011 | diff --git a/nand2tetris/projects/1/Not.hdl b/nand2tetris/projects/1/Not.hdl index 92c6e6a..47fd414 100644 --- a/nand2tetris/projects/1/Not.hdl +++ b/nand2tetris/projects/1/Not.hdl @@ -11,5 +11,5 @@ CHIP Not { OUT out; PARTS: - //// Replace this comment with your code. + Nand(a = in, b = in, out = out); } diff --git a/nand2tetris/projects/1/Not.out b/nand2tetris/projects/1/Not.out new file mode 100644 index 0000000..9b48db2 --- /dev/null +++ b/nand2tetris/projects/1/Not.out @@ -0,0 +1,3 @@ +|in |out| +| 0 | 1 | +| 1 | 0 | diff --git a/nand2tetris/projects/1/Not16.hdl b/nand2tetris/projects/1/Not16.hdl index ccbf0e7..30e0f31 100644 --- a/nand2tetris/projects/1/Not16.hdl +++ b/nand2tetris/projects/1/Not16.hdl @@ -12,5 +12,20 @@ CHIP Not16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + Not(in = in[0], out = out[0]); + Not(in = in[1], out = out[1]); + Not(in = in[2], out = out[2]); + Not(in = in[3], out = out[3]); + Not(in = in[4], out = out[4]); + Not(in = in[5], out = out[5]); + Not(in = in[6], out = out[6]); + Not(in = in[7], out = out[7]); + Not(in = in[8], out = out[8]); + Not(in = in[9], out = out[9]); + Not(in = in[10], out = out[10]); + Not(in = in[11], out = out[11]); + Not(in = in[12], out = out[12]); + Not(in = in[13], out = out[13]); + Not(in = in[14], out = out[14]); + Not(in = in[15], out = out[15]); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Not16.out b/nand2tetris/projects/1/Not16.out new file mode 100644 index 0000000..ae2ad1d --- /dev/null +++ b/nand2tetris/projects/1/Not16.out @@ -0,0 +1,6 @@ +| in | out | +| 0000000000000000 | 1111111111111111 | +| 1111111111111111 | 0000000000000000 | +| 1010101010101010 | 0101010101010101 | +| 0011110011000011 | 1100001100111100 | +| 0001001000110100 | 1110110111001011 | diff --git a/nand2tetris/projects/1/Or.hdl b/nand2tetris/projects/1/Or.hdl index 48dced3..9c52c24 100644 --- a/nand2tetris/projects/1/Or.hdl +++ b/nand2tetris/projects/1/Or.hdl @@ -11,5 +11,7 @@ CHIP Or { OUT out; PARTS: - //// Replace this comment with your code. + Not(in = a, out = nota); + Not(in = b, out = notb); + Nand(a = nota, b = notb, out = out); } diff --git a/nand2tetris/projects/1/Or.out b/nand2tetris/projects/1/Or.out new file mode 100644 index 0000000..11f9d64 --- /dev/null +++ b/nand2tetris/projects/1/Or.out @@ -0,0 +1,5 @@ +| a | b |out| +| 0 | 0 | 0 | +| 0 | 1 | 1 | +| 1 | 0 | 1 | +| 1 | 1 | 1 | diff --git a/nand2tetris/projects/1/Or16.hdl b/nand2tetris/projects/1/Or16.hdl index 8b0cbac..b8957f0 100644 --- a/nand2tetris/projects/1/Or16.hdl +++ b/nand2tetris/projects/1/Or16.hdl @@ -12,5 +12,20 @@ CHIP Or16 { OUT out[16]; PARTS: - //// Replace this comment with your code. + Or(a = a[0], b = b[0], out = out[0]); + Or(a = a[1], b = b[1], out = out[1]); + Or(a = a[2], b = b[2], out = out[2]); + Or(a = a[3], b = b[3], out = out[3]); + Or(a = a[4], b = b[4], out = out[4]); + Or(a = a[5], b = b[5], out = out[5]); + Or(a = a[6], b = b[6], out = out[6]); + Or(a = a[7], b = b[7], out = out[7]); + Or(a = a[8], b = b[8], out = out[8]); + Or(a = a[9], b = b[9], out = out[9]); + Or(a = a[10], b = b[10], out = out[10]); + Or(a = a[11], b = b[11], out = out[11]); + Or(a = a[12], b = b[12], out = out[12]); + Or(a = a[13], b = b[13], out = out[13]); + Or(a = a[14], b = b[14], out = out[14]); + Or(a = a[15], b = b[15], out = out[15]); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Or16.out b/nand2tetris/projects/1/Or16.out new file mode 100644 index 0000000..8664afe --- /dev/null +++ b/nand2tetris/projects/1/Or16.out @@ -0,0 +1,7 @@ +| a | b | out | +| 0000000000000000 | 0000000000000000 | 0000000000000000 | +| 0000000000000000 | 1111111111111111 | 1111111111111111 | +| 1111111111111111 | 1111111111111111 | 1111111111111111 | +| 1010101010101010 | 0101010101010101 | 1111111111111111 | +| 0011110011000011 | 0000111111110000 | 0011111111110011 | +| 0001001000110100 | 1001100001110110 | 1001101001110110 | diff --git a/nand2tetris/projects/1/Or8Way.hdl b/nand2tetris/projects/1/Or8Way.hdl index 24a5b8a..ea7e3fe 100644 --- a/nand2tetris/projects/1/Or8Way.hdl +++ b/nand2tetris/projects/1/Or8Way.hdl @@ -11,5 +11,13 @@ CHIP Or8Way { OUT out; PARTS: - //// Replace this comment with your code. + Or(a = in[0], b = in[1], out = a0); + Or(a = in[2], b = in[3], out = a2); + Or(a = in[4], b = in[5], out = a4); + Or(a = in[6], b = in[7], out = a6); + + Or(a = a0, b = a2, out = b0); + Or(a = a4, b = a4, out = b1); + + Or(a = b0, b = b1, out = out); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Or8Way.out b/nand2tetris/projects/1/Or8Way.out new file mode 100644 index 0000000..a1d2c4a --- /dev/null +++ b/nand2tetris/projects/1/Or8Way.out @@ -0,0 +1,6 @@ +| in |out| +| 00000000 | 0 | +| 11111111 | 1 | +| 00010000 | 1 | +| 00000001 | 1 | +| 00100110 | 1 | diff --git a/nand2tetris/projects/1/Xor.hdl b/nand2tetris/projects/1/Xor.hdl index 6e3bf42..5bc53ea 100644 --- a/nand2tetris/projects/1/Xor.hdl +++ b/nand2tetris/projects/1/Xor.hdl @@ -11,5 +11,10 @@ CHIP Xor { OUT out; PARTS: - //// Replace this comment with your code. + Not(in = a, out = nota); + Not(in = b, out = notb); + + And(a = a, b = notb, out = aAndNotb); + And(a = nota, b = b, out = notaAndb); + Or(a = aAndNotb, b = notaAndb, out = out); } \ No newline at end of file diff --git a/nand2tetris/projects/1/Xor.out b/nand2tetris/projects/1/Xor.out new file mode 100644 index 0000000..3737173 --- /dev/null +++ b/nand2tetris/projects/1/Xor.out @@ -0,0 +1,5 @@ +| a | b |out| +| 0 | 0 | 0 | +| 0 | 1 | 1 | +| 1 | 0 | 1 | +| 1 | 1 | 0 | From b11f8357ae8058eb6329c7c874bbe37726c251f9 Mon Sep 17 00:00:00 2001 From: ATherkel Date: Mon, 6 May 2024 11:39:22 +0200 Subject: [PATCH 2/2] Create project1.zip --- nand2tetris/projects/1/project1.zip | Bin 0 -> 6467 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 nand2tetris/projects/1/project1.zip diff --git a/nand2tetris/projects/1/project1.zip b/nand2tetris/projects/1/project1.zip new file mode 100644 index 0000000000000000000000000000000000000000..7d5b91e9175aed7670da894657337640d4ab5e98 GIT binary patch literal 6467 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 literal 0 HcmV?d00001