You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cpu32/alu.dig

755 lines
16 KiB

<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>shifter.dig</elementName>
<elementAttributes/>
<pos x="420" y="660"/>
</visualElement>
<visualElement>
<elementName>Sub</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="420" y="560"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="420" y="860"/>
</visualElement>
<visualElement>
<elementName>Or</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="420" y="960"/>
</visualElement>
<visualElement>
<elementName>XOr</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="420" y="1060"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>a</string>
</entry>
</elementAttributes>
<pos x="260" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>b</string>
</entry>
</elementAttributes>
<pos x="260" y="340"/>
</visualElement>
<visualElement>
<elementName>multiply-add.dig</elementName>
<elementAttributes/>
<pos x="420" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>c</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="260" y="380"/>
</visualElement>
<visualElement>
<elementName>Neg</elementName>
<elementAttributes/>
<pos x="420" y="800"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>1*16</string>
</entry>
</elementAttributes>
<pos x="1160" y="1200"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>1*16</string>
</entry>
</elementAttributes>
<pos x="1160" y="800"/>
</visualElement>
<visualElement>
<elementName>NOr</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Inputs</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="1360" y="800"/>
</visualElement>
<visualElement>
<elementName>NOr</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Inputs</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="1360" y="1200"/>
</visualElement>
<visualElement>
<elementName>NAnd</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="1520" y="1140"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>LZ</string>
</entry>
</elementAttributes>
<pos x="1640" y="1160"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Z</string>
</entry>
</elementAttributes>
<pos x="1640" y="1360"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>32</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>31,1</string>
</entry>
</elementAttributes>
<pos x="1540" y="1580"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>N</string>
</entry>
</elementAttributes>
<pos x="1640" y="1600"/>
</visualElement>
<visualElement>
<elementName>Add</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="420" y="460"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="1180" y="1280"/>
<p2 x="1360" y="1280"/>
</wire>
<wire>
<p1 x="360" y="900"/>
<p2 x="420" y="900"/>
</wire>
<wire>
<p1 x="1180" y="900"/>
<p2 x="1360" y="900"/>
</wire>
<wire>
<p1 x="1620" y="1160"/>
<p2 x="1640" y="1160"/>
</wire>
<wire>
<p1 x="1180" y="1420"/>
<p2 x="1280" y="1420"/>
</wire>
<wire>
<p1 x="1300" y="1420"/>
<p2 x="1360" y="1420"/>
</wire>
<wire>
<p1 x="1180" y="1040"/>
<p2 x="1260" y="1040"/>
</wire>
<wire>
<p1 x="1280" y="1040"/>
<p2 x="1360" y="1040"/>
</wire>
<wire>
<p1 x="380" y="660"/>
<p2 x="420" y="660"/>
</wire>
<wire>
<p1 x="480" y="660"/>
<p2 x="600" y="660"/>
</wire>
<wire>
<p1 x="1180" y="1300"/>
<p2 x="1360" y="1300"/>
</wire>
<wire>
<p1 x="1180" y="920"/>
<p2 x="1360" y="920"/>
</wire>
<wire>
<p1 x="1480" y="1180"/>
<p2 x="1520" y="1180"/>
</wire>
<wire>
<p1 x="380" y="800"/>
<p2 x="420" y="800"/>
</wire>
<wire>
<p1 x="480" y="800"/>
<p2 x="580" y="800"/>
</wire>
<wire>
<p1 x="1180" y="800"/>
<p2 x="1360" y="800"/>
</wire>
<wire>
<p1 x="1180" y="1440"/>
<p2 x="1260" y="1440"/>
</wire>
<wire>
<p1 x="1280" y="1440"/>
<p2 x="1360" y="1440"/>
</wire>
<wire>
<p1 x="380" y="1060"/>
<p2 x="420" y="1060"/>
</wire>
<wire>
<p1 x="1180" y="1060"/>
<p2 x="1240" y="1060"/>
</wire>
<wire>
<p1 x="1260" y="1060"/>
<p2 x="1360" y="1060"/>
</wire>
<wire>
<p1 x="480" y="680"/>
<p2 x="720" y="680"/>
</wire>
<wire>
<p1 x="1180" y="1320"/>
<p2 x="1360" y="1320"/>
</wire>
<wire>
<p1 x="260" y="300"/>
<p2 x="380" y="300"/>
</wire>
<wire>
<p1 x="1180" y="940"/>
<p2 x="1360" y="940"/>
</wire>
<wire>
<p1 x="1140" y="1580"/>
<p2 x="1540" y="1580"/>
</wire>
<wire>
<p1 x="380" y="560"/>
<p2 x="420" y="560"/>
</wire>
<wire>
<p1 x="480" y="560"/>
<p2 x="620" y="560"/>
</wire>
<wire>
<p1 x="1180" y="1200"/>
<p2 x="1360" y="1200"/>
</wire>
<wire>
<p1 x="1180" y="820"/>
<p2 x="1360" y="820"/>
</wire>
<wire>
<p1 x="1180" y="1460"/>
<p2 x="1240" y="1460"/>
</wire>
<wire>
<p1 x="1260" y="1460"/>
<p2 x="1360" y="1460"/>
</wire>
<wire>
<p1 x="500" y="1080"/>
<p2 x="520" y="1080"/>
</wire>
<wire>
<p1 x="1180" y="1080"/>
<p2 x="1220" y="1080"/>
</wire>
<wire>
<p1 x="1240" y="1080"/>
<p2 x="1360" y="1080"/>
</wire>
<wire>
<p1 x="360" y="700"/>
<p2 x="420" y="700"/>
</wire>
<wire>
<p1 x="1180" y="1340"/>
<p2 x="1360" y="1340"/>
</wire>
<wire>
<p1 x="380" y="960"/>
<p2 x="420" y="960"/>
</wire>
<wire>
<p1 x="1180" y="960"/>
<p2 x="1340" y="960"/>
</wire>
<wire>
<p1 x="1460" y="960"/>
<p2 x="1480" y="960"/>
</wire>
<wire>
<p1 x="480" y="320"/>
<p2 x="660" y="320"/>
</wire>
<wire>
<p1 x="1560" y="1600"/>
<p2 x="1640" y="1600"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="420" y="580"/>
</wire>
<wire>
<p1 x="480" y="580"/>
<p2 x="740" y="580"/>
</wire>
<wire>
<p1 x="1180" y="1220"/>
<p2 x="1360" y="1220"/>
</wire>
<wire>
<p1 x="1180" y="840"/>
<p2 x="1360" y="840"/>
</wire>
<wire>
<p1 x="1180" y="1480"/>
<p2 x="1220" y="1480"/>
</wire>
<wire>
<p1 x="1240" y="1480"/>
<p2 x="1360" y="1480"/>
</wire>
<wire>
<p1 x="360" y="1100"/>
<p2 x="420" y="1100"/>
</wire>
<wire>
<p1 x="1180" y="1100"/>
<p2 x="1200" y="1100"/>
</wire>
<wire>
<p1 x="1220" y="1100"/>
<p2 x="1360" y="1100"/>
</wire>
<wire>
<p1 x="380" y="460"/>
<p2 x="420" y="460"/>
</wire>
<wire>
<p1 x="480" y="460"/>
<p2 x="640" y="460"/>
</wire>
<wire>
<p1 x="1180" y="1360"/>
<p2 x="1340" y="1360"/>
</wire>
<wire>
<p1 x="1460" y="1360"/>
<p2 x="1480" y="1360"/>
</wire>
<wire>
<p1 x="1480" y="1360"/>
<p2 x="1640" y="1360"/>
</wire>
<wire>
<p1 x="500" y="980"/>
<p2 x="540" y="980"/>
</wire>
<wire>
<p1 x="1180" y="980"/>
<p2 x="1320" y="980"/>
</wire>
<wire>
<p1 x="1340" y="980"/>
<p2 x="1360" y="980"/>
</wire>
<wire>
<p1 x="260" y="340"/>
<p2 x="360" y="340"/>
</wire>
<wire>
<p1 x="380" y="340"/>
<p2 x="420" y="340"/>
</wire>
<wire>
<p1 x="1180" y="1240"/>
<p2 x="1360" y="1240"/>
</wire>
<wire>
<p1 x="1180" y="860"/>
<p2 x="1360" y="860"/>
</wire>
<wire>
<p1 x="380" y="860"/>
<p2 x="420" y="860"/>
</wire>
<wire>
<p1 x="1180" y="1500"/>
<p2 x="1200" y="1500"/>
</wire>
<wire>
<p1 x="1220" y="1500"/>
<p2 x="1360" y="1500"/>
</wire>
<wire>
<p1 x="1200" y="1120"/>
<p2 x="1360" y="1120"/>
</wire>
<wire>
<p1 x="360" y="480"/>
<p2 x="420" y="480"/>
</wire>
<wire>
<p1 x="480" y="480"/>
<p2 x="760" y="480"/>
</wire>
<wire>
<p1 x="1180" y="1380"/>
<p2 x="1320" y="1380"/>
</wire>
<wire>
<p1 x="1340" y="1380"/>
<p2 x="1360" y="1380"/>
</wire>
<wire>
<p1 x="1180" y="1000"/>
<p2 x="1300" y="1000"/>
</wire>
<wire>
<p1 x="1320" y="1000"/>
<p2 x="1360" y="1000"/>
</wire>
<wire>
<p1 x="360" y="1000"/>
<p2 x="420" y="1000"/>
</wire>
<wire>
<p1 x="360" y="360"/>
<p2 x="420" y="360"/>
</wire>
<wire>
<p1 x="480" y="360"/>
<p2 x="780" y="360"/>
</wire>
<wire>
<p1 x="1180" y="1260"/>
<p2 x="1360" y="1260"/>
</wire>
<wire>
<p1 x="1200" y="1520"/>
<p2 x="1360" y="1520"/>
</wire>
<wire>
<p1 x="1180" y="880"/>
<p2 x="1360" y="880"/>
</wire>
<wire>
<p1 x="500" y="880"/>
<p2 x="560" y="880"/>
</wire>
<wire>
<p1 x="1480" y="1140"/>
<p2 x="1520" y="1140"/>
</wire>
<wire>
<p1 x="1180" y="1400"/>
<p2 x="1300" y="1400"/>
</wire>
<wire>
<p1 x="1320" y="1400"/>
<p2 x="1360" y="1400"/>
</wire>
<wire>
<p1 x="1180" y="1020"/>
<p2 x="1280" y="1020"/>
</wire>
<wire>
<p1 x="1300" y="1020"/>
<p2 x="1360" y="1020"/>
</wire>
<wire>
<p1 x="260" y="380"/>
<p2 x="420" y="380"/>
</wire>
<wire>
<p1 x="640" y="460"/>
<p2 x="640" y="1300"/>
</wire>
<wire>
<p1 x="1280" y="1420"/>
<p2 x="1280" y="1440"/>
</wire>
<wire>
<p1 x="1280" y="1020"/>
<p2 x="1280" y="1040"/>
</wire>
<wire>
<p1 x="580" y="800"/>
<p2 x="580" y="1300"/>
</wire>
<wire>
<p1 x="740" y="580"/>
<p2 x="740" y="1300"/>
</wire>
<wire>
<p1 x="1220" y="1480"/>
<p2 x="1220" y="1500"/>
</wire>
<wire>
<p1 x="1220" y="1080"/>
<p2 x="1220" y="1100"/>
</wire>
<wire>
<p1 x="360" y="340"/>
<p2 x="360" y="360"/>
</wire>
<wire>
<p1 x="360" y="360"/>
<p2 x="360" y="480"/>
</wire>
<wire>
<p1 x="360" y="900"/>
<p2 x="360" y="1000"/>
</wire>
<wire>
<p1 x="360" y="700"/>
<p2 x="360" y="900"/>
</wire>
<wire>
<p1 x="360" y="480"/>
<p2 x="360" y="580"/>
</wire>
<wire>
<p1 x="360" y="1000"/>
<p2 x="360" y="1100"/>
</wire>
<wire>
<p1 x="360" y="580"/>
<p2 x="360" y="700"/>
</wire>
<wire>
<p1 x="520" y="1080"/>
<p2 x="520" y="1300"/>
</wire>
<wire>
<p1 x="1320" y="1380"/>
<p2 x="1320" y="1400"/>
</wire>
<wire>
<p1 x="1320" y="980"/>
<p2 x="1320" y="1000"/>
</wire>
<wire>
<p1 x="1480" y="1180"/>
<p2 x="1480" y="1360"/>
</wire>
<wire>
<p1 x="1480" y="960"/>
<p2 x="1480" y="1140"/>
</wire>
<wire>
<p1 x="620" y="560"/>
<p2 x="620" y="1300"/>
</wire>
<wire>
<p1 x="780" y="360"/>
<p2 x="780" y="1300"/>
</wire>
<wire>
<p1 x="1260" y="1440"/>
<p2 x="1260" y="1460"/>
</wire>
<wire>
<p1 x="1260" y="1040"/>
<p2 x="1260" y="1060"/>
</wire>
<wire>
<p1 x="560" y="880"/>
<p2 x="560" y="1300"/>
</wire>
<wire>
<p1 x="720" y="680"/>
<p2 x="720" y="1300"/>
</wire>
<wire>
<p1 x="1200" y="1500"/>
<p2 x="1200" y="1520"/>
</wire>
<wire>
<p1 x="1200" y="1100"/>
<p2 x="1200" y="1120"/>
</wire>
<wire>
<p1 x="660" y="320"/>
<p2 x="660" y="1300"/>
</wire>
<wire>
<p1 x="1300" y="1400"/>
<p2 x="1300" y="1420"/>
</wire>
<wire>
<p1 x="1300" y="1000"/>
<p2 x="1300" y="1020"/>
</wire>
<wire>
<p1 x="1240" y="1460"/>
<p2 x="1240" y="1480"/>
</wire>
<wire>
<p1 x="1240" y="1060"/>
<p2 x="1240" y="1080"/>
</wire>
<wire>
<p1 x="600" y="660"/>
<p2 x="600" y="1300"/>
</wire>
<wire>
<p1 x="760" y="480"/>
<p2 x="760" y="1300"/>
</wire>
<wire>
<p1 x="1340" y="1360"/>
<p2 x="1340" y="1380"/>
</wire>
<wire>
<p1 x="1340" y="960"/>
<p2 x="1340" y="980"/>
</wire>
<wire>
<p1 x="380" y="300"/>
<p2 x="380" y="340"/>
</wire>
<wire>
<p1 x="380" y="800"/>
<p2 x="380" y="860"/>
</wire>
<wire>
<p1 x="380" y="560"/>
<p2 x="380" y="660"/>
</wire>
<wire>
<p1 x="380" y="340"/>
<p2 x="380" y="460"/>
</wire>
<wire>
<p1 x="380" y="860"/>
<p2 x="380" y="960"/>
</wire>
<wire>
<p1 x="380" y="660"/>
<p2 x="380" y="800"/>
</wire>
<wire>
<p1 x="380" y="960"/>
<p2 x="380" y="1060"/>
</wire>
<wire>
<p1 x="380" y="460"/>
<p2 x="380" y="560"/>
</wire>
<wire>
<p1 x="540" y="980"/>
<p2 x="540" y="1300"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>