From 66ece050df2005b2eed4150a5965a87ad9f27153 Mon Sep 17 00:00:00 2001 From: Sven Riwoldt Date: Sun, 14 Apr 2024 10:36:36 +0200 Subject: [PATCH] das XOR2 funktioniert lokal, aber das konnte ich nicht einreichen --- projects/01/abgabe/And.hdl | 19 ++++++++++++++++++ projects/01/abgabe/And16.hdl | 18 +++++++++++++++++ projects/01/abgabe/DMux.hdl | 20 +++++++++++++++++++ projects/01/abgabe/DMux4Way.hdl | 22 +++++++++++++++++++++ projects/01/abgabe/DMux8Way.hdl | 23 ++++++++++++++++++++++ projects/01/abgabe/Mux.hdl | 21 ++++++++++++++++++++ projects/01/abgabe/Mux16.hdl | 21 ++++++++++++++++++++ projects/01/abgabe/Mux4Way16.hdl | 22 +++++++++++++++++++++ projects/01/abgabe/Mux8Way16.hdl | 24 +++++++++++++++++++++++ projects/01/abgabe/Nand16.hdl | 28 +++++++++++++++++++++++++++ projects/01/abgabe/Not.hdl | 1 - projects/01/abgabe/Not16.hdl | 32 +++++++++++++++++++++++++++++++ projects/01/abgabe/Or.hdl | 20 +++++++++++++++++++ projects/01/abgabe/Or16.hdl | 19 ++++++++++++++++++ projects/01/abgabe/Or8Way.hdl | 23 ++++++++++++++++++++++ projects/01/abgabe/Xor.hdl | 21 ++++++++++++++++++++ projects/01/abgabe/Xor2.hdl | 20 +++++++++++++++++++ projects/01/abgabe/project1.zip | Bin 0 -> 7169 bytes 18 files changed, 353 insertions(+), 1 deletion(-) create mode 100644 projects/01/abgabe/And.hdl create mode 100644 projects/01/abgabe/And16.hdl create mode 100644 projects/01/abgabe/DMux.hdl create mode 100644 projects/01/abgabe/DMux4Way.hdl create mode 100644 projects/01/abgabe/DMux8Way.hdl create mode 100644 projects/01/abgabe/Mux.hdl create mode 100644 projects/01/abgabe/Mux16.hdl create mode 100644 projects/01/abgabe/Mux4Way16.hdl create mode 100644 projects/01/abgabe/Mux8Way16.hdl create mode 100644 projects/01/abgabe/Nand16.hdl create mode 100644 projects/01/abgabe/Not16.hdl create mode 100644 projects/01/abgabe/Or.hdl create mode 100644 projects/01/abgabe/Or16.hdl create mode 100644 projects/01/abgabe/Or8Way.hdl create mode 100644 projects/01/abgabe/Xor.hdl create mode 100644 projects/01/abgabe/Xor2.hdl create mode 100644 projects/01/abgabe/project1.zip diff --git a/projects/01/abgabe/And.hdl b/projects/01/abgabe/And.hdl new file mode 100644 index 0000000..036d085 --- /dev/null +++ b/projects/01/abgabe/And.hdl @@ -0,0 +1,19 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/And.hdl + +/** + * And gate: + * out = 1 if (a == 1 and b == 1) + * 0 otherwise + */ + +CHIP And { + IN a, b; + OUT out; + + PARTS: + Nand(a=a ,b=b ,out=nandout); + Not(in=nandout ,out=out); +} diff --git a/projects/01/abgabe/And16.hdl b/projects/01/abgabe/And16.hdl new file mode 100644 index 0000000..8e1d9cc --- /dev/null +++ b/projects/01/abgabe/And16.hdl @@ -0,0 +1,18 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/And16.hdl + +/** + * 16-bit bitwise And: + * for i = 0..15: out[i] = (a[i] and b[i]) + */ + +CHIP And16 { + IN a[16], b[16]; + OUT out[16]; + + PARTS: + Nand16(a=a,b=b,out=outnand); + Not16(in=outnand,out=out); +} \ No newline at end of file diff --git a/projects/01/abgabe/DMux.hdl b/projects/01/abgabe/DMux.hdl new file mode 100644 index 0000000..9425b89 --- /dev/null +++ b/projects/01/abgabe/DMux.hdl @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/DMux.hdl + +/** + * Demultiplexor: + * {a, b} = {in, 0} if sel == 0 + * {0, in} if sel == 1 + */ + +CHIP DMux { + IN in, sel; + OUT a, b; + + PARTS: + Not(in=sel, out=notsel); + And(a=in,b=notsel,out=a); + And(a=sel,b=in,out=b); +} diff --git a/projects/01/abgabe/DMux4Way.hdl b/projects/01/abgabe/DMux4Way.hdl new file mode 100644 index 0000000..ca3ca4f --- /dev/null +++ b/projects/01/abgabe/DMux4Way.hdl @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/DMux4Way.hdl + +/** + * 4-way demultiplexor: + * {a, b, c, d} = {in, 0, 0, 0} if sel == 00 + * {0, in, 0, 0} if sel == 01 + * {0, 0, in, 0} if sel == 10 + * {0, 0, 0, in} if sel == 11 + */ + +CHIP DMux4Way { + IN in, sel[2]; + OUT a, b, c, d; + + PARTS: + DMux(in=in, sel=sel[1], a=dmuxouta, b=dmuxoutb); + DMux(in=dmuxouta, sel=sel[0], a=a, b=b); + DMux(in=dmuxoutb, sel=sel[0], a=c, b=d); +} \ No newline at end of file diff --git a/projects/01/abgabe/DMux8Way.hdl b/projects/01/abgabe/DMux8Way.hdl new file mode 100644 index 0000000..fdf4ce5 --- /dev/null +++ b/projects/01/abgabe/DMux8Way.hdl @@ -0,0 +1,23 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/DMux8Way.hdl + +/** + * 8-way demultiplexor: + * {a, b, c, d, e, f, g, h} = {in, 0, 0, 0, 0, 0, 0, 0} if sel == 000 + * {0, in, 0, 0, 0, 0, 0, 0} if sel == 001 + * etc. + * {0, 0, 0, 0, 0, 0, 0, in} if sel == 111 + */ + +CHIP DMux8Way { + IN in, sel[3]; + OUT a, b, c, d, e, f, g, h; + + PARTS: + DMux(in=in, sel=sel[2], a=dmuxouta, b=dmuxoutb); + DMux4Way(in=dmuxouta, sel=sel[0..1], a=a, b=b, c=c, d=d); + DMux4Way(in=dmuxoutb, sel=sel[0..1], a=e, b=f, c=g, d=h); + // Put your code here: +} \ No newline at end of file diff --git a/projects/01/abgabe/Mux.hdl b/projects/01/abgabe/Mux.hdl new file mode 100644 index 0000000..0464e7b --- /dev/null +++ b/projects/01/abgabe/Mux.hdl @@ -0,0 +1,21 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Mux.hdl + +/** + * Multiplexor: + * out = a if sel == 0 + * b otherwise + */ + +CHIP Mux { + IN a, b, sel; + OUT out; + + PARTS: + Not(in=sel,out=notsel); + And(a=a,b=notsel,out=outand1); + And(a=sel,b=b,out=outand2); + Or(a=outand1,b=outand2,out=out); +} diff --git a/projects/01/abgabe/Mux16.hdl b/projects/01/abgabe/Mux16.hdl new file mode 100644 index 0000000..e507ce4 --- /dev/null +++ b/projects/01/abgabe/Mux16.hdl @@ -0,0 +1,21 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Mux16.hdl + +/** + * 16-bit multiplexor: + * for i = 0..15 out[i] = a[i] if sel == 0 + * b[i] if sel == 1 + */ + +CHIP Mux16 { + IN a[16], b[16], sel; + OUT out[16]; + + PARTS: + Not(in=sel,out=notsel); + And16(a=a,b[0]=notsel,b[1]=notsel,b[2]=notsel,b[3]=notsel,b[4]=notsel,b[5]=notsel,b[6]=notsel,b[7]=notsel,b[8]=notsel,b[9]=notsel,b[10]=notsel,b[11]=notsel,b[12]=notsel,b[13]=notsel,b[14]=notsel,b[15]=notsel,out=outand1); + And16(a[0]=sel,a[1]=sel,a[2]=sel,a[3]=sel,a[4]=sel,a[5]=sel,a[6]=sel,a[7]=sel,a[8]=sel,a[9]=sel,a[10]=sel,a[11]=sel,a[12]=sel,a[13]=sel,a[14]=sel,a[15]=sel,b=b,out=outand2); + Or16(a=outand1,b=outand2,out=out); +} diff --git a/projects/01/abgabe/Mux4Way16.hdl b/projects/01/abgabe/Mux4Way16.hdl new file mode 100644 index 0000000..038b7c0 --- /dev/null +++ b/projects/01/abgabe/Mux4Way16.hdl @@ -0,0 +1,22 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Mux4Way16.hdl + +/** + * 4-way 16-bit multiplexor: + * out = a if sel == 00 + * b if sel == 01 + * c if sel == 10 + * d if sel == 11 + */ + +CHIP Mux4Way16 { + IN a[16], b[16], c[16], d[16], sel[2]; + OUT out[16]; + + PARTS: + Mux16(a=a,b=b,sel=sel[0],out=mux16out1); + Mux16(a=c,b=d,sel=sel[0],out=mux16out2); + Mux16(a=mux16out1,b=mux16out2,sel=sel[1],out=out); +} \ No newline at end of file diff --git a/projects/01/abgabe/Mux8Way16.hdl b/projects/01/abgabe/Mux8Way16.hdl new file mode 100644 index 0000000..6ffe518 --- /dev/null +++ b/projects/01/abgabe/Mux8Way16.hdl @@ -0,0 +1,24 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Mux8Way16.hdl + +/** + * 8-way 16-bit multiplexor: + * out = a if sel == 000 + * b if sel == 001 + * etc. + * h if sel == 111 + */ + +CHIP Mux8Way16 { + IN a[16], b[16], c[16], d[16], + e[16], f[16], g[16], h[16], + sel[3]; + OUT out[16]; + + PARTS: + Mux4Way16(a=a,b=b,c=c,d=d,sel=sel[0..1],out=mux4way1); + Mux4Way16(a=e,b=f,c=g,d=h,sel=sel[0..1],out=mux4way2); + Mux16(a=mux4way1,b=mux4way2,sel=sel[2],out=out); +} \ No newline at end of file diff --git a/projects/01/abgabe/Nand16.hdl b/projects/01/abgabe/Nand16.hdl new file mode 100644 index 0000000..f9bb580 --- /dev/null +++ b/projects/01/abgabe/Nand16.hdl @@ -0,0 +1,28 @@ + +/** + * 16-bit bitwise And: + * for i = 0..15: out[i] = (a[i] and b[i]) + */ + +CHIP Nand16 { + IN a[16], b[16]; + OUT out[16]; + + PARTS: + Nand(a=a[0],b=b[0],out=out[0]); + Nand(a=a[1],b=b[1],out=out[1]); + Nand(a=a[2],b=b[2],out=out[2]); + Nand(a=a[3],b=b[3],out=out[3]); + Nand(a=a[4],b=b[4],out=out[4]); + Nand(a=a[5],b=b[5],out=out[5]); + Nand(a=a[6],b=b[6],out=out[6]); + Nand(a=a[7],b=b[7],out=out[7]); + Nand(a=a[8],b=b[8],out=out[8]); + Nand(a=a[9],b=b[9],out=out[9]); + Nand(a=a[10],b=b[10],out=out[10]); + Nand(a=a[11],b=b[11],out=out[11]); + Nand(a=a[12],b=b[12],out=out[12]); + Nand(a=a[13],b=b[13],out=out[13]); + Nand(a=a[14],b=b[14],out=out[14]); + Nand(a=a[15],b=b[15],out=out[15]); +} \ No newline at end of file diff --git a/projects/01/abgabe/Not.hdl b/projects/01/abgabe/Not.hdl index 14fb886..788f638 100644 --- a/projects/01/abgabe/Not.hdl +++ b/projects/01/abgabe/Not.hdl @@ -14,5 +14,4 @@ CHIP Not { PARTS: Nand(a=in,b=in,out=out); - // Put your code here: } diff --git a/projects/01/abgabe/Not16.hdl b/projects/01/abgabe/Not16.hdl new file mode 100644 index 0000000..e13c0a0 --- /dev/null +++ b/projects/01/abgabe/Not16.hdl @@ -0,0 +1,32 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Not16.hdl + +/** + * 16-bit Not: + * for i=0..15: out[i] = not in[i] + */ + +CHIP Not16 { + IN in[16]; + OUT out[16]; + + PARTS: + 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]); +} diff --git a/projects/01/abgabe/Or.hdl b/projects/01/abgabe/Or.hdl new file mode 100644 index 0000000..70bb660 --- /dev/null +++ b/projects/01/abgabe/Or.hdl @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Or.hdl + + /** + * Or gate: + * out = 1 if (a == 1 or b == 1) + * 0 otherwise + */ + +CHIP Or { + IN a, b; + OUT out; + + PARTS: + Not(in=a,out=nota); + Not(in=b,out=notb); + Nand(a=nota,b=notb,out=out); +} diff --git a/projects/01/abgabe/Or16.hdl b/projects/01/abgabe/Or16.hdl new file mode 100644 index 0000000..ce585c2 --- /dev/null +++ b/projects/01/abgabe/Or16.hdl @@ -0,0 +1,19 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Or16.hdl + +/** + * 16-bit bitwise Or: + * for i = 0..15 out[i] = (a[i] or b[i]) + */ + +CHIP Or16 { + IN a[16], b[16]; + OUT out[16]; + + PARTS: + Not16(in=a,out=nota); + Not16(in=b,out=notb); + Nand16(a=nota,b=notb,out=out); +} \ No newline at end of file diff --git a/projects/01/abgabe/Or8Way.hdl b/projects/01/abgabe/Or8Way.hdl new file mode 100644 index 0000000..1597f24 --- /dev/null +++ b/projects/01/abgabe/Or8Way.hdl @@ -0,0 +1,23 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Or8Way.hdl + +/** + * 8-way Or: + * out = (in[0] or in[1] or ... or in[7]) + */ + +CHIP Or8Way { + IN in[8]; + OUT out; + + PARTS: + Or(a=in[0],b=in[1],out=or1); + Or(a=or1,b=in[2],out=or2); + Or(a=or2,b=in[3],out=or3); + Or(a=or3,b=in[4],out=or4); + Or(a=or4,b=in[5],out=or5); + Or(a=or5,b=in[6],out=or6); + Or(a=or6,b=in[7],out=out); +} \ No newline at end of file diff --git a/projects/01/abgabe/Xor.hdl b/projects/01/abgabe/Xor.hdl new file mode 100644 index 0000000..a9e9d7c --- /dev/null +++ b/projects/01/abgabe/Xor.hdl @@ -0,0 +1,21 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Xor.hdl + +/** + * Exclusive-or gate: + * out = not (a == b) + */ + +CHIP Xor { + IN a, b; + OUT out; + + PARTS: + Not(in=a, out=nota); + Not(in=b, out=notb); + Nand(a=nota, b=b, out=nandout1); + Nand(a=a, b=notb, out=nandout2); + Nand(a=nandout1, b=nandout2, out=out); +} diff --git a/projects/01/abgabe/Xor2.hdl b/projects/01/abgabe/Xor2.hdl new file mode 100644 index 0000000..360621c --- /dev/null +++ b/projects/01/abgabe/Xor2.hdl @@ -0,0 +1,20 @@ +// This file is part of www.nand2tetris.org +// and the book "The Elements of Computing Systems" +// by Nisan and Schocken, MIT Press. +// File name: projects/01/Xor.hdl + +/** + * Exclusive-or gate: + * out = not (a == b) + */ + +CHIP Xor { + IN a, b; + OUT out; + + PARTS: + Nand(a=a, b=b,out=nand1); + Nand(a=a, b=nand1, out=nandout1); + Nand(a=a, b=nand1, out=nandout2); + Nand(a=nandout1, b=nandout2, out=out); +} diff --git a/projects/01/abgabe/project1.zip b/projects/01/abgabe/project1.zip new file mode 100644 index 0000000000000000000000000000000000000000..0a1d9d0138d98087446cd160e5d0e1096f94cf6b GIT binary patch literal 7169 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 literal 0 HcmV?d00001