added 74670

This commit is contained in:
hneemann 2018-03-03 13:55:29 +01:00
parent ec9d8e29a5
commit bc6bbbeae8
3 changed files with 1064 additions and 1 deletions

View File

@ -0,0 +1,428 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes>
<entry>
<string>Description</string>
<string>unclocked 4 bit D-latch</string>
</entry>
<entry>
<string>lockedMode</string>
<boolean>true</boolean>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>RS_FF_AS</elementName>
<elementAttributes/>
<pos x="500" y="200"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>splitterSpreading</string>
<int>7</int>
</entry>
<entry>
<string>Input Splitting</string>
<string>1*4</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="580" y="200"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>splitterSpreading</string>
<int>7</int>
</entry>
<entry>
<string>Input Splitting</string>
<string>4</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>1*4</string>
</entry>
</elementAttributes>
<pos x="300" y="200"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="400" y="160"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>inverterConfig</string>
<inverterConfig>
<string>In_2</string>
</inverterConfig>
</entry>
</elementAttributes>
<pos x="400" y="220"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D</string>
</entry>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="260" y="200"/>
</visualElement>
<visualElement>
<elementName>RS_FF_AS</elementName>
<elementAttributes/>
<pos x="500" y="340"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="400" y="300"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>inverterConfig</string>
<inverterConfig>
<string>In_2</string>
</inverterConfig>
</entry>
</elementAttributes>
<pos x="400" y="360"/>
</visualElement>
<visualElement>
<elementName>RS_FF_AS</elementName>
<elementAttributes/>
<pos x="500" y="480"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="400" y="440"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>inverterConfig</string>
<inverterConfig>
<string>In_2</string>
</inverterConfig>
</entry>
</elementAttributes>
<pos x="400" y="500"/>
</visualElement>
<visualElement>
<elementName>RS_FF_AS</elementName>
<elementAttributes/>
<pos x="500" y="620"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes/>
<pos x="400" y="580"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>inverterConfig</string>
<inverterConfig>
<string>In_2</string>
</inverterConfig>
</entry>
</elementAttributes>
<pos x="400" y="640"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q</string>
</entry>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="640" y="200"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>G</string>
</entry>
</elementAttributes>
<pos x="260" y="160"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="260" y="160"/>
<p2 x="360" y="160"/>
</wire>
<wire>
<p1 x="360" y="160"/>
<p2 x="400" y="160"/>
</wire>
<wire>
<p1 x="460" y="320"/>
<p2 x="480" y="320"/>
</wire>
<wire>
<p1 x="480" y="480"/>
<p2 x="500" y="480"/>
</wire>
<wire>
<p1 x="560" y="480"/>
<p2 x="580" y="480"/>
</wire>
<wire>
<p1 x="320" y="480"/>
<p2 x="340" y="480"/>
</wire>
<wire>
<p1 x="340" y="480"/>
<p2 x="400" y="480"/>
</wire>
<wire>
<p1 x="480" y="640"/>
<p2 x="500" y="640"/>
</wire>
<wire>
<p1 x="360" y="640"/>
<p2 x="400" y="640"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="400" y="580"/>
</wire>
<wire>
<p1 x="340" y="260"/>
<p2 x="380" y="260"/>
</wire>
<wire>
<p1 x="340" y="680"/>
<p2 x="380" y="680"/>
</wire>
<wire>
<p1 x="560" y="200"/>
<p2 x="580" y="200"/>
</wire>
<wire>
<p1 x="480" y="200"/>
<p2 x="500" y="200"/>
</wire>
<wire>
<p1 x="600" y="200"/>
<p2 x="640" y="200"/>
</wire>
<wire>
<p1 x="320" y="200"/>
<p2 x="340" y="200"/>
</wire>
<wire>
<p1 x="260" y="200"/>
<p2 x="300" y="200"/>
</wire>
<wire>
<p1 x="340" y="200"/>
<p2 x="400" y="200"/>
</wire>
<wire>
<p1 x="480" y="360"/>
<p2 x="500" y="360"/>
</wire>
<wire>
<p1 x="360" y="360"/>
<p2 x="400" y="360"/>
</wire>
<wire>
<p1 x="460" y="520"/>
<p2 x="480" y="520"/>
</wire>
<wire>
<p1 x="320" y="620"/>
<p2 x="340" y="620"/>
</wire>
<wire>
<p1 x="480" y="620"/>
<p2 x="500" y="620"/>
</wire>
<wire>
<p1 x="560" y="620"/>
<p2 x="580" y="620"/>
</wire>
<wire>
<p1 x="340" y="620"/>
<p2 x="400" y="620"/>
</wire>
<wire>
<p1 x="360" y="300"/>
<p2 x="400" y="300"/>
</wire>
<wire>
<p1 x="460" y="460"/>
<p2 x="480" y="460"/>
</wire>
<wire>
<p1 x="340" y="400"/>
<p2 x="380" y="400"/>
</wire>
<wire>
<p1 x="460" y="240"/>
<p2 x="480" y="240"/>
</wire>
<wire>
<p1 x="460" y="660"/>
<p2 x="480" y="660"/>
</wire>
<wire>
<p1 x="320" y="340"/>
<p2 x="340" y="340"/>
</wire>
<wire>
<p1 x="480" y="340"/>
<p2 x="500" y="340"/>
</wire>
<wire>
<p1 x="560" y="340"/>
<p2 x="580" y="340"/>
</wire>
<wire>
<p1 x="340" y="340"/>
<p2 x="400" y="340"/>
</wire>
<wire>
<p1 x="460" y="180"/>
<p2 x="480" y="180"/>
</wire>
<wire>
<p1 x="480" y="500"/>
<p2 x="500" y="500"/>
</wire>
<wire>
<p1 x="360" y="500"/>
<p2 x="400" y="500"/>
</wire>
<wire>
<p1 x="460" y="600"/>
<p2 x="480" y="600"/>
</wire>
<wire>
<p1 x="360" y="440"/>
<p2 x="400" y="440"/>
</wire>
<wire>
<p1 x="340" y="540"/>
<p2 x="380" y="540"/>
</wire>
<wire>
<p1 x="460" y="380"/>
<p2 x="480" y="380"/>
</wire>
<wire>
<p1 x="480" y="220"/>
<p2 x="500" y="220"/>
</wire>
<wire>
<p1 x="360" y="220"/>
<p2 x="400" y="220"/>
</wire>
<wire>
<p1 x="480" y="180"/>
<p2 x="480" y="200"/>
</wire>
<wire>
<p1 x="480" y="220"/>
<p2 x="480" y="240"/>
</wire>
<wire>
<p1 x="480" y="320"/>
<p2 x="480" y="340"/>
</wire>
<wire>
<p1 x="480" y="360"/>
<p2 x="480" y="380"/>
</wire>
<wire>
<p1 x="480" y="460"/>
<p2 x="480" y="480"/>
</wire>
<wire>
<p1 x="480" y="500"/>
<p2 x="480" y="520"/>
</wire>
<wire>
<p1 x="480" y="600"/>
<p2 x="480" y="620"/>
</wire>
<wire>
<p1 x="480" y="640"/>
<p2 x="480" y="660"/>
</wire>
<wire>
<p1 x="340" y="200"/>
<p2 x="340" y="260"/>
</wire>
<wire>
<p1 x="340" y="340"/>
<p2 x="340" y="400"/>
</wire>
<wire>
<p1 x="340" y="480"/>
<p2 x="340" y="540"/>
</wire>
<wire>
<p1 x="340" y="620"/>
<p2 x="340" y="680"/>
</wire>
<wire>
<p1 x="360" y="160"/>
<p2 x="360" y="220"/>
</wire>
<wire>
<p1 x="360" y="360"/>
<p2 x="360" y="440"/>
</wire>
<wire>
<p1 x="360" y="500"/>
<p2 x="360" y="580"/>
</wire>
<wire>
<p1 x="360" y="300"/>
<p2 x="360" y="360"/>
</wire>
<wire>
<p1 x="360" y="440"/>
<p2 x="360" y="500"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="360" y="640"/>
</wire>
<wire>
<p1 x="360" y="220"/>
<p2 x="360" y="300"/>
</wire>
</wires>
</circuit>

View File

@ -0,0 +1,635 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes>
<entry>
<string>isDIL</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Description</string>
<string>3-state 4-by-4 Register File</string>
</entry>
<entry>
<string>lockedMode</string>
<boolean>true</boolean>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>4</string>
</entry>
<entry>
<string>isHighZ</string>
<boolean>true</boolean>
</entry>
<entry>
<string>splitterSpreading</string>
<int>2</int>
</entry>
<entry>
<string>Output Splitting</string>
<string>1*4</string>
</entry>
</elementAttributes>
<pos x="760" y="380"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q1</string>
</entry>
<entry>
<string>pinNumber</string>
<string>10</string>
</entry>
</elementAttributes>
<pos x="800" y="380"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q2</string>
</entry>
<entry>
<string>pinNumber</string>
<string>9</string>
</entry>
</elementAttributes>
<pos x="800" y="420"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q3</string>
</entry>
<entry>
<string>pinNumber</string>
<string>7</string>
</entry>
</elementAttributes>
<pos x="800" y="460"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Q4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>6</string>
</entry>
</elementAttributes>
<pos x="800" y="500"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>1*4</string>
</entry>
<entry>
<string>splitterSpreading</string>
<int>2</int>
</entry>
<entry>
<string>Output Splitting</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="300" y="220"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D1</string>
</entry>
<entry>
<string>pinNumber</string>
<string>15</string>
</entry>
</elementAttributes>
<pos x="280" y="220"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D2</string>
</entry>
<entry>
<string>pinNumber</string>
<string>1</string>
</entry>
</elementAttributes>
<pos x="280" y="260"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D3</string>
</entry>
<entry>
<string>pinNumber</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="280" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>D4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>3</string>
</entry>
</elementAttributes>
<pos x="280" y="340"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>1,1</string>
</entry>
<entry>
<string>splitterSpreading</string>
<int>2</int>
</entry>
<entry>
<string>Output Splitting</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="300" y="440"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>WA</string>
</entry>
<entry>
<string>pinNumber</string>
<string>14</string>
</entry>
</elementAttributes>
<pos x="280" y="440"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>WB</string>
</entry>
<entry>
<string>pinNumber</string>
<string>13</string>
</entry>
</elementAttributes>
<pos x="280" y="480"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>splitterSpreading</string>
<int>2</int>
</entry>
<entry>
<string>Input Splitting</string>
<string>1,1</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="300" y="540"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>RA</string>
</entry>
<entry>
<string>pinNumber</string>
<string>5</string>
</entry>
</elementAttributes>
<pos x="280" y="540"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>RB</string>
</entry>
<entry>
<string>pinNumber</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="280" y="580"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>~GR</string>
</entry>
<entry>
<string>pinNumber</string>
<string>11</string>
</entry>
<entry>
<string>InDefault</string>
<value v="1" z="false"/>
</entry>
</elementAttributes>
<pos x="280" y="620"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>~GW</string>
</entry>
<entry>
<string>pinNumber</string>
<string>12</string>
</entry>
<entry>
<string>InDefault</string>
<value v="1" z="false"/>
</entry>
</elementAttributes>
<pos x="280" y="380"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
<entry>
<string>Selector Bits</string>
<int>2</int>
</entry>
</elementAttributes>
<pos x="640" y="340"/>
</visualElement>
<visualElement>
<elementName>74670-D-inc.dig</elementName>
<elementAttributes/>
<pos x="500" y="220"/>
</visualElement>
<visualElement>
<elementName>74670-D-inc.dig</elementName>
<elementAttributes/>
<pos x="500" y="300"/>
</visualElement>
<visualElement>
<elementName>74670-D-inc.dig</elementName>
<elementAttributes/>
<pos x="500" y="380"/>
</visualElement>
<visualElement>
<elementName>74670-D-inc.dig</elementName>
<elementAttributes/>
<pos x="500" y="460"/>
</visualElement>
<visualElement>
<elementName>DriverInvSel</elementName>
<elementAttributes>
<entry>
<string>flipSelPos</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="720" y="380"/>
</visualElement>
<visualElement>
<elementName>Demultiplexer</elementName>
<elementAttributes>
<entry>
<string>Selector Bits</string>
<int>2</int>
</entry>
</elementAttributes>
<pos x="360" y="340"/>
</visualElement>
<visualElement>
<elementName>Not</elementName>
<elementAttributes/>
<pos x="300" y="380"/>
</visualElement>
<visualElement>
<elementName>PowerSupply</elementName>
<elementAttributes/>
<pos x="540" y="660"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>VCC</string>
</entry>
<entry>
<string>pinNumber</string>
<string>16</string>
</entry>
<entry>
<string>InDefault</string>
<value v="1" z="false"/>
</entry>
</elementAttributes>
<pos x="500" y="660"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>GND</string>
</entry>
<entry>
<string>pinNumber</string>
<string>8</string>
</entry>
</elementAttributes>
<pos x="500" y="700"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="560" y="320"/>
<p2 x="600" y="320"/>
</wire>
<wire>
<p1 x="560" y="480"/>
<p2 x="620" y="480"/>
</wire>
<wire>
<p1 x="280" y="480"/>
<p2 x="300" y="480"/>
</wire>
<wire>
<p1 x="780" y="420"/>
<p2 x="800" y="420"/>
</wire>
<wire>
<p1 x="440" y="420"/>
<p2 x="500" y="420"/>
</wire>
<wire>
<p1 x="420" y="260"/>
<p2 x="500" y="260"/>
</wire>
<wire>
<p1 x="280" y="260"/>
<p2 x="300" y="260"/>
</wire>
<wire>
<p1 x="280" y="580"/>
<p2 x="300" y="580"/>
</wire>
<wire>
<p1 x="600" y="360"/>
<p2 x="640" y="360"/>
</wire>
<wire>
<p1 x="400" y="360"/>
<p2 x="440" y="360"/>
</wire>
<wire>
<p1 x="520" y="680"/>
<p2 x="540" y="680"/>
</wire>
<wire>
<p1 x="780" y="460"/>
<p2 x="800" y="460"/>
</wire>
<wire>
<p1 x="460" y="460"/>
<p2 x="500" y="460"/>
</wire>
<wire>
<p1 x="460" y="300"/>
<p2 x="500" y="300"/>
</wire>
<wire>
<p1 x="280" y="300"/>
<p2 x="300" y="300"/>
</wire>
<wire>
<p1 x="280" y="620"/>
<p2 x="720" y="620"/>
</wire>
<wire>
<p1 x="560" y="240"/>
<p2 x="620" y="240"/>
</wire>
<wire>
<p1 x="620" y="400"/>
<p2 x="640" y="400"/>
</wire>
<wire>
<p1 x="400" y="400"/>
<p2 x="420" y="400"/>
</wire>
<wire>
<p1 x="560" y="400"/>
<p2 x="600" y="400"/>
</wire>
<wire>
<p1 x="780" y="500"/>
<p2 x="800" y="500"/>
</wire>
<wire>
<p1 x="420" y="500"/>
<p2 x="500" y="500"/>
</wire>
<wire>
<p1 x="280" y="340"/>
<p2 x="300" y="340"/>
</wire>
<wire>
<p1 x="400" y="340"/>
<p2 x="420" y="340"/>
</wire>
<wire>
<p1 x="440" y="340"/>
<p2 x="500" y="340"/>
</wire>
<wire>
<p1 x="620" y="340"/>
<p2 x="640" y="340"/>
</wire>
<wire>
<p1 x="500" y="660"/>
<p2 x="540" y="660"/>
</wire>
<wire>
<p1 x="320" y="440"/>
<p2 x="380" y="440"/>
</wire>
<wire>
<p1 x="280" y="440"/>
<p2 x="300" y="440"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="640" y="380"/>
</wire>
<wire>
<p1 x="780" y="380"/>
<p2 x="800" y="380"/>
</wire>
<wire>
<p1 x="740" y="380"/>
<p2 x="760" y="380"/>
</wire>
<wire>
<p1 x="680" y="380"/>
<p2 x="700" y="380"/>
</wire>
<wire>
<p1 x="340" y="380"/>
<p2 x="360" y="380"/>
</wire>
<wire>
<p1 x="280" y="380"/>
<p2 x="300" y="380"/>
</wire>
<wire>
<p1 x="400" y="380"/>
<p2 x="440" y="380"/>
</wire>
<wire>
<p1 x="460" y="380"/>
<p2 x="500" y="380"/>
</wire>
<wire>
<p1 x="320" y="220"/>
<p2 x="460" y="220"/>
</wire>
<wire>
<p1 x="280" y="220"/>
<p2 x="300" y="220"/>
</wire>
<wire>
<p1 x="460" y="220"/>
<p2 x="500" y="220"/>
</wire>
<wire>
<p1 x="280" y="540"/>
<p2 x="300" y="540"/>
</wire>
<wire>
<p1 x="320" y="540"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="500" y="700"/>
<p2 x="520" y="700"/>
</wire>
<wire>
<p1 x="720" y="400"/>
<p2 x="720" y="620"/>
</wire>
<wire>
<p1 x="660" y="420"/>
<p2 x="660" y="540"/>
</wire>
<wire>
<p1 x="420" y="400"/>
<p2 x="420" y="500"/>
</wire>
<wire>
<p1 x="420" y="260"/>
<p2 x="420" y="340"/>
</wire>
<wire>
<p1 x="600" y="320"/>
<p2 x="600" y="360"/>
</wire>
<wire>
<p1 x="600" y="380"/>
<p2 x="600" y="400"/>
</wire>
<wire>
<p1 x="520" y="680"/>
<p2 x="520" y="700"/>
</wire>
<wire>
<p1 x="440" y="380"/>
<p2 x="440" y="420"/>
</wire>
<wire>
<p1 x="440" y="340"/>
<p2 x="440" y="360"/>
</wire>
<wire>
<p1 x="460" y="220"/>
<p2 x="460" y="300"/>
</wire>
<wire>
<p1 x="460" y="380"/>
<p2 x="460" y="460"/>
</wire>
<wire>
<p1 x="460" y="300"/>
<p2 x="460" y="380"/>
</wire>
<wire>
<p1 x="380" y="420"/>
<p2 x="380" y="440"/>
</wire>
<wire>
<p1 x="620" y="240"/>
<p2 x="620" y="340"/>
</wire>
<wire>
<p1 x="620" y="400"/>
<p2 x="620" y="480"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>

View File

@ -32,7 +32,7 @@ public class TestExamples extends TestCase {
*/
public void testDistExamples() throws Exception {
File examples = new File(Resources.getRoot().getParentFile().getParentFile(), "/main/dig");
assertEquals(232, new FileScanner(this::check).scan(examples));
assertEquals(233, new FileScanner(this::check).scan(examples));
assertEquals(160, testCasesInFiles);
}