diff --git a/src/main/dig/cmos/eprom.dig b/src/main/dig/cmos/eprom.dig new file mode 100644 index 000000000..7885cb30d --- /dev/null +++ b/src/main/dig/cmos/eprom.dig @@ -0,0 +1,911 @@ + + + 1 + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_0 + + + + + + In + + + Label + A_1 + + + + + + PullUp + + + + + PullUp + + + + + PullUp + + + + + PullUp + + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_2 + + + + + + In + + + Label + A_3 + + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + Out + + + Label + Q + + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Testcase + + + Testdata + + A_0 A_1 A_2 A_3 Q + 0 0 0 0 0 + 0 0 0 1 0 + 0 0 1 0 0 + 0 0 1 1 0 + 0 1 0 0 0 + 0 1 0 1 0 + 0 1 1 0 1 + 0 1 1 1 0 + 1 0 0 0 0 + 1 0 0 1 1 + 1 0 1 0 0 + 1 0 1 1 0 + 1 1 0 0 0 + 1 1 0 1 0 + 1 1 1 0 0 + 1 1 1 1 0 + + + + + + + + Driver + + + flipSelPos + true + + + + + + In + + + Label + CS + + + Default + 1 + + + + + + Ground + + + + + Ground + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + Blown + true + + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + Blown + true + + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + FGNFET + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/cmos/openDrainOut.dig b/src/main/dig/cmos/openDrainBus.dig similarity index 54% rename from src/main/dig/cmos/openDrainOut.dig rename to src/main/dig/cmos/openDrainBus.dig index 7382f8500..d3b118ccd 100644 --- a/src/main/dig/cmos/openDrainOut.dig +++ b/src/main/dig/cmos/openDrainBus.dig @@ -4,88 +4,53 @@ NFET - - - - - In Label - A + T1 - + Ground - + NFET - - - - - In Label - B + T2 - + Ground - + NFET - - - - - In Label - C + T3 - + Ground - - - - NFET - - - - - In - - - Label - D - - - - - - Ground - - + PullUp - + Out @@ -95,7 +60,37 @@ Y - + + + + In + + + Label + C + + + + + + In + + + Label + B + + + + + + In + + + Label + A + + + Testcase @@ -103,102 +98,85 @@ Testdata - A B C D Y -0 0 0 0 1 -0 0 0 1 0 -0 0 1 0 0 -0 0 1 1 0 -0 1 0 0 0 -0 1 0 1 0 -0 1 1 0 0 -0 1 1 1 0 -1 0 0 0 0 -1 0 0 1 0 -1 0 1 0 0 -1 0 1 1 0 -1 1 0 0 0 -1 1 0 1 0 -1 1 1 0 0 -1 1 1 1 0 + A B C Y +0 0 0 1 +0 0 1 0 +0 1 0 0 +0 1 1 0 +1 0 0 0 +1 0 1 0 +1 1 0 0 +1 1 1 0 - + + + + Text + + + Label + $R$ + + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + \ No newline at end of file diff --git a/src/main/dig/cmos/prom.dig b/src/main/dig/cmos/prom.dig new file mode 100644 index 000000000..d30c603f2 --- /dev/null +++ b/src/main/dig/cmos/prom.dig @@ -0,0 +1,1133 @@ + + + 1 + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_0 + + + + + + In + + + Label + A_1 + + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_2 + + + + + + In + + + Label + A_3 + + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + Out + + + Label + Q + + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Testcase + + + Testdata + + A_0 A_1 A_2 A_3 Q + 0 0 0 0 0 + 0 0 0 1 0 + 0 0 1 0 0 + 0 0 1 1 0 + 0 1 0 0 0 + 0 1 0 1 0 + 0 1 1 0 1 + 0 1 1 1 0 + 1 0 0 0 0 + 1 0 0 1 1 + 1 0 1 0 0 + 1 0 1 1 0 + 1 1 0 0 0 + 1 1 0 1 0 + 1 1 1 0 0 + 1 1 1 1 0 + + + + + + + + Driver + + + flipSelPos + true + + + + + + In + + + Label + CS + + + Default + 1 + + + + + + NFET + + + + + Ground + + + + + NFET + + + + + Ground + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + Blown + true + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + Blown + true + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + DiodeBackward + + + rotation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/cmos/rom.dig b/src/main/dig/cmos/rom.dig new file mode 100644 index 000000000..41cf1ce6b --- /dev/null +++ b/src/main/dig/cmos/rom.dig @@ -0,0 +1,833 @@ + + + 1 + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_0 + + + + + + In + + + Label + A_1 + + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + PullUp + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + Decoder + + + Selector Bits + 2 + + + + + + Splitter + + + Input Splitting + 1,1 + + + Output Splitting + 2 + + + + + + In + + + Label + A_2 + + + + + + In + + + Label + A_3 + + + + + + NFET + + + + + NFET + + + + + NFET + + + + + NFET + + + + + Out + + + Label + Q + + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Ground + + + + + Testcase + + + Testdata + + A_0 A_1 A_2 A_3 Q + 0 0 0 0 0 + 0 0 0 1 0 + 0 0 1 0 0 + 0 0 1 1 0 + 0 1 0 0 0 + 0 1 0 1 0 + 0 1 1 0 1 + 0 1 1 1 0 + 1 0 0 0 0 + 1 0 0 1 1 + 1 0 1 0 0 + 1 0 1 1 0 + 1 1 0 0 0 + 1 1 0 1 0 + 1 1 1 0 0 + 1 1 1 1 0 + + + + + + + + Driver + + + flipSelPos + true + + + + + + In + + + Label + CS + + + Default + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 ab303c039..24ea8f083 100644 --- a/src/test/java/de/neemann/digital/integration/TestExamples.java +++ b/src/test/java/de/neemann/digital/integration/TestExamples.java @@ -28,8 +28,8 @@ public class TestExamples extends TestCase { */ public void testDistExamples() throws Exception { File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig"); - assertEquals(178, new FileScanner(this::check).scan(examples)); - assertEquals(79, testCasesInFiles); + assertEquals(181, new FileScanner(this::check).scan(examples)); + assertEquals(82, testCasesInFiles); } /**