logisim-stuff/cpu.circ
2015-07-15 07:59:02 -05:00

708 lines
25 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="Splitter">
<a name="incoming" val="8"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="1"/>
<a name="bit5" val="1"/>
<a name="bit6" val="1"/>
<a name="bit7" val="1"/>
</tool>
<tool name="Pin">
<a name="label" val="res"/>
</tool>
<tool name="Constant">
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2">
<tool name="Multiplexer">
<a name="width" val="8"/>
</tool>
</lib>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="Register">
<a name="width" val="1"/>
</tool>
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5">
<tool name="Button">
<a name="label" val="res"/>
</tool>
</lib>
<lib desc="#Base" name="6">
<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="main"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="6" map="Button2" name="Menu Tool"/>
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
<tool lib="6" map="Button3" name="Menu Tool"/>
</mappings>
<toolbar>
<tool lib="6" name="Poke Tool"/>
<tool lib="6" name="Edit Tool"/>
<tool lib="6" 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"/>
<a name="label" val="a"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="c"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate"/>
<tool lib="1" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</toolbar>
<circuit name="main">
<a name="circuit" val="main"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(500,440)" to="(530,440)"/>
<wire from="(490,330)" to="(490,350)"/>
<wire from="(540,450)" to="(540,530)"/>
<wire from="(390,660)" to="(480,660)"/>
<wire from="(310,800)" to="(340,800)"/>
<wire from="(410,380)" to="(520,380)"/>
<wire from="(490,570)" to="(490,610)"/>
<wire from="(400,520)" to="(400,550)"/>
<wire from="(290,600)" to="(310,600)"/>
<wire from="(510,550)" to="(610,550)"/>
<wire from="(560,340)" to="(560,360)"/>
<wire from="(90,910)" to="(570,910)"/>
<wire from="(330,340)" to="(330,410)"/>
<wire from="(360,280)" to="(670,280)"/>
<wire from="(160,350)" to="(490,350)"/>
<wire from="(470,680)" to="(470,780)"/>
<wire from="(80,620)" to="(130,620)"/>
<wire from="(360,280)" to="(360,330)"/>
<wire from="(550,460)" to="(590,460)"/>
<wire from="(480,660)" to="(480,790)"/>
<wire from="(200,410)" to="(270,410)"/>
<wire from="(380,610)" to="(410,610)"/>
<wire from="(110,330)" to="(360,330)"/>
<wire from="(640,140)" to="(640,290)"/>
<wire from="(270,410)" to="(330,410)"/>
<wire from="(90,450)" to="(110,450)"/>
<wire from="(250,540)" to="(450,540)"/>
<wire from="(570,300)" to="(590,300)"/>
<wire from="(430,500)" to="(430,530)"/>
<wire from="(220,500)" to="(220,520)"/>
<wire from="(510,520)" to="(510,550)"/>
<wire from="(440,360)" to="(500,360)"/>
<wire from="(380,680)" to="(470,680)"/>
<wire from="(30,460)" to="(50,460)"/>
<wire from="(80,450)" to="(90,450)"/>
<wire from="(570,670)" to="(570,910)"/>
<wire from="(400,520)" to="(510,520)"/>
<wire from="(280,460)" to="(280,480)"/>
<wire from="(250,500)" to="(250,540)"/>
<wire from="(390,620)" to="(410,620)"/>
<wire from="(420,550)" to="(420,600)"/>
<wire from="(450,870)" to="(450,900)"/>
<wire from="(470,340)" to="(560,340)"/>
<wire from="(510,310)" to="(550,310)"/>
<wire from="(500,460)" to="(520,460)"/>
<wire from="(200,530)" to="(200,570)"/>
<wire from="(490,610)" to="(490,670)"/>
<wire from="(500,410)" to="(500,440)"/>
<wire from="(290,610)" to="(310,610)"/>
<wire from="(440,340)" to="(440,360)"/>
<wire from="(410,310)" to="(480,310)"/>
<wire from="(270,410)" to="(270,560)"/>
<wire from="(160,530)" to="(200,530)"/>
<wire from="(310,460)" to="(360,460)"/>
<wire from="(310,610)" to="(310,800)"/>
<wire from="(420,550)" to="(460,550)"/>
<wire from="(590,410)" to="(590,460)"/>
<wire from="(440,810)" to="(620,810)"/>
<wire from="(110,450)" to="(200,450)"/>
<wire from="(520,600)" to="(520,610)"/>
<wire from="(500,330)" to="(500,360)"/>
<wire from="(520,660)" to="(520,670)"/>
<wire from="(110,330)" to="(110,450)"/>
<wire from="(560,360)" to="(620,360)"/>
<wire from="(460,540)" to="(560,540)"/>
<wire from="(510,410)" to="(510,430)"/>
<wire from="(500,530)" to="(500,610)"/>
<wire from="(470,500)" to="(470,560)"/>
<wire from="(430,580)" to="(430,600)"/>
<wire from="(600,390)" to="(610,390)"/>
<wire from="(480,640)" to="(510,640)"/>
<wire from="(200,410)" to="(200,450)"/>
<wire from="(530,670)" to="(570,670)"/>
<wire from="(380,800)" to="(410,800)"/>
<wire from="(270,560)" to="(470,560)"/>
<wire from="(530,610)" to="(570,610)"/>
<wire from="(90,450)" to="(90,910)"/>
<wire from="(500,610)" to="(520,610)"/>
<wire from="(200,570)" to="(490,570)"/>
<wire from="(590,460)" to="(670,460)"/>
<wire from="(530,400)" to="(570,400)"/>
<wire from="(540,390)" to="(570,390)"/>
<wire from="(550,450)" to="(550,460)"/>
<wire from="(390,500)" to="(390,520)"/>
<wire from="(460,580)" to="(510,580)"/>
<wire from="(520,380)" to="(520,460)"/>
<wire from="(380,610)" to="(380,680)"/>
<wire from="(390,620)" to="(390,660)"/>
<wire from="(460,540)" to="(460,550)"/>
<wire from="(670,280)" to="(670,460)"/>
<wire from="(440,780)" to="(470,780)"/>
<wire from="(410,310)" to="(410,380)"/>
<wire from="(570,290)" to="(640,290)"/>
<wire from="(570,610)" to="(570,670)"/>
<wire from="(200,530)" to="(430,530)"/>
<wire from="(610,390)" to="(610,550)"/>
<wire from="(490,610)" to="(500,610)"/>
<wire from="(480,630)" to="(480,640)"/>
<wire from="(330,340)" to="(440,340)"/>
<wire from="(440,630)" to="(480,630)"/>
<wire from="(440,870)" to="(450,870)"/>
<wire from="(440,790)" to="(480,790)"/>
<wire from="(540,530)" to="(580,530)"/>
<wire from="(560,430)" to="(560,540)"/>
<wire from="(60,530)" to="(160,530)"/>
<wire from="(460,580)" to="(460,620)"/>
<wire from="(280,480)" to="(360,480)"/>
<wire from="(500,530)" to="(540,530)"/>
<wire from="(30,900)" to="(450,900)"/>
<wire from="(220,520)" to="(390,520)"/>
<wire from="(390,550)" to="(400,550)"/>
<wire from="(30,460)" to="(30,900)"/>
<wire from="(390,580)" to="(430,580)"/>
<wire from="(530,380)" to="(530,400)"/>
<wire from="(390,550)" to="(390,580)"/>
<wire from="(620,360)" to="(620,810)"/>
<wire from="(450,500)" to="(450,540)"/>
<wire from="(160,350)" to="(160,530)"/>
<wire from="(530,600)" to="(530,610)"/>
<wire from="(470,320)" to="(480,320)"/>
<wire from="(310,580)" to="(310,600)"/>
<wire from="(510,430)" to="(530,430)"/>
<wire from="(530,660)" to="(530,670)"/>
<wire from="(470,320)" to="(470,340)"/>
<wire from="(440,620)" to="(460,620)"/>
<wire from="(580,410)" to="(580,530)"/>
<wire from="(540,380)" to="(540,390)"/>
<wire from="(590,140)" to="(590,300)"/>
<wire from="(490,670)" to="(520,670)"/>
<comp lib="5" loc="(120,250)" name="Button">
<a name="label" val="8"/>
</comp>
<comp lib="1" loc="(80,450)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="5" loc="(190,170)" name="Button">
<a name="label" val="1"/>
</comp>
<comp lib="4" loc="(510,310)" name="Register"/>
<comp lib="0" loc="(550,310)" name="Splitter">
<a name="incoming" val="8"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="1"/>
<a name="bit5" val="1"/>
<a name="bit6" val="1"/>
<a name="bit7" val="1"/>
</comp>
<comp lib="5" loc="(260,290)" name="Button">
<a name="label" val="E"/>
</comp>
<comp lib="4" loc="(600,390)" name="Register"/>
<comp lib="5" loc="(190,250)" name="Button">
<a name="label" val="9"/>
</comp>
<comp lib="4" loc="(270,620)" name="ROM">
<a name="dataWidth" val="16"/>
<a name="contents">addr/data: 8 16
0
</a>
</comp>
<comp lib="0" loc="(380,800)" name="Bit Extender">
<a name="out_width" val="4"/>
</comp>
<comp lib="5" loc="(120,290)" name="Button">
<a name="label" val="C"/>
</comp>
<comp lib="5" loc="(260,210)" name="Button">
<a name="label" val="6"/>
</comp>
<comp lib="0" loc="(80,620)" name="Pull Resistor"/>
<comp lib="5" loc="(260,250)" name="Button">
<a name="label" val="A"/>
</comp>
<comp lib="4" loc="(560,430)" name="Register"/>
<comp lib="0" loc="(280,460)" name="Pull Resistor"/>
<comp lib="5" loc="(590,140)" name="Hex Digit Display"/>
<comp lib="4" loc="(540,580)" name="Register">
<a name="width" val="1"/>
</comp>
<comp lib="0" loc="(60,530)" name="Clock"/>
<comp lib="5" loc="(50,440)" name="Button">
<a name="label" val="res"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="5" loc="(640,140)" name="Hex Digit Display"/>
<comp lib="5" loc="(120,210)" name="Button">
<a name="label" val="4"/>
</comp>
<comp lib="0" loc="(310,460)" name="Pull Resistor"/>
<comp lib="5" loc="(120,170)" name="Button">
<a name="label" val="0"/>
</comp>
<comp lib="0" loc="(220,500)" name="Pull Resistor"/>
<comp loc="(440,610)" name="alu"/>
<comp lib="5" loc="(260,170)" name="Button">
<a name="label" val="2"/>
</comp>
<comp lib="0" loc="(270,620)" name="Splitter">
<a name="incoming" val="16"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
<a name="bit8" val="1"/>
<a name="bit9" val="1"/>
<a name="bit10" val="1"/>
<a name="bit11" val="1"/>
<a name="bit12" val="1"/>
<a name="bit13" val="1"/>
<a name="bit14" val="1"/>
<a name="bit15" val="1"/>
</comp>
<comp lib="0" loc="(250,500)" name="Pull Resistor">
<a name="pull" val="1"/>
</comp>
<comp lib="5" loc="(330,210)" name="Button">
<a name="label" val="7"/>
</comp>
<comp loc="(440,740)" name="ins dec"/>
<comp lib="4" loc="(500,460)" name="RAM">
<a name="bus" val="separate"/>
</comp>
<comp lib="5" loc="(330,250)" name="Button">
<a name="label" val="B"/>
</comp>
<comp lib="5" loc="(330,290)" name="Button">
<a name="label" val="F"/>
</comp>
<comp lib="5" loc="(330,170)" name="Button">
<a name="label" val="3"/>
</comp>
<comp lib="5" loc="(190,290)" name="Button">
<a name="label" val="D"/>
</comp>
<comp lib="5" loc="(190,210)" name="Button">
<a name="label" val="5"/>
</comp>
<comp lib="4" loc="(540,640)" name="Register">
<a name="width" val="1"/>
</comp>
</circuit>
<circuit name="ins dec">
<a name="circuit" val="ins dec"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(330,540)" to="(330,590)"/>
<wire from="(390,530)" to="(470,530)"/>
<wire from="(500,370)" to="(500,680)"/>
<wire from="(330,590)" to="(350,590)"/>
<wire from="(330,190)" to="(350,190)"/>
<wire from="(330,440)" to="(350,440)"/>
<wire from="(330,840)" to="(350,840)"/>
<wire from="(460,290)" to="(460,480)"/>
<wire from="(330,440)" to="(330,480)"/>
<wire from="(400,170)" to="(580,170)"/>
<wire from="(500,370)" to="(580,370)"/>
<wire from="(450,270)" to="(450,430)"/>
<wire from="(330,290)" to="(330,340)"/>
<wire from="(330,340)" to="(350,340)"/>
<wire from="(470,310)" to="(580,310)"/>
<wire from="(530,430)" to="(580,430)"/>
<wire from="(410,190)" to="(410,230)"/>
<wire from="(330,690)" to="(330,740)"/>
<wire from="(390,580)" to="(480,580)"/>
<wire from="(330,740)" to="(350,740)"/>
<wire from="(330,490)" to="(350,490)"/>
<wire from="(330,190)" to="(330,240)"/>
<wire from="(330,740)" to="(330,790)"/>
<wire from="(410,190)" to="(580,190)"/>
<wire from="(520,410)" to="(520,780)"/>
<wire from="(520,410)" to="(580,410)"/>
<wire from="(330,290)" to="(350,290)"/>
<wire from="(390,780)" to="(520,780)"/>
<wire from="(390,430)" to="(450,430)"/>
<wire from="(490,350)" to="(490,630)"/>
<wire from="(530,430)" to="(530,830)"/>
<wire from="(390,480)" to="(460,480)"/>
<wire from="(330,240)" to="(350,240)"/>
<wire from="(440,250)" to="(440,380)"/>
<wire from="(430,230)" to="(580,230)"/>
<wire from="(330,790)" to="(330,840)"/>
<wire from="(330,540)" to="(350,540)"/>
<wire from="(390,180)" to="(400,180)"/>
<wire from="(390,330)" to="(430,330)"/>
<wire from="(330,390)" to="(330,440)"/>
<wire from="(390,280)" to="(420,280)"/>
<wire from="(430,230)" to="(430,330)"/>
<wire from="(330,480)" to="(330,490)"/>
<wire from="(330,790)" to="(350,790)"/>
<wire from="(330,390)" to="(350,390)"/>
<wire from="(480,330)" to="(580,330)"/>
<wire from="(330,640)" to="(350,640)"/>
<wire from="(420,210)" to="(580,210)"/>
<wire from="(490,350)" to="(580,350)"/>
<wire from="(330,240)" to="(330,290)"/>
<wire from="(330,640)" to="(330,690)"/>
<wire from="(390,830)" to="(530,830)"/>
<wire from="(450,270)" to="(580,270)"/>
<wire from="(390,730)" to="(510,730)"/>
<wire from="(390,630)" to="(490,630)"/>
<wire from="(390,380)" to="(440,380)"/>
<wire from="(400,170)" to="(400,180)"/>
<wire from="(510,390)" to="(510,730)"/>
<wire from="(330,490)" to="(330,540)"/>
<wire from="(330,340)" to="(330,390)"/>
<wire from="(390,230)" to="(410,230)"/>
<wire from="(330,690)" to="(350,690)"/>
<wire from="(470,310)" to="(470,530)"/>
<wire from="(420,210)" to="(420,280)"/>
<wire from="(480,330)" to="(480,580)"/>
<wire from="(510,390)" to="(580,390)"/>
<wire from="(330,590)" to="(330,640)"/>
<wire from="(80,480)" to="(330,480)"/>
<wire from="(390,680)" to="(500,680)"/>
<wire from="(460,290)" to="(580,290)"/>
<wire from="(440,250)" to="(580,250)"/>
<comp lib="3" loc="(390,280)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,670)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xa"/>
</comp>
<comp lib="0" loc="(580,350)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jic"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,730)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(580,250)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="add"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(580,390)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jiz"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(580,210)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="sta"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(350,370)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x4"/>
</comp>
<comp lib="0" loc="(580,310)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(350,320)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x3"/>
</comp>
<comp lib="0" loc="(580,230)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="stb"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,530)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,220)" name="Constant">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,470)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x6"/>
</comp>
<comp lib="3" loc="(390,780)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,570)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x8"/>
</comp>
<comp lib="0" loc="(350,520)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x7"/>
</comp>
<comp lib="0" loc="(350,420)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x5"/>
</comp>
<comp lib="0" loc="(350,770)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xc"/>
</comp>
<comp lib="0" loc="(350,620)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x9"/>
</comp>
<comp lib="0" loc="(580,410)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jinz"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,630)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(580,370)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jinc"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,830)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(580,190)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="ldb"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,580)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,820)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xd"/>
</comp>
<comp lib="0" loc="(580,270)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="sub"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(580,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="in"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,480)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="3" loc="(390,680)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="3" loc="(390,330)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="3" loc="(390,230)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(350,720)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0xb"/>
</comp>
<comp lib="0" loc="(350,270)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x2"/>
</comp>
<comp lib="0" loc="(80,480)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="3" loc="(390,180)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(580,430)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="res"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(350,170)" name="Constant">
<a name="width" val="4"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(580,170)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="lda"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(390,430)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="3" loc="(390,380)" name="Comparator">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(580,330)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jmp"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
<circuit name="alu">
<a name="circuit" val="alu"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(180,170)" to="(180,200)"/>
<wire from="(290,220)" to="(420,220)"/>
<wire from="(520,270)" to="(560,270)"/>
<wire from="(460,200)" to="(500,200)"/>
<wire from="(500,240)" to="(500,270)"/>
<wire from="(460,270)" to="(500,270)"/>
<wire from="(540,290)" to="(550,290)"/>
<wire from="(580,380)" to="(580,410)"/>
<wire from="(500,240)" to="(540,240)"/>
<wire from="(480,160)" to="(480,290)"/>
<wire from="(440,230)" to="(470,230)"/>
<wire from="(470,350)" to="(560,350)"/>
<wire from="(630,300)" to="(650,300)"/>
<wire from="(290,170)" to="(290,220)"/>
<wire from="(480,290)" to="(540,290)"/>
<wire from="(520,270)" to="(520,410)"/>
<wire from="(500,200)" to="(500,220)"/>
<wire from="(540,290)" to="(540,390)"/>
<wire from="(180,200)" to="(420,200)"/>
<wire from="(500,220)" to="(540,220)"/>
<wire from="(460,200)" to="(460,210)"/>
<wire from="(520,120)" to="(520,270)"/>
<wire from="(180,200)" to="(180,260)"/>
<wire from="(470,230)" to="(470,350)"/>
<wire from="(540,390)" to="(570,390)"/>
<wire from="(180,260)" to="(420,260)"/>
<wire from="(570,310)" to="(590,310)"/>
<wire from="(520,410)" to="(580,410)"/>
<wire from="(550,250)" to="(550,290)"/>
<wire from="(570,380)" to="(570,390)"/>
<wire from="(450,160)" to="(480,160)"/>
<wire from="(590,360)" to="(650,360)"/>
<wire from="(560,250)" to="(560,270)"/>
<wire from="(570,230)" to="(570,310)"/>
<wire from="(290,220)" to="(290,280)"/>
<wire from="(440,370)" to="(560,370)"/>
<wire from="(450,130)" to="(450,160)"/>
<wire from="(440,290)" to="(440,370)"/>
<wire from="(480,120)" to="(520,120)"/>
<wire from="(290,280)" to="(420,280)"/>
<comp lib="0" loc="(180,170)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="a"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(290,170)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="b"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(570,230)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="r"/>
<a name="labelloc" val="south"/>
</comp>
<comp lib="0" loc="(450,110)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="add"/>
</comp>
<comp lib="0" loc="(450,130)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="sub"/>
</comp>
<comp lib="3" loc="(460,210)" name="Adder"/>
<comp lib="1" loc="(480,120)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(650,300)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="z"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(570,230)" name="Multiplexer">
<a name="width" val="8"/>
</comp>
<comp lib="2" loc="(590,360)" name="Multiplexer"/>
<comp lib="3" loc="(630,300)" name="Comparator"/>
<comp lib="0" loc="(590,290)" name="Constant">
<a name="width" val="8"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(650,360)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="c"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(460,270)" name="Subtractor"/>
</circuit>
</project>