From 6b33d96693d37f0f76070a7257d79287d484e64f Mon Sep 17 00:00:00 2001 From: hneemann Date: Tue, 24 Apr 2018 22:16:02 +0200 Subject: [PATCH] added a 7485 real gate implementation --- src/main/dig/lib/74xx/arithmetic/7485.dig | 69 +- src/main/dig/lib/74xx/arithmetic/7485Real.dig | 1415 +++++++++++++++++ .../digital/integration/TestExamples.java | 4 +- 3 files changed, 1456 insertions(+), 32 deletions(-) create mode 100644 src/main/dig/lib/74xx/arithmetic/7485Real.dig diff --git a/src/main/dig/lib/74xx/arithmetic/7485.dig b/src/main/dig/lib/74xx/arithmetic/7485.dig index 8178579a3..5f62a5a0a 100644 --- a/src/main/dig/lib/74xx/arithmetic/7485.dig +++ b/src/main/dig/lib/74xx/arithmetic/7485.dig @@ -25,7 +25,7 @@ pinNumber - 10 + 10 @@ -39,7 +39,7 @@ pinNumber - 12 + 12 @@ -53,7 +53,7 @@ pinNumber - 13 + 13 @@ -67,7 +67,7 @@ pinNumber - 15 + 15 @@ -81,7 +81,7 @@ pinNumber - 2 + 2 @@ -95,7 +95,7 @@ pinNumber - 3 + 3 @@ -109,7 +109,7 @@ pinNumber - 4 + 4 @@ -123,7 +123,7 @@ pinNumber - 9 + 9 @@ -137,7 +137,7 @@ pinNumber - 11 + 11 @@ -151,7 +151,7 @@ pinNumber - 14 + 14 @@ -165,7 +165,7 @@ pinNumber - 1 + 1 @@ -194,7 +194,7 @@ pinNumber - 7 + 7 @@ -208,7 +208,7 @@ pinNumber - 6 + 6 @@ -222,25 +222,11 @@ pinNumber - 5 + 5 - - Testcase - - - Testdata - - P<Q_i P=Q_i P>Q_i P_3 P_2 P_1 P_0 Q_3 Q_2 Q_1 Q_0 P<Q P=Q P>Q -repeat(256) 0 1 0 bits(4,n>>4) bits(4,n) ((n>>4)<(n&15)) ((n>>4)=(n&15)) ((n>>4)>(n&15)) -repeat(2<<(3+4)) bits(3,n) bits(4,n>>3) bits(4,n>>3) bits(3,n) - - - - - Comparator @@ -293,7 +279,7 @@ repeat(2<<(3+4)) bits(3,n) bits(4,n>>3) bits(4,n>>3) pinNumber - 16 + 16 InDefault @@ -311,11 +297,34 @@ repeat(2<<(3+4)) bits(3,n) bits(4,n>>3) bits(4,n>>3) pinNumber - 8 + 8 + + Testcase + + + Testdata + + P<Q_i P=Q_i P>Q_i P_3 P_2 P_1 P_0 Q_3 Q_2 Q_1 Q_0 P<Q P=Q P>Q +loop(P,16) + loop(Q,16) + 0 1 0 bits(4,P) bits(4,Q) (P<Q) (P=Q) (P>Q) + end loop +end loop + +loop (i,16) + loop (n,8) + bits(3,n) bits(4,i) bits(4,i) bits(3,n) + end loop +end loop + + + + + diff --git a/src/main/dig/lib/74xx/arithmetic/7485Real.dig b/src/main/dig/lib/74xx/arithmetic/7485Real.dig new file mode 100644 index 000000000..4349602d5 --- /dev/null +++ b/src/main/dig/lib/74xx/arithmetic/7485Real.dig @@ -0,0 +1,1415 @@ + + + 1 + + + isDIL + true + + + Description + 4-bit comparator, real gates + + + lockedMode + true + + + + + NAnd + + + + + And + + + + + And + + + + + NOr + + + + + NAnd + + + + + And + + + + + And + + + + + NOr + + + + + NAnd + + + + + And + + + + + And + + + + + NOr + + + + + NAnd + + + + + And + + + + + And + + + + + NOr + + + + + In + + + Label + P<Q_i + + + pinNumber + 2 + + + + + + In + + + Label + P=Q_i + + + pinNumber + 3 + + + + + + In + + + Label + P>Q_i + + + pinNumber + 4 + + + + + + Out + + + Label + P<Q + + + pinNumber + 7 + + + + + + Out + + + Label + P=Q + + + pinNumber + 6 + + + + + + Out + + + Label + P>Q + + + pinNumber + 5 + + + + + + Testcase + + + Testdata + + P<Q_i P=Q_i P>Q_i P_3 P_2 P_1 P_0 Q_3 Q_2 Q_1 Q_0 P<Q P=Q P>Q +loop(P,16) + loop(Q,16) + 0 1 0 bits(4,P) bits(4,Q) (P<Q) (P=Q) (P>Q) + end loop +end loop + +loop (i,16) + 0 1 0 bits(4,i) bits(4,i) 0 1 0 + 1 0 0 bits(4,i) bits(4,i) 1 0 0 + 0 0 1 bits(4,i) bits(4,i) 0 0 1 +end loop + + + + + + + NAnd + + + + + NAnd + + + + + NAnd + + + Inputs + 3 + + + + + + NAnd + + + Inputs + 4 + + + + + + NAnd + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 5 + + + + + + And + + + Inputs + 6 + + + + + + And + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 5 + + + + + + NAnd + + + Inputs + 4 + + + + + + NAnd + + + Inputs + 3 + + + + + + And + + + Inputs + 6 + + + + + + In + + + Label + P_0 + + + pinNumber + 10 + + + + + + In + + + Label + P_1 + + + pinNumber + 12 + + + + + + In + + + Label + P_2 + + + pinNumber + 13 + + + + + + In + + + Label + P_3 + + + pinNumber + 15 + + + + + + In + + + Label + Q_0 + + + pinNumber + 9 + + + + + + In + + + Label + Q_1 + + + pinNumber + 11 + + + + + + In + + + Label + Q_2 + + + pinNumber + 14 + + + + + + In + + + Label + Q_3 + + + pinNumber + 1 + + + + + + PowerSupply + + + + + In + + + Label + VCC + + + pinNumber + 16 + + + InDefault + + + + + + + In + + + Label + GND + + + pinNumber + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index 55b579874..7484d8c5a 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -33,8 +33,8 @@ public class TestExamples extends TestCase { public void testDistExamples() throws Exception { File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); testCasesInFiles = 0; - assertEquals(242, new FileScanner(TestExamples::check).scan(examples)); - assertEquals(162, testCasesInFiles); + assertEquals(243, new FileScanner(TestExamples::check).scan(examples)); + assertEquals(163, testCasesInFiles); } /**