1
Fork 0
mirror of https://github.com/Steffo99/fermi-ser-2016-aialu.git synced 2024-10-16 05:17:25 +00:00
ser-2016-aialu/aiAlu.circ
2016-03-09 10:46:38 +01:00

1504 lines
59 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0">
<tool name="Tunnel">
<a name="facing" val="east"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#I/O" name="2"/>
<lib desc="#Base" name="3">
<tool name="Text Tool">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
</lib>
<main name="aiALU"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="3" map="Button2" name="Menu Tool"/>
<tool lib="3" map="Button3" name="Menu Tool"/>
<tool lib="3" map="Ctrl Button1" name="Menu Tool"/>
</mappings>
<toolbar>
<tool lib="3" name="Poke Tool"/>
<tool lib="3" name="Edit Tool"/>
<tool lib="3" name="Text Tool">
<a name="text" val=""/>
<a name="font" val="SansSerif plain 12"/>
<a name="halign" val="center"/>
<a name="valign" val="base"/>
</tool>
<sep/>
<tool lib="0" name="Pin">
<a name="tristate" val="false"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate"/>
<tool lib="1" name="OR Gate"/>
</toolbar>
<circuit name="aiALU">
<a name="circuit" val="aiALU"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(420,230)" to="(480,230)"/>
<wire from="(550,190)" to="(600,190)"/>
<wire from="(260,120)" to="(260,130)"/>
<wire from="(500,140)" to="(550,140)"/>
<wire from="(630,80)" to="(630,150)"/>
<wire from="(260,220)" to="(260,240)"/>
<wire from="(330,170)" to="(500,170)"/>
<wire from="(140,160)" to="(140,180)"/>
<wire from="(500,140)" to="(500,170)"/>
<wire from="(180,90)" to="(220,90)"/>
<wire from="(140,40)" to="(140,70)"/>
<wire from="(140,100)" to="(140,130)"/>
<wire from="(140,70)" to="(230,70)"/>
<wire from="(610,80)" to="(630,80)"/>
<wire from="(440,100)" to="(440,260)"/>
<wire from="(220,90)" to="(220,190)"/>
<wire from="(120,200)" to="(120,240)"/>
<wire from="(460,210)" to="(480,210)"/>
<wire from="(120,70)" to="(140,70)"/>
<wire from="(120,130)" to="(140,130)"/>
<wire from="(220,190)" to="(240,190)"/>
<wire from="(220,90)" to="(240,90)"/>
<wire from="(230,170)" to="(240,170)"/>
<wire from="(230,70)" to="(240,70)"/>
<wire from="(440,260)" to="(640,260)"/>
<wire from="(550,180)" to="(550,190)"/>
<wire from="(580,150)" to="(630,150)"/>
<wire from="(180,90)" to="(180,100)"/>
<wire from="(120,190)" to="(120,200)"/>
<wire from="(640,130)" to="(640,260)"/>
<wire from="(460,210)" to="(460,220)"/>
<wire from="(500,90)" to="(500,110)"/>
<wire from="(260,240)" to="(370,240)"/>
<wire from="(600,190)" to="(600,220)"/>
<wire from="(140,100)" to="(180,100)"/>
<wire from="(160,130)" to="(160,160)"/>
<wire from="(160,130)" to="(260,130)"/>
<wire from="(420,220)" to="(460,220)"/>
<wire from="(510,130)" to="(550,130)"/>
<wire from="(580,220)" to="(600,220)"/>
<wire from="(230,70)" to="(230,170)"/>
<wire from="(300,80)" to="(510,80)"/>
<wire from="(520,220)" to="(540,220)"/>
<wire from="(120,40)" to="(140,40)"/>
<wire from="(120,100)" to="(140,100)"/>
<wire from="(500,110)" to="(650,110)"/>
<wire from="(140,160)" to="(160,160)"/>
<wire from="(300,100)" to="(440,100)"/>
<wire from="(120,240)" to="(260,240)"/>
<wire from="(510,80)" to="(510,130)"/>
<wire from="(110,200)" to="(120,200)"/>
<wire from="(300,90)" to="(500,90)"/>
<wire from="(630,80)" to="(640,80)"/>
<wire from="(640,130)" to="(650,130)"/>
<comp loc="(330,170)" name="aiLogic"/>
<comp lib="0" loc="(120,70)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="0" loc="(110,200)" name="Pin">
<a name="width" val="3"/>
<a name="tristate" val="false"/>
<a name="label" val="Select"/>
</comp>
<comp lib="0" loc="(650,110)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Overflow"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(300,80)" name="aiArith"/>
<comp lib="0" loc="(370,240)" name="Splitter">
<a name="incoming" val="3"/>
<a name="bit0" val="none"/>
<a name="bit1" val="0"/>
<a name="bit2" val="1"/>
</comp>
<comp lib="1" loc="(420,230)" name="NOT Gate"/>
<comp loc="(580,150)" name="MUX8data"/>
<comp lib="0" loc="(120,100)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="3" loc="(58,273)" name="Text">
<a name="text" val="011: A | B"/>
</comp>
<comp lib="0" loc="(640,80)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Output"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(610,80)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp lib="0" loc="(650,130)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Carry"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(120,40)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp lib="3" loc="(47,307)" name="Text">
<a name="text" val="101: !A"/>
</comp>
<comp lib="0" loc="(580,220)" name="Bit Extender">
<a name="in_width" val="1"/>
<a name="out_width" val="2"/>
</comp>
<comp lib="1" loc="(420,220)" name="NOT Gate"/>
<comp lib="3" loc="(61,259)" name="Text">
<a name="text" val="010: A &amp; B"/>
</comp>
<comp lib="0" loc="(120,190)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="3"/>
<a name="bit1" val="none"/>
<a name="bit2" val="none"/>
</comp>
<comp lib="3" loc="(45,334)" name="Text">
<a name="text" val="111: 0"/>
</comp>
<comp lib="3" loc="(60,231)" name="Text">
<a name="text" val="000: A + B"/>
</comp>
<comp lib="3" loc="(46,320)" name="Text">
<a name="text" val="110: !B"/>
</comp>
<comp lib="3" loc="(58,292)" name="Text">
<a name="text" val="100: A xor B"/>
</comp>
<comp lib="1" loc="(520,220)" name="NAND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(120,130)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp lib="3" loc="(57,245)" name="Text">
<a name="text" val="001: A - B"/>
</comp>
</circuit>
<circuit name="aiArith">
<a name="circuit" val="aiArith"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M76,51 Q80,61 84,51" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="60" stroke="#000000" stroke-width="2" width="60" x="50" y="50"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="80" y="69">aiArith</text>
<polygon fill="#c9c9c9" points="65,74 65,80 59,80 59,86 65,86 65,92 71,92 71,86 77,86 77,80 71,80 71,74" stroke="none"/>
<polyline fill="#c9c9c9" points="81,80 101,80 101,86 81,86" stroke="none"/>
<circ-port height="8" pin="120,70" width="8" x="46" y="56"/>
<circ-port height="8" pin="120,100" width="8" x="46" y="76"/>
<circ-port height="8" pin="120,240" width="8" x="66" y="106"/>
<circ-port height="10" pin="800,60" width="10" x="105" y="65"/>
<circ-port height="10" pin="800,90" width="10" x="105" y="75"/>
<circ-port height="10" pin="800,120" width="10" x="105" y="85"/>
<circ-anchor facing="east" height="6" width="6" x="107" y="67"/>
</appear>
<wire from="(440,190)" to="(500,190)"/>
<wire from="(230,150)" to="(230,160)"/>
<wire from="(440,200)" to="(440,210)"/>
<wire from="(500,220)" to="(500,230)"/>
<wire from="(500,320)" to="(500,330)"/>
<wire from="(160,70)" to="(160,150)"/>
<wire from="(170,100)" to="(170,180)"/>
<wire from="(360,90)" to="(360,170)"/>
<wire from="(450,160)" to="(450,240)"/>
<wire from="(450,130)" to="(450,160)"/>
<wire from="(280,100)" to="(280,130)"/>
<wire from="(450,160)" to="(540,160)"/>
<wire from="(220,180)" to="(250,180)"/>
<wire from="(120,100)" to="(150,100)"/>
<wire from="(360,90)" to="(450,90)"/>
<wire from="(120,40)" to="(150,40)"/>
<wire from="(760,60)" to="(760,100)"/>
<wire from="(290,80)" to="(450,80)"/>
<wire from="(160,70)" to="(250,70)"/>
<wire from="(280,130)" to="(440,130)"/>
<wire from="(280,210)" to="(440,210)"/>
<wire from="(520,290)" to="(540,290)"/>
<wire from="(580,170)" to="(790,170)"/>
<wire from="(760,60)" to="(790,60)"/>
<wire from="(430,100)" to="(450,100)"/>
<wire from="(800,120)" to="(800,280)"/>
<wire from="(580,280)" to="(800,280)"/>
<wire from="(150,100)" to="(170,100)"/>
<wire from="(170,180)" to="(190,180)"/>
<wire from="(230,160)" to="(250,160)"/>
<wire from="(290,180)" to="(430,180)"/>
<wire from="(150,70)" to="(160,70)"/>
<wire from="(160,150)" to="(230,150)"/>
<wire from="(790,90)" to="(800,90)"/>
<wire from="(780,40)" to="(790,40)"/>
<wire from="(290,90)" to="(350,90)"/>
<wire from="(440,200)" to="(500,200)"/>
<wire from="(430,180)" to="(430,310)"/>
<wire from="(120,240)" to="(180,240)"/>
<wire from="(220,90)" to="(220,100)"/>
<wire from="(170,100)" to="(220,100)"/>
<wire from="(430,100)" to="(430,110)"/>
<wire from="(500,210)" to="(500,220)"/>
<wire from="(500,330)" to="(500,340)"/>
<wire from="(280,190)" to="(280,210)"/>
<wire from="(350,90)" to="(350,300)"/>
<wire from="(450,240)" to="(450,270)"/>
<wire from="(220,240)" to="(450,240)"/>
<wire from="(150,40)" to="(150,70)"/>
<wire from="(150,100)" to="(150,130)"/>
<wire from="(790,90)" to="(790,170)"/>
<wire from="(790,40)" to="(790,60)"/>
<wire from="(450,270)" to="(540,270)"/>
<wire from="(220,90)" to="(250,90)"/>
<wire from="(120,70)" to="(150,70)"/>
<wire from="(120,130)" to="(150,130)"/>
<wire from="(430,110)" to="(450,110)"/>
<wire from="(410,110)" to="(430,110)"/>
<wire from="(520,180)" to="(540,180)"/>
<wire from="(480,100)" to="(760,100)"/>
<wire from="(350,300)" to="(500,300)"/>
<wire from="(440,130)" to="(440,190)"/>
<wire from="(430,310)" to="(500,310)"/>
<wire from="(790,60)" to="(800,60)"/>
<wire from="(290,170)" to="(360,170)"/>
<comp loc="(580,170)" name="MUX 4 inputs"/>
<comp lib="0" loc="(520,290)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp loc="(480,100)" name="MUX8data"/>
<comp lib="0" loc="(220,240)" name="Bit Extender">
<a name="in_width" val="1"/>
<a name="out_width" val="2"/>
</comp>
<comp lib="0" loc="(260,100)" name="Ground"/>
<comp lib="0" loc="(120,70)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="0" loc="(120,130)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp lib="0" loc="(500,340)" name="Ground"/>
<comp lib="0" loc="(800,90)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Overflow Check"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(410,110)" name="Constant">
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(800,60)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(269,55)" name="Text">
<a name="text" val="A + B"/>
</comp>
<comp lib="0" loc="(120,240)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Select"/>
</comp>
<comp loc="(220,180)" name="twoComplement"/>
<comp loc="(270,170)" name="aiSum"/>
<comp lib="0" loc="(520,180)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp loc="(580,280)" name="MUX 4 inputs"/>
<comp lib="0" loc="(500,230)" name="Ground"/>
<comp lib="0" loc="(120,100)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="0" loc="(800,120)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Carry Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(780,40)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp lib="0" loc="(120,40)" name="Probe">
<a name="radix" val="10signed"/>
</comp>
<comp loc="(270,80)" name="aiSum"/>
<comp lib="3" loc="(269,144)" name="Text">
<a name="text" val="A - B"/>
</comp>
<comp lib="0" loc="(260,190)" name="Ground"/>
</circuit>
<circuit name="aiLogic">
<a name="circuit" val="aiLogic"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M80,55 Q96,77 110,55" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="65" stroke="#000000" stroke-width="2" width="90" x="50" y="55"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="97" y="91">aiLogic</text>
<circ-port height="8" pin="350,140" width="8" x="66" y="116"/>
<circ-port height="8" pin="120,160" width="8" x="46" y="86"/>
<circ-port height="8" pin="120,230" width="8" x="46" y="66"/>
<circ-port height="10" pin="820,290" width="10" x="135" y="65"/>
<circ-anchor facing="east" height="6" width="6" x="137" y="67"/>
</appear>
<wire from="(440,190)" to="(440,260)"/>
<wire from="(500,170)" to="(560,170)"/>
<wire from="(770,290)" to="(820,290)"/>
<wire from="(130,460)" to="(190,460)"/>
<wire from="(160,520)" to="(210,520)"/>
<wire from="(700,270)" to="(740,270)"/>
<wire from="(200,210)" to="(200,290)"/>
<wire from="(150,230)" to="(150,380)"/>
<wire from="(450,400)" to="(560,400)"/>
<wire from="(190,210)" to="(190,230)"/>
<wire from="(320,350)" to="(430,350)"/>
<wire from="(480,410)" to="(480,490)"/>
<wire from="(430,350)" to="(430,380)"/>
<wire from="(590,180)" to="(700,180)"/>
<wire from="(470,120)" to="(470,210)"/>
<wire from="(500,120)" to="(530,120)"/>
<wire from="(450,400)" to="(450,510)"/>
<wire from="(480,490)" to="(500,490)"/>
<wire from="(430,390)" to="(430,430)"/>
<wire from="(190,440)" to="(210,440)"/>
<wire from="(190,210)" to="(200,210)"/>
<wire from="(180,160)" to="(190,160)"/>
<wire from="(220,260)" to="(230,260)"/>
<wire from="(220,180)" to="(230,180)"/>
<wire from="(500,120)" to="(500,170)"/>
<wire from="(180,350)" to="(250,350)"/>
<wire from="(430,390)" to="(560,390)"/>
<wire from="(530,70)" to="(530,120)"/>
<wire from="(180,160)" to="(180,350)"/>
<wire from="(400,320)" to="(650,320)"/>
<wire from="(690,320)" to="(740,320)"/>
<wire from="(270,510)" to="(450,510)"/>
<wire from="(440,190)" to="(560,190)"/>
<wire from="(700,180)" to="(700,270)"/>
<wire from="(220,180)" to="(220,260)"/>
<wire from="(190,160)" to="(190,180)"/>
<wire from="(190,440)" to="(190,460)"/>
<wire from="(120,160)" to="(160,160)"/>
<wire from="(150,230)" to="(190,230)"/>
<wire from="(490,210)" to="(490,430)"/>
<wire from="(150,380)" to="(250,380)"/>
<wire from="(490,70)" to="(530,70)"/>
<wire from="(190,180)" to="(220,180)"/>
<wire from="(530,120)" to="(530,160)"/>
<wire from="(200,290)" to="(230,290)"/>
<wire from="(200,210)" to="(230,210)"/>
<wire from="(270,430)" to="(430,430)"/>
<wire from="(130,230)" to="(130,460)"/>
<wire from="(350,140)" to="(380,140)"/>
<wire from="(720,280)" to="(740,280)"/>
<wire from="(530,160)" to="(560,160)"/>
<wire from="(160,160)" to="(160,520)"/>
<wire from="(470,210)" to="(490,210)"/>
<wire from="(280,180)" to="(560,180)"/>
<wire from="(160,160)" to="(180,160)"/>
<wire from="(130,230)" to="(150,230)"/>
<wire from="(290,260)" to="(440,260)"/>
<wire from="(720,280)" to="(720,400)"/>
<wire from="(120,230)" to="(130,230)"/>
<wire from="(480,410)" to="(560,410)"/>
<wire from="(590,400)" to="(720,400)"/>
<wire from="(430,380)" to="(560,380)"/>
<wire from="(400,130)" to="(400,320)"/>
<wire from="(400,120)" to="(470,120)"/>
<wire from="(490,210)" to="(560,210)"/>
<wire from="(490,430)" to="(560,430)"/>
<comp loc="(770,290)" name="MUX8data"/>
<comp loc="(270,430)" name="NOT "/>
<comp loc="(270,510)" name="NOT "/>
<comp loc="(290,260)" name="OR"/>
<comp lib="0" loc="(690,320)" name="Bit Extender">
<a name="in_width" val="1"/>
<a name="out_width" val="2"/>
</comp>
<comp loc="(280,180)" name="AND"/>
<comp lib="0" loc="(820,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(590,180)" name="MUX8data"/>
<comp lib="0" loc="(490,70)" name="Constant">
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</comp>
<comp loc="(590,400)" name="MUX8data"/>
<comp lib="0" loc="(500,490)" name="Constant">
<a name="facing" val="west"/>
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(120,230)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="0" loc="(350,140)" name="Pin">
<a name="width" val="3"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(380,140)" name="Splitter">
<a name="incoming" val="3"/>
<a name="bit1" val="0"/>
<a name="bit2" val="1"/>
</comp>
<comp lib="0" loc="(120,160)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp loc="(320,350)" name="XOR"/>
</circuit>
<circuit name="MUX 4 inputs">
<a name="circuit" val="MUX 4 inputs"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M65,54 Q70,67 74,57" fill="none" stroke="#808080" stroke-width="2"/>
<polygon fill="none" points="50,50 90,60 90,80 50,90" stroke="#000000" stroke-width="2"/>
<circ-port height="8" pin="50,30" width="8" x="46" y="56"/>
<circ-port height="8" pin="50,70" width="8" x="46" y="76"/>
<circ-port height="10" pin="430,130" width="10" x="85" y="65"/>
<circ-anchor facing="east" height="6" width="6" x="87" y="67"/>
</appear>
<wire from="(70,200)" to="(260,200)"/>
<wire from="(70,80)" to="(260,80)"/>
<wire from="(50,30)" to="(170,30)"/>
<wire from="(210,50)" to="(210,60)"/>
<wire from="(290,70)" to="(340,70)"/>
<wire from="(290,190)" to="(340,190)"/>
<wire from="(180,150)" to="(230,150)"/>
<wire from="(180,190)" to="(230,190)"/>
<wire from="(210,60)" to="(260,60)"/>
<wire from="(80,160)" to="(260,160)"/>
<wire from="(210,140)" to="(260,140)"/>
<wire from="(330,110)" to="(330,120)"/>
<wire from="(330,140)" to="(330,150)"/>
<wire from="(180,50)" to="(180,70)"/>
<wire from="(90,120)" to="(260,120)"/>
<wire from="(70,110)" to="(70,200)"/>
<wire from="(290,110)" to="(330,110)"/>
<wire from="(290,150)" to="(330,150)"/>
<wire from="(90,90)" to="(90,120)"/>
<wire from="(400,130)" to="(430,130)"/>
<wire from="(330,120)" to="(350,120)"/>
<wire from="(330,140)" to="(350,140)"/>
<wire from="(180,70)" to="(180,110)"/>
<wire from="(180,110)" to="(180,150)"/>
<wire from="(180,150)" to="(180,190)"/>
<wire from="(210,60)" to="(210,100)"/>
<wire from="(210,100)" to="(210,140)"/>
<wire from="(210,140)" to="(210,180)"/>
<wire from="(340,70)" to="(340,110)"/>
<wire from="(340,150)" to="(340,190)"/>
<wire from="(70,90)" to="(90,90)"/>
<wire from="(190,50)" to="(210,50)"/>
<wire from="(210,100)" to="(230,100)"/>
<wire from="(210,180)" to="(230,180)"/>
<wire from="(180,70)" to="(260,70)"/>
<wire from="(180,110)" to="(260,110)"/>
<wire from="(340,110)" to="(350,110)"/>
<wire from="(340,150)" to="(350,150)"/>
<wire from="(250,150)" to="(260,150)"/>
<wire from="(250,190)" to="(260,190)"/>
<wire from="(250,100)" to="(260,100)"/>
<wire from="(250,180)" to="(260,180)"/>
<wire from="(70,100)" to="(80,100)"/>
<wire from="(80,100)" to="(80,160)"/>
<comp lib="1" loc="(250,190)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(290,190)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(290,110)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(250,100)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(170,30)" name="Splitter">
<a name="facing" val="south"/>
</comp>
<comp lib="1" loc="(400,130)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(250,150)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(50,70)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="Data"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="1" loc="(290,70)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(290,150)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(250,180)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(430,130)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Output"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(50,70)" name="Splitter">
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
<a name="appear" val="right"/>
<a name="bit0" val="3"/>
<a name="bit1" val="2"/>
<a name="bit2" val="1"/>
<a name="bit3" val="0"/>
</comp>
<comp lib="0" loc="(50,30)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Select"/>
<a name="labelloc" val="north"/>
</comp>
</circuit>
<circuit name="fullAdder">
<a name="circuit" val="fullAdder"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M61,56 Q65,66 69,56" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="55"/>
<polygon fill="#c9c9c9" points="62,62 62,68 56,68 56,74 62,74 62,80 68,80 68,74 74,74 74,68 68,68 68,62" stroke="none"/>
<circ-port height="8" pin="70,60" width="8" x="46" y="56"/>
<circ-port height="8" pin="70,100" width="8" x="46" y="66"/>
<circ-port height="8" pin="70,140" width="8" x="46" y="76"/>
<circ-port height="10" pin="430,80" width="10" x="75" y="55"/>
<circ-port height="10" pin="430,270" width="10" x="75" y="75"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="57"/>
</appear>
<wire from="(80,60)" to="(80,190)"/>
<wire from="(90,100)" to="(90,230)"/>
<wire from="(80,190)" to="(140,190)"/>
<wire from="(190,210)" to="(240,210)"/>
<wire from="(190,330)" to="(240,330)"/>
<wire from="(90,230)" to="(140,230)"/>
<wire from="(130,140)" to="(130,350)"/>
<wire from="(220,60)" to="(220,80)"/>
<wire from="(100,100)" to="(100,250)"/>
<wire from="(320,270)" to="(430,270)"/>
<wire from="(110,140)" to="(110,290)"/>
<wire from="(100,250)" to="(140,250)"/>
<wire from="(70,140)" to="(110,140)"/>
<wire from="(80,60)" to="(120,60)"/>
<wire from="(190,80)" to="(220,80)"/>
<wire from="(210,100)" to="(240,100)"/>
<wire from="(240,250)" to="(270,250)"/>
<wire from="(240,290)" to="(270,290)"/>
<wire from="(100,100)" to="(130,100)"/>
<wire from="(110,290)" to="(140,290)"/>
<wire from="(210,100)" to="(210,140)"/>
<wire from="(240,210)" to="(240,250)"/>
<wire from="(240,290)" to="(240,330)"/>
<wire from="(120,310)" to="(140,310)"/>
<wire from="(110,140)" to="(130,140)"/>
<wire from="(70,100)" to="(90,100)"/>
<wire from="(220,60)" to="(240,60)"/>
<wire from="(130,140)" to="(210,140)"/>
<wire from="(190,270)" to="(270,270)"/>
<wire from="(130,350)" to="(140,350)"/>
<wire from="(120,60)" to="(130,60)"/>
<wire from="(70,60)" to="(80,60)"/>
<wire from="(90,100)" to="(100,100)"/>
<wire from="(300,80)" to="(430,80)"/>
<wire from="(120,60)" to="(120,310)"/>
<comp lib="1" loc="(320,270)" name="OR Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(430,80)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Output"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(190,270)" name="AND Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(190,80)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(190,330)" name="AND Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(70,140)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Carry In"/>
</comp>
<comp lib="1" loc="(300,80)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(70,100)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="0" loc="(70,60)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="1" loc="(190,210)" name="AND Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(430,270)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Carry Out"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
<circuit name="aiSum">
<a name="circuit" val="aiSum"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M66,50 Q70,60 74,50" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="40" stroke="#000000" stroke-width="2" width="40" x="50" y="50"/>
<polygon fill="#c9c9c9" points="67,61 67,67 61,67 61,73 67,73 67,79 73,79 73,73 79,73 79,67 73,67 73,61" stroke="none"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="70" y="74">8</text>
<circ-port height="8" pin="140,40" width="8" x="56" y="86"/>
<circ-port height="8" pin="140,70" width="8" x="46" y="56"/>
<circ-port height="8" pin="140,100" width="8" x="46" y="76"/>
<circ-port height="10" pin="670,70" width="10" x="85" y="65"/>
<circ-port height="10" pin="670,100" width="10" x="75" y="85"/>
<circ-port height="10" pin="670,130" width="10" x="85" y="75"/>
<circ-anchor facing="east" height="6" width="6" x="67" y="67"/>
</appear>
<wire from="(260,90)" to="(510,90)"/>
<wire from="(440,470)" to="(500,470)"/>
<wire from="(210,360)" to="(210,430)"/>
<wire from="(480,200)" to="(480,210)"/>
<wire from="(590,120)" to="(630,120)"/>
<wire from="(260,90)" to="(260,170)"/>
<wire from="(210,360)" to="(510,360)"/>
<wire from="(140,70)" to="(180,70)"/>
<wire from="(620,150)" to="(620,360)"/>
<wire from="(250,90)" to="(250,120)"/>
<wire from="(440,230)" to="(440,330)"/>
<wire from="(410,430)" to="(440,430)"/>
<wire from="(310,420)" to="(330,420)"/>
<wire from="(540,160)" to="(570,160)"/>
<wire from="(490,200)" to="(510,200)"/>
<wire from="(230,240)" to="(510,240)"/>
<wire from="(500,220)" to="(510,220)"/>
<wire from="(500,140)" to="(510,140)"/>
<wire from="(250,130)" to="(250,180)"/>
<wire from="(500,180)" to="(510,180)"/>
<wire from="(500,260)" to="(510,260)"/>
<wire from="(500,300)" to="(510,300)"/>
<wire from="(500,340)" to="(510,340)"/>
<wire from="(500,380)" to="(510,380)"/>
<wire from="(540,360)" to="(620,360)"/>
<wire from="(200,190)" to="(270,190)"/>
<wire from="(140,40)" to="(270,40)"/>
<wire from="(660,100)" to="(670,100)"/>
<wire from="(540,100)" to="(550,100)"/>
<wire from="(540,140)" to="(550,140)"/>
<wire from="(540,180)" to="(550,180)"/>
<wire from="(540,220)" to="(550,220)"/>
<wire from="(540,260)" to="(550,260)"/>
<wire from="(540,300)" to="(550,300)"/>
<wire from="(540,340)" to="(550,340)"/>
<wire from="(250,120)" to="(510,120)"/>
<wire from="(450,290)" to="(510,290)"/>
<wire from="(580,110)" to="(630,110)"/>
<wire from="(500,110)" to="(550,110)"/>
<wire from="(500,150)" to="(550,150)"/>
<wire from="(500,190)" to="(550,190)"/>
<wire from="(500,230)" to="(550,230)"/>
<wire from="(500,270)" to="(550,270)"/>
<wire from="(500,310)" to="(550,310)"/>
<wire from="(500,350)" to="(550,350)"/>
<wire from="(200,90)" to="(250,90)"/>
<wire from="(540,200)" to="(580,200)"/>
<wire from="(310,400)" to="(310,420)"/>
<wire from="(210,150)" to="(210,360)"/>
<wire from="(220,150)" to="(460,150)"/>
<wire from="(560,90)" to="(560,120)"/>
<wire from="(500,110)" to="(500,140)"/>
<wire from="(500,150)" to="(500,180)"/>
<wire from="(500,190)" to="(500,220)"/>
<wire from="(500,230)" to="(500,260)"/>
<wire from="(500,270)" to="(500,300)"/>
<wire from="(500,310)" to="(500,340)"/>
<wire from="(500,350)" to="(500,380)"/>
<wire from="(200,140)" to="(430,140)"/>
<wire from="(540,380)" to="(650,380)"/>
<wire from="(200,100)" to="(240,100)"/>
<wire from="(470,250)" to="(510,250)"/>
<wire from="(660,100)" to="(660,460)"/>
<wire from="(410,480)" to="(440,480)"/>
<wire from="(650,130)" to="(670,130)"/>
<wire from="(540,80)" to="(630,80)"/>
<wire from="(200,450)" to="(200,500)"/>
<wire from="(430,140)" to="(430,320)"/>
<wire from="(250,500)" to="(260,500)"/>
<wire from="(570,100)" to="(570,160)"/>
<wire from="(270,40)" to="(270,100)"/>
<wire from="(170,100)" to="(170,160)"/>
<wire from="(310,470)" to="(380,470)"/>
<wire from="(250,130)" to="(510,130)"/>
<wire from="(620,150)" to="(630,150)"/>
<wire from="(450,220)" to="(450,290)"/>
<wire from="(200,240)" to="(200,370)"/>
<wire from="(440,450)" to="(500,450)"/>
<wire from="(540,240)" to="(590,240)"/>
<wire from="(200,170)" to="(260,170)"/>
<wire from="(200,450)" to="(260,450)"/>
<wire from="(200,80)" to="(510,80)"/>
<wire from="(460,280)" to="(510,280)"/>
<wire from="(570,100)" to="(630,100)"/>
<wire from="(200,180)" to="(250,180)"/>
<wire from="(210,430)" to="(260,430)"/>
<wire from="(270,170)" to="(270,190)"/>
<wire from="(580,110)" to="(580,200)"/>
<wire from="(200,370)" to="(200,450)"/>
<wire from="(270,170)" to="(510,170)"/>
<wire from="(140,100)" to="(170,100)"/>
<wire from="(200,120)" to="(230,120)"/>
<wire from="(620,360)" to="(620,400)"/>
<wire from="(290,440)" to="(380,440)"/>
<wire from="(610,140)" to="(630,140)"/>
<wire from="(470,210)" to="(470,250)"/>
<wire from="(200,130)" to="(220,130)"/>
<wire from="(590,120)" to="(590,240)"/>
<wire from="(240,160)" to="(510,160)"/>
<wire from="(210,430)" to="(210,480)"/>
<wire from="(560,90)" to="(630,90)"/>
<wire from="(230,120)" to="(230,240)"/>
<wire from="(440,330)" to="(510,330)"/>
<wire from="(240,100)" to="(240,160)"/>
<wire from="(550,140)" to="(550,150)"/>
<wire from="(550,180)" to="(550,190)"/>
<wire from="(550,100)" to="(550,110)"/>
<wire from="(550,220)" to="(550,230)"/>
<wire from="(550,260)" to="(550,270)"/>
<wire from="(550,300)" to="(550,310)"/>
<wire from="(550,340)" to="(550,350)"/>
<wire from="(460,150)" to="(460,280)"/>
<wire from="(200,220)" to="(450,220)"/>
<wire from="(200,370)" to="(510,370)"/>
<wire from="(540,280)" to="(600,280)"/>
<wire from="(440,470)" to="(440,480)"/>
<wire from="(310,400)" to="(620,400)"/>
<wire from="(440,430)" to="(440,450)"/>
<wire from="(200,230)" to="(440,230)"/>
<wire from="(270,100)" to="(510,100)"/>
<wire from="(220,130)" to="(220,150)"/>
<wire from="(200,110)" to="(490,110)"/>
<wire from="(490,110)" to="(490,200)"/>
<wire from="(600,130)" to="(600,280)"/>
<wire from="(290,490)" to="(380,490)"/>
<wire from="(540,120)" to="(560,120)"/>
<wire from="(480,210)" to="(510,210)"/>
<wire from="(650,70)" to="(670,70)"/>
<wire from="(360,420)" to="(380,420)"/>
<wire from="(200,200)" to="(480,200)"/>
<wire from="(600,130)" to="(630,130)"/>
<wire from="(200,500)" to="(220,500)"/>
<wire from="(200,210)" to="(470,210)"/>
<wire from="(540,320)" to="(610,320)"/>
<wire from="(250,480)" to="(260,480)"/>
<wire from="(650,130)" to="(650,380)"/>
<wire from="(170,160)" to="(180,160)"/>
<wire from="(200,150)" to="(210,150)"/>
<wire from="(210,480)" to="(220,480)"/>
<wire from="(430,320)" to="(510,320)"/>
<wire from="(310,420)" to="(310,470)"/>
<wire from="(530,460)" to="(660,460)"/>
<wire from="(610,140)" to="(610,320)"/>
<comp loc="(540,80)" name="fullAdder"/>
<comp lib="1" loc="(250,480)" name="NOT Gate"/>
<comp lib="0" loc="(670,100)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Overflow"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(540,280)" name="fullAdder"/>
<comp lib="1" loc="(410,430)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(670,70)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Sum"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(250,500)" name="NOT Gate"/>
<comp loc="(540,240)" name="fullAdder"/>
<comp lib="1" loc="(290,490)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp loc="(540,120)" name="fullAdder"/>
<comp lib="0" loc="(180,70)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp loc="(540,160)" name="fullAdder"/>
<comp lib="0" loc="(650,70)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="1" loc="(360,420)" name="NOT Gate"/>
<comp lib="0" loc="(140,70)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="1" loc="(290,440)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(140,40)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Carry In"/>
</comp>
<comp lib="1" loc="(410,480)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(670,130)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Carry Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp loc="(540,360)" name="fullAdder"/>
<comp lib="0" loc="(180,160)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp loc="(540,200)" name="fullAdder"/>
<comp lib="0" loc="(140,100)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp loc="(540,320)" name="fullAdder"/>
<comp lib="1" loc="(530,460)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
</circuit>
<circuit name="AND">
<a name="circuit" val="AND"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M61,50 Q75,67 89,51" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="50" stroke="#000000" stroke-width="2" width="50" x="50" y="50"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="73" y="81">AND</text>
<circ-port height="8" pin="120,60" width="8" x="46" y="56"/>
<circ-port height="8" pin="120,120" width="8" x="46" y="86"/>
<circ-port height="10" pin="310,90" width="10" x="95" y="55"/>
<circ-anchor facing="east" height="6" width="6" x="97" y="57"/>
</appear>
<wire from="(120,60)" to="(180,60)"/>
<wire from="(120,120)" to="(180,120)"/>
<wire from="(250,90)" to="(310,90)"/>
<wire from="(180,110)" to="(180,120)"/>
<wire from="(180,60)" to="(180,70)"/>
<wire from="(180,110)" to="(200,110)"/>
<wire from="(180,70)" to="(200,70)"/>
<comp lib="0" loc="(310,90)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(250,90)" name="AND Gate">
<a name="width" val="8"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(120,60)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(120,120)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
<circuit name="OR">
<a name="circuit" val="OR"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M70,51 Q81,70 90,51" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="50" stroke="#000000" stroke-width="2" width="60" x="50" y="50"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="80" y="82">OR</text>
<circ-port height="8" pin="170,90" width="8" x="46" y="56"/>
<circ-port height="8" pin="170,150" width="8" x="46" y="86"/>
<circ-port height="10" pin="360,120" width="10" x="105" y="55"/>
<circ-anchor facing="east" height="6" width="6" x="107" y="57"/>
</appear>
<wire from="(300,120)" to="(360,120)"/>
<wire from="(220,100)" to="(250,100)"/>
<wire from="(220,140)" to="(250,140)"/>
<wire from="(220,90)" to="(220,100)"/>
<wire from="(220,140)" to="(220,150)"/>
<wire from="(170,90)" to="(220,90)"/>
<wire from="(170,150)" to="(220,150)"/>
<comp lib="0" loc="(170,150)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="1" loc="(300,120)" name="OR Gate">
<a name="width" val="8"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(360,120)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(170,90)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
<circuit name="NOT ">
<a name="circuit" val="NOT "/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M70,56 Q80,72 90,56" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="56" stroke="#000000" stroke-width="2" width="60" x="50" y="55"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="79" y="90">NOT</text>
<circ-port height="8" pin="120,80" width="8" x="46" y="76"/>
<circ-port height="10" pin="240,80" width="10" x="105" y="65"/>
<circ-anchor facing="east" height="6" width="6" x="107" y="67"/>
</appear>
<wire from="(210,80)" to="(240,80)"/>
<wire from="(120,80)" to="(180,80)"/>
<comp lib="1" loc="(210,80)" name="NOT Gate">
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(240,80)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(120,80)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
<circuit name="XOR">
<a name="circuit" val="XOR"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M70,50 Q85,66 99,50" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="51" stroke="#000000" stroke-width="2" width="70" x="50" y="50"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="84" y="81">XOR</text>
<circ-port height="8" pin="110,80" width="8" x="46" y="56"/>
<circ-port height="8" pin="110,140" width="8" x="46" y="86"/>
<circ-port height="10" pin="310,110" width="10" x="115" y="55"/>
<circ-anchor facing="east" height="6" width="6" x="117" y="57"/>
</appear>
<wire from="(160,90)" to="(190,90)"/>
<wire from="(160,130)" to="(190,130)"/>
<wire from="(250,110)" to="(310,110)"/>
<wire from="(160,80)" to="(160,90)"/>
<wire from="(160,130)" to="(160,140)"/>
<wire from="(110,80)" to="(160,80)"/>
<wire from="(110,140)" to="(160,140)"/>
<comp lib="0" loc="(110,80)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="1" loc="(250,110)" name="XOR Gate">
<a name="width" val="8"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(310,110)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(110,140)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
<circuit name="twoComplement">
<a name="circuit" val="twoComplement"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M61,56 Q65,66 69,56" fill="none" stroke="#808080" stroke-width="2"/>
<rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="55"/>
<polyline fill="#c9c9c9" points="55,67 75,67 75,73 55,73" stroke="none"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="65" y="74">Inv</text>
<circ-port height="8" pin="140,60" width="8" x="46" y="66"/>
<circ-port height="10" pin="400,70" width="10" x="75" y="65"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="67"/>
</appear>
<wire from="(180,70)" to="(210,70)"/>
<wire from="(180,80)" to="(210,80)"/>
<wire from="(180,90)" to="(210,90)"/>
<wire from="(180,100)" to="(210,100)"/>
<wire from="(180,110)" to="(210,110)"/>
<wire from="(180,120)" to="(210,120)"/>
<wire from="(180,130)" to="(210,130)"/>
<wire from="(180,140)" to="(210,140)"/>
<wire from="(230,100)" to="(260,100)"/>
<wire from="(230,70)" to="(260,70)"/>
<wire from="(230,80)" to="(260,80)"/>
<wire from="(230,130)" to="(260,130)"/>
<wire from="(230,140)" to="(260,140)"/>
<wire from="(230,110)" to="(260,110)"/>
<wire from="(230,120)" to="(260,120)"/>
<wire from="(230,90)" to="(260,90)"/>
<wire from="(290,80)" to="(320,80)"/>
<wire from="(270,160)" to="(290,160)"/>
<wire from="(140,60)" to="(160,60)"/>
<wire from="(330,90)" to="(330,100)"/>
<wire from="(290,80)" to="(290,160)"/>
<wire from="(280,60)" to="(320,60)"/>
<wire from="(360,70)" to="(400,70)"/>
<comp lib="0" loc="(280,60)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="1" loc="(230,110)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(230,140)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(230,120)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(400,70)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(140,60)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="In"/>
</comp>
<comp loc="(340,70)" name="aiSum"/>
<comp lib="1" loc="(230,90)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(330,100)" name="Ground"/>
<comp lib="1" loc="(230,70)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(270,160)" name="Constant">
<a name="width" val="8"/>
</comp>
<comp lib="1" loc="(230,80)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(230,100)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="1" loc="(230,130)" name="NOT Gate">
<a name="size" val="20"/>
</comp>
<comp lib="0" loc="(160,60)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
</circuit>
<circuit name="MUX8data">
<a name="circuit" val="MUX8data"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M61,54 Q64,67 68,57" fill="none" stroke="#808080" stroke-width="2"/>
<polygon fill="none" points="50,50 50,110 80,100 80,60" stroke="#000000" stroke-width="2"/>
<text font-family="SansSerif" font-size="20" text-anchor="middle" x="65" y="88">8</text>
<circ-port height="8" pin="100,40" width="8" x="46" y="56"/>
<circ-port height="8" pin="100,70" width="8" x="46" y="66"/>
<circ-port height="8" pin="100,100" width="8" x="46" y="76"/>
<circ-port height="8" pin="100,130" width="8" x="46" y="86"/>
<circ-port height="8" pin="80,160" width="8" x="46" y="106"/>
<circ-port height="10" pin="830,40" width="10" x="75" y="75"/>
<circ-anchor facing="east" height="6" width="6" x="77" y="77"/>
</appear>
<wire from="(500,170)" to="(500,240)"/>
<wire from="(390,370)" to="(390,500)"/>
<wire from="(610,370)" to="(660,370)"/>
<wire from="(170,70)" to="(480,70)"/>
<wire from="(360,490)" to="(540,490)"/>
<wire from="(630,60)" to="(630,130)"/>
<wire from="(790,40)" to="(830,40)"/>
<wire from="(670,100)" to="(670,450)"/>
<wire from="(170,110)" to="(340,110)"/>
<wire from="(170,160)" to="(470,160)"/>
<wire from="(660,90)" to="(770,90)"/>
<wire from="(410,180)" to="(410,400)"/>
<wire from="(530,50)" to="(530,70)"/>
<wire from="(500,150)" to="(540,150)"/>
<wire from="(530,290)" to="(530,330)"/>
<wire from="(320,580)" to="(540,580)"/>
<wire from="(170,200)" to="(330,200)"/>
<wire from="(330,560)" to="(540,560)"/>
<wire from="(330,200)" to="(330,560)"/>
<wire from="(400,410)" to="(540,410)"/>
<wire from="(140,220)" to="(150,220)"/>
<wire from="(170,60)" to="(500,60)"/>
<wire from="(440,300)" to="(520,300)"/>
<wire from="(310,120)" to="(310,630)"/>
<wire from="(470,340)" to="(540,340)"/>
<wire from="(560,200)" to="(570,200)"/>
<wire from="(560,280)" to="(570,280)"/>
<wire from="(560,120)" to="(570,120)"/>
<wire from="(560,520)" to="(570,520)"/>
<wire from="(150,70)" to="(150,130)"/>
<wire from="(560,40)" to="(570,40)"/>
<wire from="(530,330)" to="(540,330)"/>
<wire from="(560,600)" to="(570,600)"/>
<wire from="(560,360)" to="(570,360)"/>
<wire from="(560,440)" to="(570,440)"/>
<wire from="(650,80)" to="(770,80)"/>
<wire from="(170,150)" to="(490,150)"/>
<wire from="(530,220)" to="(530,230)"/>
<wire from="(290,650)" to="(540,650)"/>
<wire from="(470,270)" to="(530,270)"/>
<wire from="(170,90)" to="(420,90)"/>
<wire from="(640,70)" to="(640,210)"/>
<wire from="(490,180)" to="(540,180)"/>
<wire from="(400,270)" to="(400,410)"/>
<wire from="(610,450)" to="(670,450)"/>
<wire from="(320,380)" to="(320,580)"/>
<wire from="(100,70)" to="(150,70)"/>
<wire from="(480,70)" to="(480,220)"/>
<wire from="(170,180)" to="(410,180)"/>
<wire from="(370,480)" to="(540,480)"/>
<wire from="(460,260)" to="(460,340)"/>
<wire from="(170,270)" to="(400,270)"/>
<wire from="(170,360)" to="(530,360)"/>
<wire from="(170,340)" to="(460,340)"/>
<wire from="(500,60)" to="(500,150)"/>
<wire from="(450,310)" to="(540,310)"/>
<wire from="(100,130)" to="(130,130)"/>
<wire from="(520,320)" to="(540,320)"/>
<wire from="(610,130)" to="(630,130)"/>
<wire from="(510,100)" to="(540,100)"/>
<wire from="(170,380)" to="(320,380)"/>
<wire from="(610,50)" to="(770,50)"/>
<wire from="(300,210)" to="(300,640)"/>
<wire from="(80,160)" to="(100,160)"/>
<wire from="(680,110)" to="(680,530)"/>
<wire from="(610,530)" to="(680,530)"/>
<wire from="(640,70)" to="(770,70)"/>
<wire from="(380,100)" to="(380,470)"/>
<wire from="(410,400)" to="(540,400)"/>
<wire from="(140,100)" to="(140,220)"/>
<wire from="(690,120)" to="(770,120)"/>
<wire from="(340,550)" to="(540,550)"/>
<wire from="(530,420)" to="(540,420)"/>
<wire from="(350,570)" to="(540,570)"/>
<wire from="(480,220)" to="(530,220)"/>
<wire from="(490,150)" to="(490,160)"/>
<wire from="(100,40)" to="(150,40)"/>
<wire from="(300,640)" to="(540,640)"/>
<wire from="(170,50)" to="(530,50)"/>
<wire from="(430,290)" to="(530,290)"/>
<wire from="(290,300)" to="(290,650)"/>
<wire from="(510,100)" to="(510,320)"/>
<wire from="(650,80)" to="(650,290)"/>
<wire from="(520,300)" to="(520,320)"/>
<wire from="(350,290)" to="(350,570)"/>
<wire from="(500,170)" to="(540,170)"/>
<wire from="(690,120)" to="(690,610)"/>
<wire from="(450,80)" to="(450,310)"/>
<wire from="(170,370)" to="(390,370)"/>
<wire from="(380,470)" to="(540,470)"/>
<wire from="(370,190)" to="(370,480)"/>
<wire from="(470,160)" to="(470,270)"/>
<wire from="(170,80)" to="(450,80)"/>
<wire from="(520,90)" to="(540,90)"/>
<wire from="(610,210)" to="(640,210)"/>
<wire from="(680,110)" to="(770,110)"/>
<wire from="(170,100)" to="(380,100)"/>
<wire from="(170,170)" to="(440,170)"/>
<wire from="(170,240)" to="(500,240)"/>
<wire from="(130,130)" to="(130,310)"/>
<wire from="(170,120)" to="(310,120)"/>
<wire from="(460,260)" to="(540,260)"/>
<wire from="(610,610)" to="(690,610)"/>
<wire from="(170,190)" to="(370,190)"/>
<wire from="(170,210)" to="(300,210)"/>
<wire from="(630,60)" to="(770,60)"/>
<wire from="(560,60)" to="(570,60)"/>
<wire from="(170,260)" to="(430,260)"/>
<wire from="(530,70)" to="(540,70)"/>
<wire from="(530,230)" to="(540,230)"/>
<wire from="(560,140)" to="(570,140)"/>
<wire from="(560,220)" to="(570,220)"/>
<wire from="(560,300)" to="(570,300)"/>
<wire from="(560,380)" to="(570,380)"/>
<wire from="(560,460)" to="(570,460)"/>
<wire from="(560,620)" to="(570,620)"/>
<wire from="(560,540)" to="(570,540)"/>
<wire from="(170,280)" to="(360,280)"/>
<wire from="(170,330)" to="(490,330)"/>
<wire from="(440,170)" to="(440,300)"/>
<wire from="(490,160)" to="(540,160)"/>
<wire from="(280,390)" to="(280,660)"/>
<wire from="(170,300)" to="(290,300)"/>
<wire from="(520,90)" to="(520,230)"/>
<wire from="(170,250)" to="(540,250)"/>
<wire from="(470,340)" to="(470,350)"/>
<wire from="(420,390)" to="(540,390)"/>
<wire from="(170,290)" to="(350,290)"/>
<wire from="(170,390)" to="(280,390)"/>
<wire from="(610,290)" to="(650,290)"/>
<wire from="(490,180)" to="(490,330)"/>
<wire from="(660,90)" to="(660,370)"/>
<wire from="(530,240)" to="(530,270)"/>
<wire from="(670,100)" to="(770,100)"/>
<wire from="(170,350)" to="(470,350)"/>
<wire from="(360,280)" to="(360,490)"/>
<wire from="(430,260)" to="(430,290)"/>
<wire from="(100,100)" to="(140,100)"/>
<wire from="(170,140)" to="(530,140)"/>
<wire from="(310,630)" to="(540,630)"/>
<wire from="(170,230)" to="(520,230)"/>
<wire from="(420,90)" to="(420,390)"/>
<wire from="(390,500)" to="(540,500)"/>
<wire from="(130,310)" to="(150,310)"/>
<wire from="(170,320)" to="(510,320)"/>
<wire from="(530,80)" to="(530,140)"/>
<wire from="(530,360)" to="(530,420)"/>
<wire from="(280,660)" to="(540,660)"/>
<wire from="(340,110)" to="(340,550)"/>
<wire from="(530,80)" to="(540,80)"/>
<wire from="(530,240)" to="(540,240)"/>
<comp lib="0" loc="(100,40)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="0" loc="(560,600)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(150,220)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(560,440)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(100,160)" name="Tunnel">
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp loc="(610,450)" name="MUX 4 inputs"/>
<comp loc="(610,130)" name="MUX 4 inputs"/>
<comp lib="0" loc="(150,40)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(100,70)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="0" loc="(560,280)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(150,310)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(560,300)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp loc="(610,290)" name="MUX 4 inputs"/>
<comp lib="0" loc="(560,200)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(560,120)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(560,360)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(560,140)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp loc="(610,210)" name="MUX 4 inputs"/>
<comp loc="(610,530)" name="MUX 4 inputs"/>
<comp lib="0" loc="(100,100)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="C"/>
</comp>
<comp lib="0" loc="(560,540)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp lib="0" loc="(560,460)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp lib="0" loc="(560,40)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(560,220)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp lib="0" loc="(830,40)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Y"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(150,130)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(80,160)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Select"/>
</comp>
<comp loc="(610,610)" name="MUX 4 inputs"/>
<comp lib="0" loc="(100,130)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="D"/>
</comp>
<comp lib="0" loc="(790,40)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="0" loc="(560,60)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp loc="(610,370)" name="MUX 4 inputs"/>
<comp loc="(610,50)" name="MUX 4 inputs"/>
<comp lib="0" loc="(560,620)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp lib="0" loc="(560,520)" name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="2"/>
<a name="label" val="S"/>
</comp>
<comp lib="0" loc="(560,380)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
</circuit>
</project>