From 6cff6afc042c0ada6663f5239350521c9a34101f Mon Sep 17 00:00:00 2001 From: Garritt McCune Date: Mon, 18 Jan 2021 21:40:37 -0600 Subject: [PATCH] Solved the 'smaller' gates and probably not with the best solutions. --- projects/01/And.hdl | 2 ++ projects/01/And.out | 5 +++++ projects/01/DMux.hdl | 7 +++++++ projects/01/DMux.out | 5 +++++ projects/01/Mux.hdl | 13 +++++++++++++ projects/01/Mux.out | 9 +++++++++ projects/01/Not.hdl | 1 + projects/01/Not.out | 3 +++ projects/01/Or.hdl | 3 +++ projects/01/Or.out | 5 +++++ projects/01/Xor.hdl | 5 +++++ projects/01/Xor.out | 5 +++++ 12 files changed, 63 insertions(+) create mode 100644 projects/01/And.out create mode 100644 projects/01/DMux.out create mode 100644 projects/01/Mux.out create mode 100644 projects/01/Not.out create mode 100644 projects/01/Or.out create mode 100644 projects/01/Xor.out diff --git a/projects/01/And.hdl b/projects/01/And.hdl index 3ffb270..e9073fb 100644 --- a/projects/01/And.hdl +++ b/projects/01/And.hdl @@ -15,4 +15,6 @@ CHIP And { PARTS: // Put your code here: + Nand(a=a, b=b, out=out1); + Nand(a=out1, b=out1, out=out); } diff --git a/projects/01/And.out b/projects/01/And.out new file mode 100644 index 0000000..8199ca5 --- /dev/null +++ b/projects/01/And.out @@ -0,0 +1,5 @@ +| a | b | out | +| 0 | 0 | 0 | +| 0 | 1 | 0 | +| 1 | 0 | 0 | +| 1 | 1 | 1 | diff --git a/projects/01/DMux.hdl b/projects/01/DMux.hdl index ad66d18..353a912 100644 --- a/projects/01/DMux.hdl +++ b/projects/01/DMux.hdl @@ -15,4 +15,11 @@ CHIP DMux { PARTS: // Put your code here: + // AND in, sel + Nand(a=in, b=sel, out=out1); + Nand(a=out1, b=out1, out=b); + // NAND( (NOT sel), AND in) + Nand(a=sel, b=sel, out=out2); + Nand(a=in, b=out2, out=out3); + Nand(a=out3, b=out3, out=a); } diff --git a/projects/01/DMux.out b/projects/01/DMux.out new file mode 100644 index 0000000..9a92ec0 --- /dev/null +++ b/projects/01/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/projects/01/Mux.hdl b/projects/01/Mux.hdl index d5fd1d5..6ed77f8 100644 --- a/projects/01/Mux.hdl +++ b/projects/01/Mux.hdl @@ -15,4 +15,17 @@ CHIP Mux { PARTS: // Put your code here: + Nand(a=sel, b=b, out=out1); + Nand(a=out1, b=out1, out=out2); + + Nand(a=sel, b=sel, out=out3); + Nand(a=a, b=out3, out=out4); + Nand(a=out4, b=out4, out=out5); + + //Nand(a=out2, b=out5, out=out); + //Nand(a=out6, b=out6, out=out); + //OR + Nand(a=out2, b=out2, out=out6); + Nand(a=out5, b=out5, out=out7); + Nand(a=out6, b=out7, out=out); } \ No newline at end of file diff --git a/projects/01/Mux.out b/projects/01/Mux.out new file mode 100644 index 0000000..e4b51c6 --- /dev/null +++ b/projects/01/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/projects/01/Not.hdl b/projects/01/Not.hdl index 6f1135f..974d469 100644 --- a/projects/01/Not.hdl +++ b/projects/01/Not.hdl @@ -14,4 +14,5 @@ CHIP Not { PARTS: // Put your code here: + Nand(a=in, b=in, out=out); } \ No newline at end of file diff --git a/projects/01/Not.out b/projects/01/Not.out new file mode 100644 index 0000000..7b64092 --- /dev/null +++ b/projects/01/Not.out @@ -0,0 +1,3 @@ +| in | out | +| 0 | 1 | +| 1 | 0 | diff --git a/projects/01/Or.hdl b/projects/01/Or.hdl index a3800a6..4729e6b 100644 --- a/projects/01/Or.hdl +++ b/projects/01/Or.hdl @@ -15,4 +15,7 @@ CHIP Or { PARTS: // Put your code here: + Nand(a=a, b=a, out=out1); + Nand(a=b, b=b, out=out2); + Nand(a=out1, b=out2, out=out); } diff --git a/projects/01/Or.out b/projects/01/Or.out new file mode 100644 index 0000000..8010688 --- /dev/null +++ b/projects/01/Or.out @@ -0,0 +1,5 @@ +| a | b | out | +| 0 | 0 | 0 | +| 0 | 1 | 1 | +| 1 | 0 | 1 | +| 1 | 1 | 1 | diff --git a/projects/01/Xor.hdl b/projects/01/Xor.hdl index 14755bd..d7b826a 100644 --- a/projects/01/Xor.hdl +++ b/projects/01/Xor.hdl @@ -14,4 +14,9 @@ CHIP Xor { PARTS: // Put your code here: + Nand(a=a, b=a, out=out1); + Nand(a=b, b=b, out=out2); + Nand(a=out1, b=b, out=out3); + Nand(a=out2, b=a, out=out4); + Nand(a=out3, b=out4, out=out); } \ No newline at end of file diff --git a/projects/01/Xor.out b/projects/01/Xor.out new file mode 100644 index 0000000..73a8d0c --- /dev/null +++ b/projects/01/Xor.out @@ -0,0 +1,5 @@ +| a | b | out | +| 0 | 0 | 0 | +| 0 | 1 | 1 | +| 1 | 0 | 1 | +| 1 | 1 | 0 |