From 76f8a16bab5f10b22fd1595804480d6cc00f8fbb Mon Sep 17 00:00:00 2001 From: hneemann Date: Thu, 22 Feb 2018 14:45:44 +0100 Subject: [PATCH] adds IC 74779, closes #113 --- distribution/ReleaseNotes.txt | 8 +- src/main/dig/lib/74xx/counter/74779-inc.dig | 312 ++ src/main/dig/lib/74xx/counter/74779.dig | 3099 +++++++++++++++++ .../digital/draw/library/LibraryNode.java | 2 +- .../digital/integration/TestExamples.java | 4 +- .../neemann/digital/integration/TestLib.java | 2 +- 6 files changed, 3419 insertions(+), 8 deletions(-) create mode 100644 src/main/dig/lib/74xx/counter/74779-inc.dig create mode 100644 src/main/dig/lib/74xx/counter/74779.dig diff --git a/distribution/ReleaseNotes.txt b/distribution/ReleaseNotes.txt index abd1f3402..089d59ba4 100644 --- a/distribution/ReleaseNotes.txt +++ b/distribution/ReleaseNotes.txt @@ -1,13 +1,13 @@ Release Notes HEAD, planed as v0.18 -- Added 74181, 7440, 7428 +- Added ICs 74181, 74779, 7440 and 7428 - Added new text formatting engine which supports overline, super- and subscript. Try "~Q_{n+1}^1" as an output label. - It's possible to test circuits with a high-z input which can act as an output. -- Embedded circuits which are used in the library and which names first character is a - underscore '_' are not shown in the components menu. They are usable but hidden - in the menu and in the tree view. +- A embedded circuits which is used in the library and which names ends with '-inc.dig' + is not shown in the components menu. They are usable but hidden in the menu and in + the tree view. v0.17, released on 19. Feb 2018 - Added 64 bit support for Add and Sub components. diff --git a/src/main/dig/lib/74xx/counter/74779-inc.dig b/src/main/dig/lib/74xx/counter/74779-inc.dig new file mode 100644 index 000000000..ba9ea20c0 --- /dev/null +++ b/src/main/dig/lib/74xx/counter/74779-inc.dig @@ -0,0 +1,312 @@ + + + 1 + + + pinCount + 1 + + + Description + flip flop part of 74779 + + + lockedMode + true + + + Width + 5 + + + + + D_FF + + + + + Or + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + + + In + + + Label + DATA + + + pinNumber + 1 + + + isHighZ + true + + + + + + In + + + Label + LOAD + + + pinNumber + 2 + + + + + + Not + + + + + Not + + + + + In + + + rotation + + + + Label + ~TOGGLE + + + + + + Out + + + Label + Q + + + pinNumber + 4 + + + + + + Out + + + Label + ~Q + + + pinNumber + 3 + + + + + + Clock + + + rotation + + + + Label + CP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/dig/lib/74xx/counter/74779.dig b/src/main/dig/lib/74xx/counter/74779.dig new file mode 100644 index 000000000..2039802cd --- /dev/null +++ b/src/main/dig/lib/74xx/counter/74779.dig @@ -0,0 +1,3099 @@ + + + 1 + + + isDIL + true + + + pinCount + 16 + + + Description + 8-Bit Bidirectional Binary Counter with 3-STATE Outputs + + + lockedMode + true + + + + + In + + + rotation + + + + Label + CP + + + pinNumber + 15 + + + + + + Not + + + + + NOr + + + + + NOr + + + + + NOr + + + + + NOr + + + + + NOr + + + + + NOr + + + + + NOr + + + + + In + + + Label + S0 + + + pinNumber + 11 + + + + + + In + + + Label + S1 + + + pinNumber + 10 + + + + + + Not + + + + + Not + + + + + And + + + + + And + + + + + And + + + + + Not + + + + + Not + + + + + In + + + Label + ~OE + + + pinNumber + 9 + + + InDefault + + + + + + + Not + + + + + In + + + Label + I/O0 + + + pinNumber + 16 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O1 + + + pinNumber + 1 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O2 + + + pinNumber + 2 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O3 + + + pinNumber + 3 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O4 + + + pinNumber + 5 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O5 + + + pinNumber + 6 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O6 + + + pinNumber + 7 + + + isHighZ + true + + + InDefault + + + + + + + In + + + Label + I/O7 + + + pinNumber + 8 + + + isHighZ + true + + + InDefault + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + Driver + + + rotation + + + + + + + In + + + Label + ~CET + + + pinNumber + 14 + + + InDefault + + + + + + + Out + + + Label + ~TC + + + pinNumber + 12 + + + + + + Not + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + Not + + + rotation + + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 5 + + + + + + And + + + Inputs + 5 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 3 + + + + + + And + + + + + And + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 3 + + + + + + And + + + Inputs + 4 + + + + + + And + + + + + And + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 4 + + + + + + And + + + + + And + + + + + And + + + Inputs + 5 + + + + + + And + + + Inputs + 5 + + + + + + And + + + Inputs + 4 + + + + + + And + + + Inputs + 4 + + + + + + And + + + + + And + + + + + And + + + rotation + + + + Inputs + 5 + + + + + + And + + + rotation + + + + Inputs + 5 + + + + + + And + + + rotation + + + + Inputs + 5 + + + + + + And + + + rotation + + + + Inputs + 5 + + + + + + And + + + rotation + + + + + + + And + + + rotation + + + + + + + NOr + + + + + PowerSupply + + + + + In + + + Label + VCC + + + pinNumber + 13 + + + InDefault + + + + + + + In + + + Label + GND + + + pinNumber + 4 + + + + + + Testcase + + + Testdata + + S1 S0 ~CET ~OE CP I/O7 I/O6 I/O5 I/O4 I/O3 I/O2 I/O1 I/O0 I/O7_out I/O6_out I/O5_out I/O4_out I/O3_out I/O2_out I/O1_out I/O0_out ~TC +0 0 0 1 C bits(8,1) bits(8,1) 1 +x x x 1 0 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z 1 +loop(n,256) +0 0 0 1 C bits(8,n) bits(8,n) 1 +0 0 0 0 0 Z Z Z Z Z Z Z Z bits(8,n) 1 +0 0 1 1 C bits(8,n) bits(8,n) 1 +0 0 1 0 0 Z Z Z Z Z Z Z Z bits(8,n) 1 + +1 0 1 0 C Z Z Z Z Z Z Z Z bits(8,n) 1 +0 1 1 0 C Z Z Z Z Z Z Z Z bits(8,n) 1 +1 1 1 0 C Z Z Z Z Z Z Z Z bits(8,n) 1 +end loop + +loop(n,255) +1 0 0 0 C Z Z Z Z Z Z Z Z bits(8,n) 1 +end loop +1 0 0 0 C Z Z Z Z Z Z Z Z bits(8,-1) 0 + +loop(n,254) +0 1 0 0 C Z Z Z Z Z Z Z Z bits(8,254-n) 1 +end loop +0 1 0 0 C Z Z Z Z Z Z Z Z bits(8,0) 0 + + + + + + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + 74779-inc.dig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/de/neemann/digital/draw/library/LibraryNode.java b/src/main/java/de/neemann/digital/draw/library/LibraryNode.java index 3c7f920ec..24d47b276 100644 --- a/src/main/java/de/neemann/digital/draw/library/LibraryNode.java +++ b/src/main/java/de/neemann/digital/draw/library/LibraryNode.java @@ -83,7 +83,7 @@ public class LibraryNode implements Iterable { else translatedName = name; - isHidden = isLibrary && name.startsWith("_"); + isHidden = isLibrary && name.endsWith("-inc.dig"); this.file = file; } diff --git a/src/test/java/de/neemann/digital/integration/TestExamples.java b/src/test/java/de/neemann/digital/integration/TestExamples.java index 51689fc72..bcf45ff3f 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(214, new FileScanner(this::check).scan(examples)); - assertEquals(159, testCasesInFiles); + assertEquals(216, new FileScanner(this::check).scan(examples)); + assertEquals(160, testCasesInFiles); } /** diff --git a/src/test/java/de/neemann/digital/integration/TestLib.java b/src/test/java/de/neemann/digital/integration/TestLib.java index 51a5c56d9..05da8489c 100644 --- a/src/test/java/de/neemann/digital/integration/TestLib.java +++ b/src/test/java/de/neemann/digital/integration/TestLib.java @@ -33,7 +33,7 @@ public class TestLib extends TestCase { private void check(File dig) throws PinException, NodeException, ElementNotFoundException, IOException { Circuit circuit = new ToBreakRunner(dig).getCircuit(); - boolean is74xx = dig.getPath().contains("74xx") && !dig.getName().startsWith("_"); + boolean is74xx = dig.getPath().contains("74xx") && !dig.getName().endsWith("-inc.dig"); if (is74xx) { assertTrue("is not DIL", circuit.getAttributes().get(Keys.IS_DIL));