adds 74283 and 74266

This commit is contained in:
hneemann 2018-02-04 12:53:42 +01:00
parent d882b0197f
commit e2046d7ea2
3 changed files with 829 additions and 2 deletions

View File

@ -0,0 +1,516 @@
<?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>4-bit binary full adder, alternative pinning</string>
</entry>
<entry>
<string>lockedMode</string>
<boolean>true</boolean>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Der Übertrag vom Addierer welcher die
niederwertigeren Bits addiert. Werden die
niederwertigsten Bits addiert, ist dieser Eingang
Null.</string>
</entry>
<entry>
<string>Label</string>
<string>C0</string>
</entry>
<entry>
<string>pinNumber</string>
<string>7</string>
</entry>
</elementAttributes>
<pos x="640" y="-300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 0. Bit des ersten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>B1</string>
</entry>
<entry>
<string>pinNumber</string>
<string>6</string>
</entry>
<entry>
<string>Default</string>
<int>1</int>
</entry>
</elementAttributes>
<pos x="640" y="-400"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 1. Bit des ersten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>B2</string>
</entry>
<entry>
<string>pinNumber</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="500" y="-380"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 0. Bit der Summe.</string>
</entry>
<entry>
<string>Label</string>
<string>S1</string>
</entry>
<entry>
<string>pinNumber</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="880" y="-420"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 2. Bit des ersten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>B3</string>
</entry>
<entry>
<string>pinNumber</string>
<string>15</string>
</entry>
</elementAttributes>
<pos x="640" y="-360"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 3. Bit des ersten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>B4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>11</string>
</entry>
<entry>
<string>Default</string>
<int>1</int>
</entry>
</elementAttributes>
<pos x="500" y="-340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 1. Bit der Summe.</string>
</entry>
<entry>
<string>Label</string>
<string>S2</string>
</entry>
<entry>
<string>pinNumber</string>
<string>1</string>
</entry>
</elementAttributes>
<pos x="1020" y="-400"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 2. Bit der Summe.</string>
</entry>
<entry>
<string>Label</string>
<string>S3</string>
</entry>
<entry>
<string>pinNumber</string>
<string>13</string>
</entry>
</elementAttributes>
<pos x="880" y="-380"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 0. Bit des zweiten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>A1</string>
</entry>
<entry>
<string>pinNumber</string>
<string>5</string>
</entry>
</elementAttributes>
<pos x="640" y="-500"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 1. Bit des zweiten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>A2</string>
</entry>
<entry>
<string>pinNumber</string>
<string>3</string>
</entry>
<entry>
<string>Default</string>
<int>1</int>
</entry>
</elementAttributes>
<pos x="500" y="-480"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 2. Bit des zweiten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>A3</string>
</entry>
<entry>
<string>pinNumber</string>
<string>14</string>
</entry>
<entry>
<string>Default</string>
<int>1</int>
</entry>
</elementAttributes>
<pos x="640" y="-460"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 3. Bit des zweiten zu addierenden Wertes.</string>
</entry>
<entry>
<string>Label</string>
<string>A4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>12</string>
</entry>
</elementAttributes>
<pos x="500" y="-440"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das 3. Bit der Summe.</string>
</entry>
<entry>
<string>Label</string>
<string>S4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>10</string>
</entry>
</elementAttributes>
<pos x="1020" y="-360"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
<string>Das Übertragsbit, welches an den Adiierer für die
nächst höherwertigen Bits weitergegeben wird.</string>
</entry>
<entry>
<string>Label</string>
<string>C4</string>
</entry>
<entry>
<string>pinNumber</string>
<string>9</string>
</entry>
</elementAttributes>
<pos x="880" y="-300"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
<elementAttributes>
<entry>
<string>Testdata</string>
<testData>
<dataString># A complete test of all 512 possible additions
#
# A line that begins with &quot;repeat([i])&quot; is repeated [i] times.
# In this case 256 times. Then the variable n goes from 0 to 255.
# So the values for the inputs are calculated depending on n.
# The function &quot;bits([m],[v])&quot; takes the lowest m bits from the value v.
# The expression &quot;bits(4,n&gt;&gt;4)&quot; takes the lowest 4 bits of the value
# n&gt;&gt;4. Then the resulting bits are used for the inputs A_3 to A_0.
# All created test vectors are shown in the result table.
C0 A4 A3 A2 A1 B4 B3 B2 B1 C4 S4 S3 S2 S1
repeat(256) 0 bits(4,n&gt;&gt;4) bits(4,n) bits(5,(n&gt;&gt;4)+(n&amp;15))
repeat(256) 1 bits(4,n&gt;&gt;4) bits(4,n) bits(5,(n&gt;&gt;4)+(n&amp;15)+1)
</dataString>
</testData>
</entry>
</elementAttributes>
<pos x="900" y="-520"/>
</visualElement>
<visualElement>
<elementName>Add</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>4</int>
</entry>
</elementAttributes>
<pos x="720" y="-420"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>1*4</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="660" y="-400"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>1*4</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="660" y="-500"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>4</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>1*4</string>
</entry>
</elementAttributes>
<pos x="840" y="-420"/>
</visualElement>
<visualElement>
<elementName>PowerSupply</elementName>
<elementAttributes/>
<pos x="680" y="-240"/>
</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="640" y="-240"/>
</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="640" y="-200"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="700" y="-420"/>
<p2 x="720" y="-420"/>
</wire>
<wire>
<p1 x="780" y="-420"/>
<p2 x="840" y="-420"/>
</wire>
<wire>
<p1 x="860" y="-420"/>
<p2 x="880" y="-420"/>
</wire>
<wire>
<p1 x="640" y="-360"/>
<p2 x="660" y="-360"/>
</wire>
<wire>
<p1 x="860" y="-360"/>
<p2 x="1020" y="-360"/>
</wire>
<wire>
<p1 x="640" y="-200"/>
<p2 x="660" y="-200"/>
</wire>
<wire>
<p1 x="640" y="-460"/>
<p2 x="660" y="-460"/>
</wire>
<wire>
<p1 x="800" y="-300"/>
<p2 x="880" y="-300"/>
</wire>
<wire>
<p1 x="640" y="-300"/>
<p2 x="700" y="-300"/>
</wire>
<wire>
<p1 x="640" y="-400"/>
<p2 x="660" y="-400"/>
</wire>
<wire>
<p1 x="680" y="-400"/>
<p2 x="720" y="-400"/>
</wire>
<wire>
<p1 x="780" y="-400"/>
<p2 x="800" y="-400"/>
</wire>
<wire>
<p1 x="860" y="-400"/>
<p2 x="1020" y="-400"/>
</wire>
<wire>
<p1 x="640" y="-240"/>
<p2 x="680" y="-240"/>
</wire>
<wire>
<p1 x="680" y="-500"/>
<p2 x="700" y="-500"/>
</wire>
<wire>
<p1 x="640" y="-500"/>
<p2 x="660" y="-500"/>
</wire>
<wire>
<p1 x="500" y="-340"/>
<p2 x="660" y="-340"/>
</wire>
<wire>
<p1 x="500" y="-440"/>
<p2 x="660" y="-440"/>
</wire>
<wire>
<p1 x="500" y="-380"/>
<p2 x="660" y="-380"/>
</wire>
<wire>
<p1 x="700" y="-380"/>
<p2 x="720" y="-380"/>
</wire>
<wire>
<p1 x="860" y="-380"/>
<p2 x="880" y="-380"/>
</wire>
<wire>
<p1 x="660" y="-220"/>
<p2 x="680" y="-220"/>
</wire>
<wire>
<p1 x="500" y="-480"/>
<p2 x="660" y="-480"/>
</wire>
<wire>
<p1 x="800" y="-400"/>
<p2 x="800" y="-300"/>
</wire>
<wire>
<p1 x="660" y="-220"/>
<p2 x="660" y="-200"/>
</wire>
<wire>
<p1 x="700" y="-500"/>
<p2 x="700" y="-420"/>
</wire>
<wire>
<p1 x="700" y="-380"/>
<p2 x="700" y="-300"/>
</wire>
</wires>
</circuit>

View File

@ -0,0 +1,311 @@
<?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>quad 2-input XNOR gate</string>
</entry>
<entry>
<string>lockedMode</string>
<boolean>true</boolean>
</entry>
</attributes>
<visualElements>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>1A</string>
</entry>
<entry>
<string>pinNumber</string>
<string>1</string>
</entry>
</elementAttributes>
<pos x="300" y="220"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>1B</string>
</entry>
<entry>
<string>pinNumber</string>
<string>2</string>
</entry>
</elementAttributes>
<pos x="300" y="260"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>1Y</string>
</entry>
<entry>
<string>pinNumber</string>
<string>3</string>
</entry>
</elementAttributes>
<pos x="440" y="240"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>2A</string>
</entry>
<entry>
<string>pinNumber</string>
<string>5</string>
</entry>
</elementAttributes>
<pos x="300" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>2B</string>
</entry>
<entry>
<string>pinNumber</string>
<string>6</string>
</entry>
</elementAttributes>
<pos x="300" y="340"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>2Y</string>
</entry>
<entry>
<string>pinNumber</string>
<string>4</string>
</entry>
</elementAttributes>
<pos x="440" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>3B</string>
</entry>
<entry>
<string>pinNumber</string>
<string>9</string>
</entry>
</elementAttributes>
<pos x="300" y="420"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>3A</string>
</entry>
<entry>
<string>pinNumber</string>
<string>8</string>
</entry>
</elementAttributes>
<pos x="300" y="380"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>3Y</string>
</entry>
<entry>
<string>pinNumber</string>
<string>10</string>
</entry>
</elementAttributes>
<pos x="440" y="400"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>4A</string>
</entry>
<entry>
<string>pinNumber</string>
<string>12</string>
</entry>
</elementAttributes>
<pos x="300" y="460"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>4B</string>
</entry>
<entry>
<string>pinNumber</string>
<string>13</string>
</entry>
</elementAttributes>
<pos x="300" y="500"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>4Y</string>
</entry>
<entry>
<string>pinNumber</string>
<string>11</string>
</entry>
</elementAttributes>
<pos x="440" y="480"/>
</visualElement>
<visualElement>
<elementName>PowerSupply</elementName>
<elementAttributes/>
<pos x="340" y="560"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>VCC</string>
</entry>
<entry>
<string>pinNumber</string>
<string>14</string>
</entry>
<entry>
<string>InDefault</string>
<value v="1" z="false"/>
</entry>
</elementAttributes>
<pos x="300" y="560"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>GND</string>
</entry>
<entry>
<string>pinNumber</string>
<string>7</string>
</entry>
</elementAttributes>
<pos x="300" y="600"/>
</visualElement>
<visualElement>
<elementName>XNOr</elementName>
<elementAttributes/>
<pos x="340" y="220"/>
</visualElement>
<visualElement>
<elementName>XNOr</elementName>
<elementAttributes/>
<pos x="340" y="300"/>
</visualElement>
<visualElement>
<elementName>XNOr</elementName>
<elementAttributes/>
<pos x="340" y="380"/>
</visualElement>
<visualElement>
<elementName>XNOr</elementName>
<elementAttributes/>
<pos x="340" y="460"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="420" y="320"/>
<p2 x="440" y="320"/>
</wire>
<wire>
<p1 x="420" y="480"/>
<p2 x="440" y="480"/>
</wire>
<wire>
<p1 x="300" y="260"/>
<p2 x="340" y="260"/>
</wire>
<wire>
<p1 x="300" y="420"/>
<p2 x="340" y="420"/>
</wire>
<wire>
<p1 x="320" y="580"/>
<p2 x="340" y="580"/>
</wire>
<wire>
<p1 x="300" y="300"/>
<p2 x="340" y="300"/>
</wire>
<wire>
<p1 x="300" y="460"/>
<p2 x="340" y="460"/>
</wire>
<wire>
<p1 x="420" y="240"/>
<p2 x="440" y="240"/>
</wire>
<wire>
<p1 x="420" y="400"/>
<p2 x="440" y="400"/>
</wire>
<wire>
<p1 x="300" y="560"/>
<p2 x="340" y="560"/>
</wire>
<wire>
<p1 x="300" y="340"/>
<p2 x="340" y="340"/>
</wire>
<wire>
<p1 x="300" y="500"/>
<p2 x="340" y="500"/>
</wire>
<wire>
<p1 x="300" y="600"/>
<p2 x="320" y="600"/>
</wire>
<wire>
<p1 x="300" y="220"/>
<p2 x="340" y="220"/>
</wire>
<wire>
<p1 x="300" y="380"/>
<p2 x="340" y="380"/>
</wire>
<wire>
<p1 x="320" y="580"/>
<p2 x="320" y="600"/>
</wire>
</wires>
</circuit>

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(208, new FileScanner(this::check).scan(examples));
assertEquals(116, testCasesInFiles);
assertEquals(210, new FileScanner(this::check).scan(examples));
assertEquals(117, testCasesInFiles);
}
/**