diff --git a/src/main/dig/combinatorial/FullAddSub_RC.dig b/src/main/dig/combinatorial/FullAddSub_RC.dig index db82d9be9..9b88b7003 100644 --- a/src/main/dig/combinatorial/FullAddSub_RC.dig +++ b/src/main/dig/combinatorial/FullAddSub_RC.dig @@ -5,7 +5,7 @@ FullAdder.dig - + 0 @@ -16,7 +16,7 @@ S_0 - + 0 @@ -48,7 +48,7 @@ FullAdder.dig - + 0 @@ -59,7 +59,7 @@ S_1 - + 0 @@ -91,7 +91,7 @@ FullAdder.dig - + 0 @@ -102,7 +102,7 @@ S_2 - + 0 @@ -130,7 +130,7 @@ FullAdder.dig - + 0 @@ -141,7 +141,7 @@ S_3 - + 0 @@ -169,25 +169,25 @@ XOr - + 0 XOr - + 0 XOr - + 0 XOr - + 0 @@ -205,207 +205,207 @@ - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/FullAdderNaive.dig b/src/main/dig/combinatorial/FullAdderNaive.dig new file mode 100644 index 000000000..a94283871 --- /dev/null +++ b/src/main/dig/combinatorial/FullAdderNaive.dig @@ -0,0 +1,482 @@ + + + 1 + + + Width + 4 + + + + + In + + + Label + C_i-1 + + + + 0 + + + In + + + Label + A_i + + + + 0 + + + In + + + Label + B_i + + + + 0 + + + Out + + + Label + S_i + + + + 0 + + + Out + + + Label + C_i + + + + 0 + + + Not + + + rotation + + + + + 3 + + + And + + + Inputs + 3 + + + + 0 + + + Not + + + rotation + + + + + 3 + + + Not + + + rotation + + + + + 3 + + + And + + + Inputs + 3 + + + + 0 + + + And + + + Inputs + 3 + + + + 0 + + + And + + + Inputs + 3 + + + + 0 + + + Or + + + Inputs + 4 + + + + 0 + + + And + + + 0 + + + And + + + 0 + + + And + + + 0 + + + Or + + + Inputs + 3 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/FullSub.dig b/src/main/dig/combinatorial/FullSub.dig index e16f68dae..1f97c683a 100644 --- a/src/main/dig/combinatorial/FullSub.dig +++ b/src/main/dig/combinatorial/FullSub.dig @@ -1,266 +1,147 @@ - 1 - - - In - - - Label - A - - - - 0 - - - In - - - Label - B - - - - 0 - - - In - - - Label - BO0 - - - - 0 - - - HalfSub.dig - - - 0 - - - HalfAdder.dig - - - 0 - - - Out - - - Label - S - - - - 0 - - - Or - - - 0 - - - Out - - - Label - BO1 - - - - 0 - - - In - - - Label - A - - - - 0 - - - In - - - Label - B - - - - 0 - - - In - - - Label - BO0 - - - - 0 - - - Out - - - Label - S - - - - 0 - - - Out - - - Label - BO1 - - - - 0 - - - HalfSub.dig - - - 0 - - - HalfSub.dig - - - 0 - - - Or - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + + + Description + FullSub + + + Width + 4 + + + + + In + + + Label + A_i + + + + 0 + + + In + + + Label + B_i + + + + 0 + + + In + + + Label + BO_i-1 + + + + 0 + + + HalfSub.dig + + + 0 + + + HalfAdder.dig + + + 0 + + + Out + + + Label + BO_i + + + + 0 + + + Or + + + 0 + + + Out + + + Label + S_i + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/FullSub2.dig b/src/main/dig/combinatorial/FullSub2.dig new file mode 100644 index 000000000..8faca3941 --- /dev/null +++ b/src/main/dig/combinatorial/FullSub2.dig @@ -0,0 +1,137 @@ + + + 1 + + + In + + + Label + $A$ + + + + 0 + + + In + + + Label + $B$ + + + + 0 + + + In + + + Label + BO_0 + + + + 0 + + + Out + + + Label + $S$ + + + + 0 + + + Out + + + Label + BO_1 + + + + 0 + + + HalfSub.dig + + + 0 + + + HalfSub.dig + + + 0 + + + Or + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/FullSubNaive.dig b/src/main/dig/combinatorial/FullSubNaive.dig new file mode 100644 index 000000000..c73132251 --- /dev/null +++ b/src/main/dig/combinatorial/FullSubNaive.dig @@ -0,0 +1,486 @@ + + + 1 + + + Width + 4 + + + + + In + + + Label + $A$ + + + + 0 + + + In + + + Label + $B$ + + + + 0 + + + In + + + Label + BO_i-1 + + + + 0 + + + Out + + + Label + $S$ + + + + 0 + + + Out + + + Label + BO_i + + + + 0 + + + Not + + + rotation + + + + + 3 + + + And + + + Inputs + 3 + + + + 0 + + + Not + + + rotation + + + + + 3 + + + Not + + + rotation + + + + + 3 + + + And + + + Inputs + 3 + + + + 0 + + + And + + + Inputs + 3 + + + + 0 + + + And + + + Inputs + 3 + + + + 0 + + + Or + + + Inputs + 4 + + + + 0 + + + And + + + 0 + + + And + + + 0 + + + And + + + 0 + + + Or + + + Inputs + 3 + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/FullSubRC.dig b/src/main/dig/combinatorial/FullSubRC.dig new file mode 100644 index 000000000..f9acee8eb --- /dev/null +++ b/src/main/dig/combinatorial/FullSubRC.dig @@ -0,0 +1,350 @@ + + + 1 + + + Out + + + Label + S_0 + + + + 0 + + + In + + + Label + A_0 + + + + 0 + + + In + + + Label + B_0 + + + + 0 + + + Out + + + Label + S_1 + + + + 0 + + + In + + + Label + A_1 + + + + 0 + + + In + + + Label + B_1 + + + + 0 + + + Out + + + Label + S_2 + + + + 0 + + + In + + + Label + A_2 + + + + 0 + + + In + + + Label + B_2 + + + + 0 + + + Out + + + Label + S_3 + + + + 0 + + + In + + + Label + A_3 + + + + 0 + + + In + + + Label + B_3 + + + + 0 + + + Out + + + Label + C_3 + + + + 0 + + + In + + + Label + C_-1 + + + + 0 + + + FullSub.dig + + + 0 + + + FullSub.dig + + + 0 + + + FullSub.dig + + + 0 + + + FullSub.dig + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/combinatorial/HalfAdder.dig b/src/main/dig/combinatorial/HalfAdder.dig index c44f3743b..a9e48725a 100644 --- a/src/main/dig/combinatorial/HalfAdder.dig +++ b/src/main/dig/combinatorial/HalfAdder.dig @@ -19,7 +19,7 @@ Label - A + $A$ @@ -30,7 +30,7 @@ Label - B + $B$ @@ -41,7 +41,7 @@ Label - S + $S$ @@ -52,7 +52,7 @@ Label - C + $C$ diff --git a/src/main/dig/combinatorial/HalfSub.dig b/src/main/dig/combinatorial/HalfSub.dig index d7908ba64..ce1d30981 100644 --- a/src/main/dig/combinatorial/HalfSub.dig +++ b/src/main/dig/combinatorial/HalfSub.dig @@ -1,114 +1,114 @@ - 1 - - - XOr - - - 0 - - - And - - - 0 - - - In - - - Label - A - - - - 0 - - - In - - - Label - B - - - - 0 - - - Out - - - Label - S - - - - 0 - - - Out - - - Label - BO - - - - 0 - - - Not - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + 1 + + + XOr + + + 0 + + + And + + + 0 + + + In + + + Label + $A$ + + + + 0 + + + In + + + Label + $B$ + + + + 0 + + + Out + + + Label + $S$ + + + + 0 + + + Out + + + Label + $BO$ + + + + 0 + + + Not + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/lang/lang_de.properties b/src/main/resources/lang/lang_de.properties index 26fe9b3b7..a9831739b 100644 --- a/src/main/resources/lang/lang_de.properties +++ b/src/main/resources/lang/lang_de.properties @@ -126,7 +126,7 @@ elem_RAMSinglePort_pin_d=Der bidirektionale Datenanschlu\u00DF. elem_Counter=Z\u00E4hler elem_Add=Addierer -elem_Sub=Subtraktor +elem_Sub=Subtrahierer elem_Mul=Multiplikator elem_Comparator=Komparator diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index 20450998e..1a1b099b6 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -18,7 +18,7 @@ public class TestExamples extends TestCase { private static final File examples=new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); public void testCombinatorial() throws Exception { - assertEquals(19, scan(new File(examples, "combinatorial"))); + assertEquals(23, scan(new File(examples, "combinatorial"))); } public void testSequential() throws Exception {