adds IC 74779, closes #113

This commit is contained in:
hneemann 2018-02-22 14:45:44 +01:00
parent 10e7b8ecb2
commit 76f8a16bab
6 changed files with 3419 additions and 8 deletions

View File

@ -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.

View File

@ -0,0 +1,312 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes>
<entry>
<string>pinCount</string>
<int>1</int>
</entry>
<entry>
<string>Description</string>
<string>flip flop part of 74779</string>
</entry>
<entry>
<string>lockedMode</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Width</string>
<int>5</int>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>D_FF</elementName>
<elementAttributes/>
<pos x="900" y="220"/>
</visualElement>
<visualElement>
<elementName>Or</elementName>
<elementAttributes>
<entry>
<string>Inputs</string>
<int>3</int>
</entry>
</elementAttributes>
<pos x="800" y="200"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>Inputs</string>
<int>3</int>
</entry>
</elementAttributes>
<pos x="700" y="200"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>Inputs</string>
<int>3</int>
</entry>
</elementAttributes>
<pos x="700" y="300"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="700" y="100"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>DATA</string>
</entry>
<entry>
<string>pinNumber</string>
<string>1</string>
</entry>
<entry>
<string>isHighZ</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="480" y="100"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>LOAD</string>
</entry>
<entry>
<string>pinNumber</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="480" y="200"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="580" y="200"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="580" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="3"/>
</entry>
<entry>
<string>Label</string>
<string>~TOGGLE</string>
</entry>
</elementAttributes>
<pos x="540" y="60"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q</string>
</entry>
<entry>
<string>pinNumber</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="1040" y="220"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>~Q</string>
</entry>
<entry>
<string>pinNumber</string>
<string>3</string>
</entry>
</elementAttributes>
<pos x="1040" y="260"/>
</visualElement>
<visualElement>
<elementName>Clock</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="3"/>
</entry>
<entry>
<string>Label</string>
<string>CP</string>
</entry>
</elementAttributes>
<pos x="880" y="60"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="760" y="320"/>
<p2 x="780" y="320"/>
</wire>
<wire>
<p1 x="540" y="320"/>
<p2 x="580" y="320"/>
</wire>
<wire>
<p1 x="620" y="320"/>
<p2 x="700" y="320"/>
</wire>
<wire>
<p1 x="780" y="240"/>
<p2 x="800" y="240"/>
</wire>
<wire>
<p1 x="640" y="240"/>
<p2 x="700" y="240"/>
</wire>
<wire>
<p1 x="880" y="240"/>
<p2 x="900" y="240"/>
</wire>
<wire>
<p1 x="960" y="240"/>
<p2 x="980" y="240"/>
</wire>
<wire>
<p1 x="480" y="100"/>
<p2 x="700" y="100"/>
</wire>
<wire>
<p1 x="680" y="340"/>
<p2 x="700" y="340"/>
</wire>
<wire>
<p1 x="640" y="420"/>
<p2 x="1000" y="420"/>
</wire>
<wire>
<p1 x="980" y="260"/>
<p2 x="1040" y="260"/>
</wire>
<wire>
<p1 x="760" y="120"/>
<p2 x="780" y="120"/>
</wire>
<wire>
<p1 x="780" y="200"/>
<p2 x="800" y="200"/>
</wire>
<wire>
<p1 x="480" y="200"/>
<p2 x="560" y="200"/>
</wire>
<wire>
<p1 x="620" y="200"/>
<p2 x="680" y="200"/>
</wire>
<wire>
<p1 x="680" y="200"/>
<p2 x="700" y="200"/>
</wire>
<wire>
<p1 x="560" y="200"/>
<p2 x="580" y="200"/>
</wire>
<wire>
<p1 x="680" y="380"/>
<p2 x="980" y="380"/>
</wire>
<wire>
<p1 x="760" y="220"/>
<p2 x="800" y="220"/>
</wire>
<wire>
<p1 x="860" y="220"/>
<p2 x="900" y="220"/>
</wire>
<wire>
<p1 x="540" y="220"/>
<p2 x="700" y="220"/>
</wire>
<wire>
<p1 x="960" y="220"/>
<p2 x="1000" y="220"/>
</wire>
<wire>
<p1 x="1000" y="220"/>
<p2 x="1040" y="220"/>
</wire>
<wire>
<p1 x="560" y="140"/>
<p2 x="700" y="140"/>
</wire>
<wire>
<p1 x="680" y="300"/>
<p2 x="700" y="300"/>
</wire>
<wire>
<p1 x="640" y="240"/>
<p2 x="640" y="420"/>
</wire>
<wire>
<p1 x="880" y="60"/>
<p2 x="880" y="240"/>
</wire>
<wire>
<p1 x="560" y="140"/>
<p2 x="560" y="200"/>
</wire>
<wire>
<p1 x="980" y="240"/>
<p2 x="980" y="260"/>
</wire>
<wire>
<p1 x="980" y="260"/>
<p2 x="980" y="380"/>
</wire>
<wire>
<p1 x="1000" y="220"/>
<p2 x="1000" y="420"/>
</wire>
<wire>
<p1 x="680" y="200"/>
<p2 x="680" y="300"/>
</wire>
<wire>
<p1 x="680" y="340"/>
<p2 x="680" y="380"/>
</wire>
<wire>
<p1 x="540" y="60"/>
<p2 x="540" y="220"/>
</wire>
<wire>
<p1 x="540" y="220"/>
<p2 x="540" y="320"/>
</wire>
<wire>
<p1 x="780" y="240"/>
<p2 x="780" y="320"/>
</wire>
<wire>
<p1 x="780" y="120"/>
<p2 x="780" y="200"/>
</wire>
</wires>
</circuit>

File diff suppressed because it is too large Load Diff

View File

@ -83,7 +83,7 @@ public class LibraryNode implements Iterable<LibraryNode> {
else
translatedName = name;
isHidden = isLibrary && name.startsWith("_");
isHidden = isLibrary && name.endsWith("-inc.dig");
this.file = file;
}

View File

@ -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);
}
/**

View File

@ -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));