mer 19 ott 2022, 23:35:58, CEST

master
Alessandro Mauri 2 years ago
parent 0fa320817a
commit 50fe0e2267
  1. 21
      ALU_OPCODES.md
  2. 33
      alu.dig
  3. 202
      revert.dig
  4. 384
      shifter.dig
  5. 490
      signed_mul.dig

@ -0,0 +1,21 @@
# ALU opcodes
| mnemonic | operands | outputs | opcode |
|----------|----------|-----------------------|--------|
| ADD | I1, I2 | U0 = I1 + I2 + C | |
| SUB | I1, I2 | U0 = I1 - I2 - C | |
| MULU | I1, I2 | U1:U0 = I1 * I2 | |
| MULS | I1, I2 | U1:U0 = (s)I1 * (s)I2 | |
| DIVU | I1, I2 | U0 = I1 / I2 | |
| | | U1 = I1 % I2 | |
| DIVS | I1, I2 | U0 = (s)I1 / (s)I2 | |
| | | U1 = U1 % Rd2 > 0 | |
| SHL | I1, I2 | U0 = I1 << I2 | |
| ROL | I1, I2 | U0 = I1 rot_l I2) | |
| SHR | I1, I2 | U0 = I1 >> I2 | |
| ROR | I1, I2 | U0 = I1 rot_r I2 | |
| AND | I1, I2 | U0 = I1 & I2 | |
| OR | I1, I2 | U0 = I1 or I2 | |
| NOT | I1 | U0 = !I1 | |
| XOR | I1, I2 | U0 = I1 xor I2 | |

@ -8,6 +8,39 @@
<elementAttributes/> <elementAttributes/>
<pos x="420" y="560"/> <pos x="420" y="560"/>
</visualElement> </visualElement>
<visualElement>
<elementName>Add</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>ADD/C</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="420" y="340"/>
</visualElement>
<visualElement>
<elementName>Sub</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>SUB/C</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="420" y="460"/>
</visualElement>
<visualElement>
<elementName>signed_mul.dig</elementName>
<elementAttributes/>
<pos x="420" y="220"/>
</visualElement>
</visualElements> </visualElements>
<wires/> <wires/>
<measurementOrdering/> <measurementOrdering/>

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<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="480" y="380"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="640" y="360"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>mirror</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Input Splitting</string>
<string>1*16</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>16</string>
</entry>
</elementAttributes>
<pos x="540" y="680"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>I</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="380" y="380"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Rev</string>
</entry>
</elementAttributes>
<pos x="380" y="720"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>O</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="760" y="380"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="500" y="480"/>
<p2 x="540" y="480"/>
</wire>
<wire>
<p1 x="500" y="640"/>
<p2 x="540" y="640"/>
</wire>
<wire>
<p1 x="500" y="420"/>
<p2 x="540" y="420"/>
</wire>
<wire>
<p1 x="500" y="580"/>
<p2 x="540" y="580"/>
</wire>
<wire>
<p1 x="500" y="520"/>
<p2 x="540" y="520"/>
</wire>
<wire>
<p1 x="500" y="680"/>
<p2 x="540" y="680"/>
</wire>
<wire>
<p1 x="560" y="680"/>
<p2 x="600" y="680"/>
</wire>
<wire>
<p1 x="600" y="360"/>
<p2 x="640" y="360"/>
</wire>
<wire>
<p1 x="500" y="460"/>
<p2 x="540" y="460"/>
</wire>
<wire>
<p1 x="500" y="620"/>
<p2 x="540" y="620"/>
</wire>
<wire>
<p1 x="600" y="400"/>
<p2 x="640" y="400"/>
</wire>
<wire>
<p1 x="500" y="400"/>
<p2 x="540" y="400"/>
</wire>
<wire>
<p1 x="500" y="560"/>
<p2 x="540" y="560"/>
</wire>
<wire>
<p1 x="380" y="720"/>
<p2 x="660" y="720"/>
</wire>
<wire>
<p1 x="500" y="500"/>
<p2 x="540" y="500"/>
</wire>
<wire>
<p1 x="500" y="660"/>
<p2 x="540" y="660"/>
</wire>
<wire>
<p1 x="440" y="340"/>
<p2 x="600" y="340"/>
</wire>
<wire>
<p1 x="500" y="440"/>
<p2 x="540" y="440"/>
</wire>
<wire>
<p1 x="500" y="600"/>
<p2 x="540" y="600"/>
</wire>
<wire>
<p1 x="680" y="380"/>
<p2 x="760" y="380"/>
</wire>
<wire>
<p1 x="500" y="380"/>
<p2 x="540" y="380"/>
</wire>
<wire>
<p1 x="380" y="380"/>
<p2 x="440" y="380"/>
</wire>
<wire>
<p1 x="440" y="380"/>
<p2 x="480" y="380"/>
</wire>
<wire>
<p1 x="500" y="540"/>
<p2 x="540" y="540"/>
</wire>
<wire>
<p1 x="660" y="400"/>
<p2 x="660" y="720"/>
</wire>
<wire>
<p1 x="440" y="340"/>
<p2 x="440" y="380"/>
</wire>
<wire>
<p1 x="600" y="400"/>
<p2 x="600" y="680"/>
</wire>
<wire>
<p1 x="600" y="340"/>
<p2 x="600" y="360"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>

@ -404,28 +404,28 @@
<elementAttributes> <elementAttributes>
<entry> <entry>
<string>Label</string> <string>Label</string>
<string>i</string> <string>I</string>
</entry> </entry>
<entry> <entry>
<string>Bits</string> <string>Bits</string>
<int>16</int> <int>16</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="80" y="400"/> <pos x="-100" y="380"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>Out</elementName> <elementName>Out</elementName>
<elementAttributes> <elementAttributes>
<entry> <entry>
<string>Label</string> <string>Label</string>
<string>o</string> <string>O</string>
</entry> </entry>
<entry> <entry>
<string>Bits</string> <string>Bits</string>
<int>16</int> <int>16</int>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="2360" y="500"/> <pos x="2480" y="520"/>
</visualElement> </visualElement>
<visualElement> <visualElement>
<elementName>And</elementName> <elementName>And</elementName>
@ -625,7 +625,7 @@
<elementAttributes> <elementAttributes>
<entry> <entry>
<string>Label</string> <string>Label</string>
<string>R</string> <string>Rot</string>
</entry> </entry>
</elementAttributes> </elementAttributes>
<pos x="80" y="1320"/> <pos x="80" y="1320"/>
@ -1060,6 +1060,284 @@
</elementAttributes> </elementAttributes>
<pos x="1400" y="1280"/> <pos x="1400" y="1280"/>
</visualElement> </visualElement>
<visualElement>
<elementName>Or</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
<entry>
<string>Inputs</string>
<int>15</int>
</entry>
</elementAttributes>
<pos x="2240" y="700"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f0</string>
</entry>
</elementAttributes>
<pos x="2200" y="700"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f1</string>
</entry>
</elementAttributes>
<pos x="2200" y="720"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f2</string>
</entry>
</elementAttributes>
<pos x="2200" y="740"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f3</string>
</entry>
</elementAttributes>
<pos x="2200" y="760"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f4</string>
</entry>
</elementAttributes>
<pos x="2200" y="780"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f5</string>
</entry>
</elementAttributes>
<pos x="2200" y="800"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f6</string>
</entry>
</elementAttributes>
<pos x="2200" y="820"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f7</string>
</entry>
</elementAttributes>
<pos x="2200" y="840"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f8</string>
</entry>
</elementAttributes>
<pos x="2200" y="860"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f9</string>
</entry>
</elementAttributes>
<pos x="2200" y="880"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f10</string>
</entry>
</elementAttributes>
<pos x="2200" y="900"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f11</string>
</entry>
</elementAttributes>
<pos x="2200" y="920"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f12</string>
</entry>
</elementAttributes>
<pos x="2200" y="940"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f13</string>
</entry>
</elementAttributes>
<pos x="2200" y="960"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>f14</string>
</entry>
</elementAttributes>
<pos x="2200" y="980"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>Co</string>
</entry>
</elementAttributes>
<pos x="2360" y="840"/>
</visualElement>
<visualElement>
<elementName>revert.dig</elementName>
<elementAttributes/>
<pos x="0" y="380"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>SR</string>
</entry>
</elementAttributes>
<pos x="-100" y="420"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
<string>sr</string>
</entry>
</elementAttributes>
<pos x="-40" y="480"/>
</visualElement>
<visualElement>
<elementName>revert.dig</elementName>
<elementAttributes/>
<pos x="2380" y="500"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
<string>sr</string>
</entry>
</elementAttributes>
<pos x="2340" y="540"/>
</visualElement>
</visualElements> </visualElements>
<wires> <wires>
<wire> <wire>
@ -1150,6 +1428,10 @@
<p1 x="1660" y="520"/> <p1 x="1660" y="520"/>
<p2 x="1680" y="520"/> <p2 x="1680" y="520"/>
</wire> </wire>
<wire>
<p1 x="2440" y="520"/>
<p2 x="2480" y="520"/>
</wire>
<wire> <wire>
<p1 x="220" y="-780"/> <p1 x="220" y="-780"/>
<p2 x="520" y="-780"/> <p2 x="520" y="-780"/>
@ -1170,6 +1452,10 @@
<p1 x="1520" y="780"/> <p1 x="1520" y="780"/>
<p2 x="1540" y="780"/> <p2 x="1540" y="780"/>
</wire> </wire>
<wire>
<p1 x="2200" y="780"/>
<p2 x="2240" y="780"/>
</wire>
<wire> <wire>
<p1 x="1740" y="-1040"/> <p1 x="1740" y="-1040"/>
<p2 x="1780" y="-1040"/> <p2 x="1780" y="-1040"/>
@ -1294,6 +1580,10 @@
<p1 x="80" y="540"/> <p1 x="80" y="540"/>
<p2 x="160" y="540"/> <p2 x="160" y="540"/>
</wire> </wire>
<wire>
<p1 x="2340" y="540"/>
<p2 x="2380" y="540"/>
</wire>
<wire> <wire>
<p1 x="780" y="800"/> <p1 x="780" y="800"/>
<p2 x="840" y="800"/> <p2 x="840" y="800"/>
@ -1306,6 +1596,10 @@
<p1 x="1400" y="800"/> <p1 x="1400" y="800"/>
<p2 x="1480" y="800"/> <p2 x="1480" y="800"/>
</wire> </wire>
<wire>
<p1 x="2200" y="800"/>
<p2 x="2240" y="800"/>
</wire>
<wire> <wire>
<p1 x="1560" y="1060"/> <p1 x="1560" y="1060"/>
<p2 x="1680" y="1060"/> <p2 x="1680" y="1060"/>
@ -1442,6 +1736,10 @@
<p1 x="1500" y="820"/> <p1 x="1500" y="820"/>
<p2 x="1680" y="820"/> <p2 x="1680" y="820"/>
</wire> </wire>
<wire>
<p1 x="2200" y="820"/>
<p2 x="2240" y="820"/>
</wire>
<wire> <wire>
<p1 x="1540" y="-1080"/> <p1 x="1540" y="-1080"/>
<p2 x="1780" y="-1080"/> <p2 x="1780" y="-1080"/>
@ -1574,6 +1872,14 @@
<p1 x="1440" y="840"/> <p1 x="1440" y="840"/>
<p2 x="1500" y="840"/> <p2 x="1500" y="840"/>
</wire> </wire>
<wire>
<p1 x="2200" y="840"/>
<p2 x="2240" y="840"/>
</wire>
<wire>
<p1 x="2320" y="840"/>
<p2 x="2360" y="840"/>
</wire>
<wire> <wire>
<p1 x="1860" y="-1100"/> <p1 x="1860" y="-1100"/>
<p2 x="1980" y="-1100"/> <p2 x="1980" y="-1100"/>
@ -1702,6 +2008,10 @@
<p1 x="1540" y="860"/> <p1 x="1540" y="860"/>
<p2 x="1560" y="860"/> <p2 x="1560" y="860"/>
</wire> </wire>
<wire>
<p1 x="2200" y="860"/>
<p2 x="2240" y="860"/>
</wire>
<wire> <wire>
<p1 x="1740" y="-1120"/> <p1 x="1740" y="-1120"/>
<p2 x="1780" y="-1120"/> <p2 x="1780" y="-1120"/>
@ -1818,6 +2128,10 @@
<p1 x="1400" y="880"/> <p1 x="1400" y="880"/>
<p2 x="1500" y="880"/> <p2 x="1500" y="880"/>
</wire> </wire>
<wire>
<p1 x="2200" y="880"/>
<p2 x="2240" y="880"/>
</wire>
<wire> <wire>
<p1 x="1580" y="1140"/> <p1 x="1580" y="1140"/>
<p2 x="1680" y="1140"/> <p2 x="1680" y="1140"/>
@ -1898,6 +2212,10 @@
<p1 x="1860" y="380"/> <p1 x="1860" y="380"/>
<p2 x="2260" y="380"/> <p2 x="2260" y="380"/>
</wire> </wire>
<wire>
<p1 x="-100" y="380"/>
<p2 x="0" y="380"/>
</wire>
<wire> <wire>
<p1 x="1060" y="380"/> <p1 x="1060" y="380"/>
<p2 x="1200" y="380"/> <p2 x="1200" y="380"/>
@ -1946,6 +2264,10 @@
<p1 x="1520" y="900"/> <p1 x="1520" y="900"/>
<p2 x="1680" y="900"/> <p2 x="1680" y="900"/>
</wire> </wire>
<wire>
<p1 x="2200" y="900"/>
<p2 x="2240" y="900"/>
</wire>
<wire> <wire>
<p1 x="1560" y="-1160"/> <p1 x="1560" y="-1160"/>
<p2 x="1780" y="-1160"/> <p2 x="1780" y="-1160"/>
@ -2039,7 +2361,7 @@
<p2 x="2260" y="400"/> <p2 x="2260" y="400"/>
</wire> </wire>
<wire> <wire>
<p1 x="80" y="400"/> <p1 x="60" y="400"/>
<p2 x="180" y="400"/> <p2 x="180" y="400"/>
</wire> </wire>
<wire> <wire>
@ -2078,6 +2400,10 @@
<p1 x="1440" y="920"/> <p1 x="1440" y="920"/>
<p2 x="1520" y="920"/> <p2 x="1520" y="920"/>
</wire> </wire>
<wire>
<p1 x="2200" y="920"/>
<p2 x="2240" y="920"/>
</wire>
<wire> <wire>
<p1 x="1860" y="-1180"/> <p1 x="1860" y="-1180"/>
<p2 x="1980" y="-1180"/> <p2 x="1980" y="-1180"/>
@ -2174,6 +2500,14 @@
<p1 x="1820" y="420"/> <p1 x="1820" y="420"/>
<p2 x="2260" y="420"/> <p2 x="2260" y="420"/>
</wire> </wire>
<wire>
<p1 x="-100" y="420"/>
<p2 x="-60" y="420"/>
</wire>
<wire>
<p1 x="-60" y="420"/>
<p2 x="0" y="420"/>
</wire>
<wire> <wire>
<p1 x="1220" y="-680"/> <p1 x="1220" y="-680"/>
<p2 x="1260" y="-680"/> <p2 x="1260" y="-680"/>
@ -2214,6 +2548,10 @@
<p1 x="1560" y="940"/> <p1 x="1560" y="940"/>
<p2 x="1580" y="940"/> <p2 x="1580" y="940"/>
</wire> </wire>
<wire>
<p1 x="2200" y="940"/>
<p2 x="2240" y="940"/>
</wire>
<wire> <wire>
<p1 x="1740" y="-1200"/> <p1 x="1740" y="-1200"/>
<p2 x="1780" y="-1200"/> <p2 x="1780" y="-1200"/>
@ -2330,6 +2668,10 @@
<p1 x="1500" y="700"/> <p1 x="1500" y="700"/>
<p2 x="1520" y="700"/> <p2 x="1520" y="700"/>
</wire> </wire>
<wire>
<p1 x="2200" y="700"/>
<p2 x="2240" y="700"/>
</wire>
<wire> <wire>
<p1 x="1020" y="960"/> <p1 x="1020" y="960"/>
<p2 x="1120" y="960"/> <p2 x="1120" y="960"/>
@ -2338,6 +2680,10 @@
<p1 x="1400" y="960"/> <p1 x="1400" y="960"/>
<p2 x="1520" y="960"/> <p2 x="1520" y="960"/>
</wire> </wire>
<wire>
<p1 x="2200" y="960"/>
<p2 x="2240" y="960"/>
</wire>
<wire> <wire>
<p1 x="1600" y="1220"/> <p1 x="1600" y="1220"/>
<p2 x="1680" y="1220"/> <p2 x="1680" y="1220"/>
@ -2454,6 +2800,10 @@
<p1 x="1400" y="720"/> <p1 x="1400" y="720"/>
<p2 x="1460" y="720"/> <p2 x="1460" y="720"/>
</wire> </wire>
<wire>
<p1 x="2200" y="720"/>
<p2 x="2240" y="720"/>
</wire>
<wire> <wire>
<p1 x="1140" y="980"/> <p1 x="1140" y="980"/>
<p2 x="1200" y="980"/> <p2 x="1200" y="980"/>
@ -2462,6 +2812,10 @@
<p1 x="1540" y="980"/> <p1 x="1540" y="980"/>
<p2 x="1680" y="980"/> <p2 x="1680" y="980"/>
</wire> </wire>
<wire>
<p1 x="2200" y="980"/>
<p2 x="2240" y="980"/>
</wire>
<wire> <wire>
<p1 x="1580" y="-1240"/> <p1 x="1580" y="-1240"/>
<p2 x="1780" y="-1240"/> <p2 x="1780" y="-1240"/>
@ -2554,6 +2908,10 @@
<p1 x="1760" y="480"/> <p1 x="1760" y="480"/>
<p2 x="2260" y="480"/> <p2 x="2260" y="480"/>
</wire> </wire>
<wire>
<p1 x="-60" y="480"/>
<p2 x="-40" y="480"/>
</wire>
<wire> <wire>
<p1 x="1480" y="480"/> <p1 x="1480" y="480"/>
<p2 x="1680" y="480"/> <p2 x="1680" y="480"/>
@ -2582,6 +2940,10 @@
<p1 x="1480" y="740"/> <p1 x="1480" y="740"/>
<p2 x="1680" y="740"/> <p2 x="1680" y="740"/>
</wire> </wire>
<wire>
<p1 x="2200" y="740"/>
<p2 x="2240" y="740"/>
</wire>
<wire> <wire>
<p1 x="800" y="-1000"/> <p1 x="800" y="-1000"/>
<p2 x="940" y="-1000"/> <p2 x="940" y="-1000"/>
@ -2696,7 +3058,7 @@
</wire> </wire>
<wire> <wire>
<p1 x="2280" y="500"/> <p1 x="2280" y="500"/>
<p2 x="2360" y="500"/> <p2 x="2380" y="500"/>
</wire> </wire>
<wire> <wire>
<p1 x="580" y="-760"/> <p1 x="580" y="-760"/>
@ -2718,6 +3080,10 @@
<p1 x="1440" y="760"/> <p1 x="1440" y="760"/>
<p2 x="1480" y="760"/> <p2 x="1480" y="760"/>
</wire> </wire>
<wire>
<p1 x="2200" y="760"/>
<p2 x="2240" y="760"/>
</wire>
<wire> <wire>
<p1 x="1020" y="-1020"/> <p1 x="1020" y="-1020"/>
<p2 x="1060" y="-1020"/> <p2 x="1060" y="-1020"/>
@ -3342,6 +3708,10 @@
<p1 x="1080" y="720"/> <p1 x="1080" y="720"/>
<p2 x="1080" y="740"/> <p2 x="1080" y="740"/>
</wire> </wire>
<wire>
<p1 x="-60" y="420"/>
<p2 x="-60" y="480"/>
</wire>
<wire> <wire>
<p1 x="1340" y="-680"/> <p1 x="1340" y="-680"/>
<p2 x="1340" y="-80"/> <p2 x="1340" y="-80"/>

@ -0,0 +1,490 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>1</version>
<attributes/>
<visualElements>
<visualElement>
<elementName>Mul</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="1040" y="300"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>S</string>
</entry>
</elementAttributes>
<pos x="600" y="560"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>a</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="600" y="280"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>b</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="600" y="500"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>15,1</string>
</entry>
</elementAttributes>
<pos x="680" y="280"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="800" y="300"/>
</visualElement>
<visualElement>
<elementName>Neg</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="780" y="240"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="880" y="200"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>15,1</string>
</entry>
</elementAttributes>
<pos x="680" y="500"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="800" y="520"/>
</visualElement>
<visualElement>
<elementName>Neg</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="780" y="460"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="880" y="420"/>
</visualElement>
<visualElement>
<elementName>XOr</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="780" y="640"/>
</visualElement>
<visualElement>
<elementName>And</elementName>
<elementAttributes>
<entry>
<string>wideShape</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
<pos x="900" y="660"/>
</visualElement>
<visualElement>
<elementName>Neg</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
</elementAttributes>
<pos x="1160" y="320"/>
</visualElement>
<visualElement>
<elementName>Add</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
</elementAttributes>
<pos x="1280" y="320"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes>
<entry>
<string>Value</string>
<long>0</long>
</entry>
</elementAttributes>
<pos x="1240" y="360"/>
</visualElement>
<visualElement>
<elementName>Const</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
</elementAttributes>
<pos x="1260" y="340"/>
</visualElement>
<visualElement>
<elementName>Multiplexer</elementName>
<elementAttributes>
<entry>
<string>Bits</string>
<int>32</int>
</entry>
</elementAttributes>
<pos x="1400" y="280"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
<string>32</string>
</entry>
<entry>
<string>Output Splitting</string>
<string>16,16</string>
</entry>
</elementAttributes>
<pos x="1500" y="300"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>m0</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="1580" y="280"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Label</string>
<string>m1</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
<pos x="1580" y="340"/>
</visualElement>
</visualElements>
<wires>
<wire>
<p1 x="880" y="320"/>
<p2 x="900" y="320"/>
</wire>
<wire>
<p1 x="1100" y="320"/>
<p2 x="1140" y="320"/>
</wire>
<wire>
<p1 x="1220" y="320"/>
<p2 x="1280" y="320"/>
</wire>
<wire>
<p1 x="1340" y="320"/>
<p2 x="1400" y="320"/>
</wire>
<wire>
<p1 x="1520" y="320"/>
<p2 x="1560" y="320"/>
</wire>
<wire>
<p1 x="1140" y="320"/>
<p2 x="1160" y="320"/>
</wire>
<wire>
<p1 x="760" y="640"/>
<p2 x="780" y="640"/>
</wire>
<wire>
<p1 x="640" y="420"/>
<p2 x="880" y="420"/>
</wire>
<wire>
<p1 x="640" y="200"/>
<p2 x="880" y="200"/>
</wire>
<wire>
<p1 x="700" y="520"/>
<p2 x="760" y="520"/>
</wire>
<wire>
<p1 x="760" y="520"/>
<p2 x="800" y="520"/>
</wire>
<wire>
<p1 x="740" y="680"/>
<p2 x="780" y="680"/>
</wire>
<wire>
<p1 x="980" y="680"/>
<p2 x="1420" y="680"/>
</wire>
<wire>
<p1 x="1240" y="360"/>
<p2 x="1280" y="360"/>
</wire>
<wire>
<p1 x="980" y="300"/>
<p2 x="1040" y="300"/>
</wire>
<wire>
<p1 x="700" y="300"/>
<p2 x="740" y="300"/>
</wire>
<wire>
<p1 x="1440" y="300"/>
<p2 x="1500" y="300"/>
</wire>
<wire>
<p1 x="1520" y="300"/>
<p2 x="1560" y="300"/>
</wire>
<wire>
<p1 x="740" y="300"/>
<p2 x="800" y="300"/>
</wire>
<wire>
<p1 x="640" y="460"/>
<p2 x="780" y="460"/>
</wire>
<wire>
<p1 x="840" y="460"/>
<p2 x="880" y="460"/>
</wire>
<wire>
<p1 x="600" y="560"/>
<p2 x="620" y="560"/>
</wire>
<wire>
<p1 x="620" y="560"/>
<p2 x="800" y="560"/>
</wire>
<wire>
<p1 x="640" y="240"/>
<p2 x="780" y="240"/>
</wire>
<wire>
<p1 x="840" y="240"/>
<p2 x="880" y="240"/>
</wire>
<wire>
<p1 x="620" y="720"/>
<p2 x="860" y="720"/>
</wire>
<wire>
<p1 x="980" y="340"/>
<p2 x="1040" y="340"/>
</wire>
<wire>
<p1 x="620" y="340"/>
<p2 x="800" y="340"/>
</wire>
<wire>
<p1 x="1260" y="340"/>
<p2 x="1280" y="340"/>
</wire>
<wire>
<p1 x="1560" y="340"/>
<p2 x="1580" y="340"/>
</wire>
<wire>
<p1 x="600" y="500"/>
<p2 x="640" y="500"/>
</wire>
<wire>
<p1 x="640" y="500"/>
<p2 x="680" y="500"/>
</wire>
<wire>
<p1 x="860" y="660"/>
<p2 x="900" y="660"/>
</wire>
<wire>
<p1 x="600" y="280"/>
<p2 x="640" y="280"/>
</wire>
<wire>
<p1 x="1140" y="280"/>
<p2 x="1400" y="280"/>
</wire>
<wire>
<p1 x="1560" y="280"/>
<p2 x="1580" y="280"/>
</wire>
<wire>
<p1 x="640" y="280"/>
<p2 x="680" y="280"/>
</wire>
<wire>
<p1 x="920" y="440"/>
<p2 x="980" y="440"/>
</wire>
<wire>
<p1 x="880" y="540"/>
<p2 x="900" y="540"/>
</wire>
<wire>
<p1 x="920" y="220"/>
<p2 x="980" y="220"/>
</wire>
<wire>
<p1 x="860" y="700"/>
<p2 x="900" y="700"/>
</wire>
<wire>
<p1 x="640" y="200"/>
<p2 x="640" y="240"/>
</wire>
<wire>
<p1 x="640" y="420"/>
<p2 x="640" y="460"/>
</wire>
<wire>
<p1 x="640" y="460"/>
<p2 x="640" y="500"/>
</wire>
<wire>
<p1 x="640" y="240"/>
<p2 x="640" y="280"/>
</wire>
<wire>
<p1 x="900" y="460"/>
<p2 x="900" y="540"/>
</wire>
<wire>
<p1 x="900" y="240"/>
<p2 x="900" y="320"/>
</wire>
<wire>
<p1 x="980" y="340"/>
<p2 x="980" y="440"/>
</wire>
<wire>
<p1 x="980" y="220"/>
<p2 x="980" y="300"/>
</wire>
<wire>
<p1 x="740" y="300"/>
<p2 x="740" y="680"/>
</wire>
<wire>
<p1 x="1140" y="280"/>
<p2 x="1140" y="320"/>
</wire>
<wire>
<p1 x="760" y="520"/>
<p2 x="760" y="640"/>
</wire>
<wire>
<p1 x="1560" y="280"/>
<p2 x="1560" y="300"/>
</wire>
<wire>
<p1 x="1560" y="320"/>
<p2 x="1560" y="340"/>
</wire>
<wire>
<p1 x="1420" y="320"/>
<p2 x="1420" y="680"/>
</wire>
<wire>
<p1 x="620" y="340"/>
<p2 x="620" y="560"/>
</wire>
<wire>
<p1 x="620" y="560"/>
<p2 x="620" y="720"/>
</wire>
<wire>
<p1 x="860" y="700"/>
<p2 x="860" y="720"/>
</wire>
</wires>
<measurementOrdering/>
</circuit>
Loading…
Cancel
Save