diff --git a/src/main/dig/lib/74xx/arithmetic/74283.dig b/src/main/dig/lib/74xx/arithmetic/74283.dig new file mode 100644 index 000000000..80057f3fd --- /dev/null +++ b/src/main/dig/lib/74xx/arithmetic/74283.dig @@ -0,0 +1,516 @@ + + + 1 + + + isDIL + true + + + Description + 4-bit binary full adder, alternative pinning + + + lockedMode + true + + + + + In + + + Description + Der Übertrag vom Addierer welcher die +niederwertigeren Bits addiert. Werden die +niederwertigsten Bits addiert, ist dieser Eingang +Null. + + + Label + C0 + + + pinNumber + 7 + + + + + + In + + + Description + Das 0. Bit des ersten zu addierenden Wertes. + + + Label + B1 + + + pinNumber + 6 + + + Default + 1 + + + + + + In + + + Description + Das 1. Bit des ersten zu addierenden Wertes. + + + Label + B2 + + + pinNumber + 2 + + + + + + Out + + + Description + Das 0. Bit der Summe. + + + Label + S1 + + + pinNumber + 4 + + + + + + In + + + Description + Das 2. Bit des ersten zu addierenden Wertes. + + + Label + B3 + + + pinNumber + 15 + + + + + + In + + + Description + Das 3. Bit des ersten zu addierenden Wertes. + + + Label + B4 + + + pinNumber + 11 + + + Default + 1 + + + + + + Out + + + Description + Das 1. Bit der Summe. + + + Label + S2 + + + pinNumber + 1 + + + + + + Out + + + Description + Das 2. Bit der Summe. + + + Label + S3 + + + pinNumber + 13 + + + + + + In + + + Description + Das 0. Bit des zweiten zu addierenden Wertes. + + + Label + A1 + + + pinNumber + 5 + + + + + + In + + + Description + Das 1. Bit des zweiten zu addierenden Wertes. + + + Label + A2 + + + pinNumber + 3 + + + Default + 1 + + + + + + In + + + Description + Das 2. Bit des zweiten zu addierenden Wertes. + + + Label + A3 + + + pinNumber + 14 + + + Default + 1 + + + + + + In + + + Description + Das 3. Bit des zweiten zu addierenden Wertes. + + + Label + A4 + + + pinNumber + 12 + + + + + + Out + + + Description + Das 3. Bit der Summe. + + + Label + S4 + + + pinNumber + 10 + + + + + + Out + + + Description + Das Übertragsbit, welches an den Adiierer für die +nächst höherwertigen Bits weitergegeben wird. + + + Label + C4 + + + pinNumber + 9 + + + + + + Testcase + + + Testdata + + # A complete test of all 512 possible additions +# +# A line that begins with "repeat([i])" is repeated [i] times. +# In this case 256 times. Then the variable n goes from 0 to 255. +# So the values for the inputs are calculated depending on n. +# The function "bits([m],[v])" takes the lowest m bits from the value v. +# The expression "bits(4,n>>4)" takes the lowest 4 bits of the value +# n>>4. Then the resulting bits are used for the inputs A_3 to A_0. +# All created test vectors are shown in the result table. + + C0 A4 A3 A2 A1 B4 B3 B2 B1 C4 S4 S3 S2 S1 +repeat(256) 0 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)) +repeat(256) 1 bits(4,n>>4) bits(4,n) bits(5,(n>>4)+(n&15)+1) + + + + + + + + Add + + + Bits + 4 + + + + + + Splitter + + + Input Splitting + 1*4 + + + Output Splitting + 4 + + + + + + Splitter + + + Input Splitting + 1*4 + + + Output Splitting + 4 + + + + + + Splitter + + + Input Splitting + 4 + + + Output Splitting + 1*4 + + + + + + PowerSupply + + + + + In + + + Label + VCC + + + pinNumber + 16 + + + InDefault + + + + + + + In + + + Label + GND + + + pinNumber + 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/lib/74xx/basic/74266.dig b/src/main/dig/lib/74xx/basic/74266.dig new file mode 100644 index 000000000..3ccd2144e --- /dev/null +++ b/src/main/dig/lib/74xx/basic/74266.dig @@ -0,0 +1,311 @@ + + + 1 + + + isDIL + true + + + Description + quad 2-input XNOR gate + + + lockedMode + true + + + + + In + + + Label + 1A + + + pinNumber + 1 + + + + + + In + + + Label + 1B + + + pinNumber + 2 + + + + + + Out + + + Label + 1Y + + + pinNumber + 3 + + + + + + In + + + Label + 2A + + + pinNumber + 5 + + + + + + In + + + Label + 2B + + + pinNumber + 6 + + + + + + Out + + + Label + 2Y + + + pinNumber + 4 + + + + + + In + + + Label + 3B + + + pinNumber + 9 + + + + + + In + + + Label + 3A + + + pinNumber + 8 + + + + + + Out + + + Label + 3Y + + + pinNumber + 10 + + + + + + In + + + Label + 4A + + + pinNumber + 12 + + + + + + In + + + Label + 4B + + + pinNumber + 13 + + + + + + Out + + + Label + 4Y + + + pinNumber + 11 + + + + + + PowerSupply + + + + + In + + + Label + VCC + + + pinNumber + 14 + + + InDefault + + + + + + + In + + + Label + GND + + + pinNumber + 7 + + + + + + XNOr + + + + + XNOr + + + + + XNOr + + + + + XNOr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 80696755d..e1b3017b6 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -29,8 +29,8 @@ public class TestExamples extends TestCase { */ public void testDistExamples() throws Exception { File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); - assertEquals(208, new FileScanner(this::check).scan(examples)); - assertEquals(116, testCasesInFiles); + assertEquals(210, new FileScanner(this::check).scan(examples)); + assertEquals(117, testCasesInFiles); } /**