This commit is contained in:
pjht 2016-06-28 10:10:11 -05:00
parent 9942c11e53
commit cb0178ef6e

968
cpu 4/cpu.circ Normal file
View File

@ -0,0 +1,968 @@
<?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"/>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<tool name="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5"/>
<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="Button3" name="Menu Tool"/>
<tool lib="6" map="Ctrl Button1" 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"/>
</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="main">
<a name="circuit" val="main"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(610,500)" to="(630,500)"/>
<wire from="(780,440)" to="(780,470)"/>
<wire from="(610,450)" to="(610,500)"/>
<wire from="(360,350)" to="(360,570)"/>
<wire from="(280,360)" to="(280,410)"/>
<wire from="(270,300)" to="(280,300)"/>
<wire from="(450,320)" to="(450,370)"/>
<wire from="(280,300)" to="(280,360)"/>
<wire from="(420,270)" to="(420,300)"/>
<wire from="(310,640)" to="(310,660)"/>
<wire from="(400,340)" to="(400,350)"/>
<wire from="(190,450)" to="(190,470)"/>
<wire from="(540,450)" to="(560,450)"/>
<wire from="(360,260)" to="(390,260)"/>
<wire from="(480,250)" to="(480,360)"/>
<wire from="(430,400)" to="(440,400)"/>
<wire from="(620,490)" to="(630,490)"/>
<wire from="(100,300)" to="(130,300)"/>
<wire from="(420,320)" to="(450,320)"/>
<wire from="(360,200)" to="(640,200)"/>
<wire from="(280,610)" to="(740,610)"/>
<wire from="(600,520)" to="(600,620)"/>
<wire from="(580,470)" to="(580,540)"/>
<wire from="(240,600)" to="(250,600)"/>
<wire from="(350,400)" to="(350,460)"/>
<wire from="(50,360)" to="(280,360)"/>
<wire from="(440,250)" to="(480,250)"/>
<wire from="(320,340)" to="(370,340)"/>
<wire from="(680,510)" to="(700,510)"/>
<wire from="(580,540)" to="(660,540)"/>
<wire from="(280,250)" to="(380,250)"/>
<wire from="(740,440)" to="(740,450)"/>
<wire from="(280,250)" to="(280,300)"/>
<wire from="(800,440)" to="(800,450)"/>
<wire from="(400,30)" to="(900,30)"/>
<wire from="(30,290)" to="(30,660)"/>
<wire from="(550,400)" to="(570,400)"/>
<wire from="(90,440)" to="(200,440)"/>
<wire from="(280,580)" to="(340,580)"/>
<wire from="(390,410)" to="(400,410)"/>
<wire from="(310,300)" to="(310,560)"/>
<wire from="(460,420)" to="(490,420)"/>
<wire from="(180,490)" to="(200,490)"/>
<wire from="(340,460)" to="(340,580)"/>
<wire from="(850,400)" to="(900,400)"/>
<wire from="(350,390)" to="(400,390)"/>
<wire from="(900,30)" to="(900,400)"/>
<wire from="(440,410)" to="(440,470)"/>
<wire from="(530,440)" to="(560,440)"/>
<wire from="(580,470)" to="(780,470)"/>
<wire from="(240,600)" to="(240,670)"/>
<wire from="(200,490)" to="(460,490)"/>
<wire from="(90,320)" to="(90,440)"/>
<wire from="(280,570)" to="(360,570)"/>
<wire from="(700,510)" to="(700,670)"/>
<wire from="(280,620)" to="(600,620)"/>
<wire from="(440,470)" to="(580,470)"/>
<wire from="(480,360)" to="(490,360)"/>
<wire from="(540,460)" to="(540,630)"/>
<wire from="(450,370)" to="(490,370)"/>
<wire from="(280,560)" to="(310,560)"/>
<wire from="(390,250)" to="(390,260)"/>
<wire from="(620,440)" to="(620,490)"/>
<wire from="(450,400)" to="(490,400)"/>
<wire from="(300,460)" to="(340,460)"/>
<wire from="(440,390)" to="(440,400)"/>
<wire from="(190,470)" to="(440,470)"/>
<wire from="(280,20)" to="(680,20)"/>
<wire from="(280,630)" to="(540,630)"/>
<wire from="(450,400)" to="(450,460)"/>
<wire from="(230,410)" to="(280,410)"/>
<wire from="(530,380)" to="(560,380)"/>
<wire from="(590,550)" to="(670,550)"/>
<wire from="(280,590)" to="(380,590)"/>
<wire from="(670,530)" to="(670,550)"/>
<wire from="(200,440)" to="(200,490)"/>
<wire from="(540,390)" to="(540,450)"/>
<wire from="(280,20)" to="(280,250)"/>
<wire from="(540,390)" to="(550,390)"/>
<wire from="(520,390)" to="(540,390)"/>
<wire from="(390,250)" to="(400,250)"/>
<wire from="(640,200)" to="(640,460)"/>
<wire from="(560,420)" to="(710,420)"/>
<wire from="(590,440)" to="(620,440)"/>
<wire from="(280,600)" to="(410,600)"/>
<wire from="(590,450)" to="(610,450)"/>
<wire from="(230,410)" to="(230,600)"/>
<wire from="(740,450)" to="(760,450)"/>
<wire from="(440,380)" to="(490,380)"/>
<wire from="(540,460)" to="(560,460)"/>
<wire from="(360,350)" to="(400,350)"/>
<wire from="(360,200)" to="(360,260)"/>
<wire from="(320,340)" to="(320,410)"/>
<wire from="(460,490)" to="(590,490)"/>
<wire from="(30,290)" to="(70,290)"/>
<wire from="(350,460)" to="(450,460)"/>
<wire from="(240,670)" to="(700,670)"/>
<wire from="(740,450)" to="(740,610)"/>
<wire from="(80,320)" to="(80,450)"/>
<wire from="(550,390)" to="(550,400)"/>
<wire from="(280,640)" to="(310,640)"/>
<wire from="(440,410)" to="(490,410)"/>
<wire from="(680,20)" to="(680,410)"/>
<wire from="(390,410)" to="(390,580)"/>
<wire from="(590,490)" to="(590,550)"/>
<wire from="(80,450)" to="(190,450)"/>
<wire from="(560,380)" to="(570,380)"/>
<wire from="(530,380)" to="(530,440)"/>
<wire from="(790,450)" to="(800,450)"/>
<wire from="(460,420)" to="(460,490)"/>
<wire from="(310,300)" to="(420,300)"/>
<wire from="(380,370)" to="(440,370)"/>
<wire from="(680,410)" to="(690,410)"/>
<wire from="(300,310)" to="(390,310)"/>
<wire from="(590,460)" to="(640,460)"/>
<wire from="(410,420)" to="(410,600)"/>
<wire from="(520,380)" to="(530,380)"/>
<wire from="(280,410)" to="(320,410)"/>
<wire from="(660,530)" to="(660,540)"/>
<wire from="(380,370)" to="(380,590)"/>
<wire from="(400,30)" to="(400,230)"/>
<wire from="(560,380)" to="(560,420)"/>
<wire from="(50,310)" to="(50,360)"/>
<wire from="(180,470)" to="(190,470)"/>
<wire from="(440,390)" to="(490,390)"/>
<wire from="(300,310)" to="(300,460)"/>
<wire from="(600,520)" to="(650,520)"/>
<wire from="(340,580)" to="(390,580)"/>
<wire from="(440,370)" to="(440,380)"/>
<wire from="(320,410)" to="(330,410)"/>
<wire from="(30,660)" to="(310,660)"/>
<comp lib="0" loc="(180,470)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="clk"/>
</comp>
<comp loc="(520,380)" name="Reg file"/>
<comp lib="0" loc="(570,380)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(790,450)" name="NOT Gate"/>
<comp lib="4" loc="(850,400)" name="RAM">
<a name="addrWidth" val="4"/>
<a name="dataWidth" val="4"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(370,340)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="9"/>
<a name="bit0" val="none"/>
<a name="bit1" val="none"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
<a name="bit8" val="none"/>
</comp>
<comp lib="2" loc="(430,400)" name="Multiplexer">
<a name="width" val="2"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(680,510)" name="Register">
<a name="width" val="2"/>
</comp>
<comp lib="0" loc="(330,410)" name="Splitter">
<a name="incoming" val="9"/>
<a name="bit0" val="1"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
<a name="bit8" val="none"/>
</comp>
<comp loc="(590,440)" name="ALU"/>
<comp lib="0" loc="(230,600)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="9"/>
<a name="bit0" val="none"/>
<a name="bit1" val="none"/>
<a name="bit2" val="none"/>
<a name="bit3" val="none"/>
<a name="bit4" val="0"/>
<a name="bit5" val="0"/>
<a name="bit6" val="0"/>
<a name="bit7" val="0"/>
<a name="bit8" val="0"/>
</comp>
<comp lib="0" loc="(650,510)" name="Splitter">
<a name="facing" val="west"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(380,250)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="9"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
<a name="bit8" val="none"/>
</comp>
<comp loc="(280,560)" name="ins dec"/>
<comp lib="0" loc="(50,310)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="9"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
<a name="bit8" val="none"/>
</comp>
<comp lib="4" loc="(100,300)" name="Counter">
<a name="width" val="4"/>
<a name="max" val="0xf"/>
</comp>
<comp lib="0" loc="(180,490)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="res"/>
</comp>
<comp lib="0" loc="(690,410)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="9"/>
<a name="bit1" val="0"/>
<a name="bit2" val="0"/>
<a name="bit3" val="0"/>
<a name="bit4" val="none"/>
<a name="bit5" val="none"/>
<a name="bit6" val="none"/>
<a name="bit7" val="none"/>
<a name="bit8" val="none"/>
</comp>
<comp lib="2" loc="(420,320)" name="Multiplexer">
<a name="width" val="2"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(270,300)" name="ROM">
<a name="addrWidth" val="4"/>
<a name="dataWidth" val="9"/>
<a name="contents">addr/data: 4 9
0 11 c1 82
</a>
</comp>
<comp lib="0" loc="(570,400)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(440,250)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
</circuit>
<circuit name="Reg file">
<a name="circuit" val="Reg file"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(380,380)" to="(460,380)"/>
<wire from="(320,470)" to="(320,500)"/>
<wire from="(420,450)" to="(420,500)"/>
<wire from="(470,390)" to="(470,400)"/>
<wire from="(480,450)" to="(480,460)"/>
<wire from="(480,570)" to="(480,590)"/>
<wire from="(490,550)" to="(530,550)"/>
<wire from="(190,580)" to="(200,580)"/>
<wire from="(380,380)" to="(380,430)"/>
<wire from="(470,450)" to="(470,460)"/>
<wire from="(190,480)" to="(330,480)"/>
<wire from="(480,510)" to="(480,520)"/>
<wire from="(570,410)" to="(570,510)"/>
<wire from="(620,500)" to="(640,500)"/>
<wire from="(600,520)" to="(600,610)"/>
<wire from="(510,390)" to="(510,430)"/>
<wire from="(470,510)" to="(470,520)"/>
<wire from="(350,460)" to="(410,460)"/>
<wire from="(250,540)" to="(250,610)"/>
<wire from="(430,580)" to="(470,580)"/>
<wire from="(440,430)" to="(460,430)"/>
<wire from="(430,400)" to="(470,400)"/>
<wire from="(540,380)" to="(540,480)"/>
<wire from="(210,550)" to="(440,550)"/>
<wire from="(210,460)" to="(210,550)"/>
<wire from="(540,380)" to="(580,380)"/>
<wire from="(480,460)" to="(500,460)"/>
<wire from="(440,490)" to="(460,490)"/>
<wire from="(480,390)" to="(480,400)"/>
<wire from="(520,400)" to="(560,400)"/>
<wire from="(510,390)" to="(550,390)"/>
<wire from="(440,550)" to="(460,550)"/>
<wire from="(430,520)" to="(430,570)"/>
<wire from="(550,390)" to="(550,490)"/>
<wire from="(250,610)" to="(600,610)"/>
<wire from="(410,560)" to="(460,560)"/>
<wire from="(350,430)" to="(380,430)"/>
<wire from="(270,520)" to="(270,620)"/>
<wire from="(490,490)" to="(520,490)"/>
<wire from="(560,500)" to="(580,500)"/>
<wire from="(500,370)" to="(500,380)"/>
<wire from="(500,520)" to="(500,590)"/>
<wire from="(330,470)" to="(330,480)"/>
<wire from="(600,460)" to="(630,460)"/>
<wire from="(190,520)" to="(270,520)"/>
<wire from="(600,420)" to="(600,460)"/>
<wire from="(620,400)" to="(640,400)"/>
<wire from="(430,400)" to="(430,460)"/>
<wire from="(440,490)" to="(440,550)"/>
<wire from="(630,460)" to="(630,620)"/>
<wire from="(440,430)" to="(440,490)"/>
<wire from="(550,490)" to="(580,490)"/>
<wire from="(570,410)" to="(580,410)"/>
<wire from="(440,370)" to="(440,430)"/>
<wire from="(200,590)" to="(480,590)"/>
<wire from="(190,540)" to="(250,540)"/>
<wire from="(560,400)" to="(580,400)"/>
<wire from="(550,390)" to="(580,390)"/>
<wire from="(540,480)" to="(580,480)"/>
<wire from="(430,460)" to="(430,520)"/>
<wire from="(200,580)" to="(200,590)"/>
<wire from="(200,570)" to="(430,570)"/>
<wire from="(490,370)" to="(500,370)"/>
<wire from="(500,460)" to="(500,520)"/>
<wire from="(430,520)" to="(470,520)"/>
<wire from="(190,460)" to="(210,460)"/>
<wire from="(520,400)" to="(520,490)"/>
<wire from="(350,440)" to="(460,440)"/>
<wire from="(420,500)" to="(460,500)"/>
<wire from="(570,510)" to="(580,510)"/>
<wire from="(480,400)" to="(500,400)"/>
<wire from="(480,520)" to="(500,520)"/>
<wire from="(430,570)" to="(430,580)"/>
<wire from="(530,410)" to="(530,550)"/>
<wire from="(440,370)" to="(460,370)"/>
<wire from="(480,590)" to="(500,590)"/>
<wire from="(350,450)" to="(420,450)"/>
<wire from="(410,460)" to="(410,560)"/>
<wire from="(190,500)" to="(320,500)"/>
<wire from="(530,410)" to="(570,410)"/>
<wire from="(500,380)" to="(540,380)"/>
<wire from="(200,560)" to="(200,570)"/>
<wire from="(560,400)" to="(560,500)"/>
<wire from="(470,570)" to="(470,580)"/>
<wire from="(430,460)" to="(470,460)"/>
<wire from="(490,430)" to="(510,430)"/>
<wire from="(500,400)" to="(500,460)"/>
<wire from="(190,560)" to="(200,560)"/>
<wire from="(270,620)" to="(630,620)"/>
<comp lib="4" loc="(490,490)" name="Register">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(190,460)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="Data in"/>
</comp>
<comp lib="0" loc="(640,500)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="label" val="Bout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(330,470)" name="Decoder">
<a name="select" val="2"/>
<a name="disabled" val="0"/>
</comp>
<comp lib="4" loc="(490,370)" name="Register">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(190,500)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="we"/>
</comp>
<comp lib="0" loc="(190,480)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Wreg"/>
</comp>
<comp lib="0" loc="(190,560)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="clk"/>
</comp>
<comp lib="2" loc="(620,400)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(640,400)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="label" val="Aout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(620,500)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(490,550)" name="Register">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(190,520)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Areg"/>
</comp>
<comp lib="0" loc="(190,580)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="res"/>
</comp>
<comp lib="4" loc="(490,430)" name="Register">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(190,540)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Breg"/>
</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="(700,300)" to="(700,360)"/>
<wire from="(580,610)" to="(660,610)"/>
<wire from="(510,690)" to="(880,690)"/>
<wire from="(650,260)" to="(710,260)"/>
<wire from="(90,130)" to="(610,130)"/>
<wire from="(1050,280)" to="(1120,280)"/>
<wire from="(910,160)" to="(930,160)"/>
<wire from="(1100,240)" to="(1120,240)"/>
<wire from="(930,180)" to="(990,180)"/>
<wire from="(830,80)" to="(830,570)"/>
<wire from="(940,110)" to="(940,270)"/>
<wire from="(830,80)" to="(970,80)"/>
<wire from="(850,100)" to="(950,100)"/>
<wire from="(660,160)" to="(660,170)"/>
<wire from="(1100,240)" to="(1100,310)"/>
<wire from="(1030,180)" to="(1070,180)"/>
<wire from="(970,410)" to="(980,410)"/>
<wire from="(530,310)" to="(530,710)"/>
<wire from="(910,160)" to="(910,320)"/>
<wire from="(650,660)" to="(660,660)"/>
<wire from="(610,560)" to="(660,560)"/>
<wire from="(560,190)" to="(630,190)"/>
<wire from="(710,310)" to="(720,310)"/>
<wire from="(800,190)" to="(990,190)"/>
<wire from="(1110,300)" to="(1120,300)"/>
<wire from="(510,290)" to="(510,690)"/>
<wire from="(1040,260)" to="(1040,290)"/>
<wire from="(1060,310)" to="(1060,350)"/>
<wire from="(650,260)" to="(650,660)"/>
<wire from="(770,300)" to="(900,300)"/>
<wire from="(900,400)" to="(940,400)"/>
<wire from="(460,280)" to="(460,310)"/>
<wire from="(490,320)" to="(490,720)"/>
<wire from="(920,300)" to="(1070,300)"/>
<wire from="(620,200)" to="(620,220)"/>
<wire from="(940,270)" to="(990,270)"/>
<wire from="(690,660)" to="(860,660)"/>
<wire from="(1080,380)" to="(1100,380)"/>
<wire from="(500,240)" to="(500,260)"/>
<wire from="(560,640)" to="(660,640)"/>
<wire from="(640,250)" to="(720,250)"/>
<wire from="(580,180)" to="(640,180)"/>
<wire from="(690,570)" to="(830,570)"/>
<wire from="(590,590)" to="(660,590)"/>
<wire from="(500,280)" to="(500,680)"/>
<wire from="(530,310)" to="(710,310)"/>
<wire from="(520,240)" to="(630,240)"/>
<wire from="(530,710)" to="(900,710)"/>
<wire from="(1110,290)" to="(1110,300)"/>
<wire from="(620,230)" to="(720,230)"/>
<wire from="(480,260)" to="(480,290)"/>
<wire from="(90,150)" to="(570,150)"/>
<wire from="(90,170)" to="(600,170)"/>
<wire from="(980,170)" to="(990,170)"/>
<wire from="(790,340)" to="(1050,340)"/>
<wire from="(870,370)" to="(990,370)"/>
<wire from="(640,250)" to="(640,630)"/>
<wire from="(900,290)" to="(1040,290)"/>
<wire from="(1050,170)" to="(1050,220)"/>
<wire from="(1050,280)" to="(1050,340)"/>
<wire from="(680,280)" to="(680,330)"/>
<wire from="(470,300)" to="(520,300)"/>
<wire from="(900,290)" to="(900,300)"/>
<wire from="(970,240)" to="(990,240)"/>
<wire from="(840,90)" to="(960,90)"/>
<wire from="(860,110)" to="(940,110)"/>
<wire from="(910,420)" to="(940,420)"/>
<wire from="(520,220)" to="(520,240)"/>
<wire from="(950,100)" to="(950,260)"/>
<wire from="(700,360)" to="(720,360)"/>
<wire from="(670,150)" to="(670,160)"/>
<wire from="(920,150)" to="(920,300)"/>
<wire from="(450,320)" to="(490,320)"/>
<wire from="(980,400)" to="(990,400)"/>
<wire from="(500,680)" to="(870,680)"/>
<wire from="(630,190)" to="(630,210)"/>
<wire from="(1100,320)" to="(1100,380)"/>
<wire from="(680,330)" to="(720,330)"/>
<wire from="(610,130)" to="(690,130)"/>
<wire from="(530,210)" to="(530,230)"/>
<wire from="(450,290)" to="(450,320)"/>
<wire from="(770,250)" to="(790,250)"/>
<wire from="(600,580)" to="(660,580)"/>
<wire from="(690,290)" to="(690,340)"/>
<wire from="(470,270)" to="(470,300)"/>
<wire from="(1030,250)" to="(1050,250)"/>
<wire from="(900,400)" to="(900,710)"/>
<wire from="(630,240)" to="(720,240)"/>
<wire from="(520,300)" to="(520,700)"/>
<wire from="(510,290)" to="(690,290)"/>
<wire from="(510,250)" to="(640,250)"/>
<wire from="(90,190)" to="(560,190)"/>
<wire from="(590,140)" to="(590,590)"/>
<wire from="(980,400)" to="(980,410)"/>
<wire from="(90,280)" to="(460,280)"/>
<wire from="(500,280)" to="(680,280)"/>
<wire from="(930,160)" to="(930,180)"/>
<wire from="(620,230)" to="(620,570)"/>
<wire from="(90,270)" to="(470,270)"/>
<wire from="(90,290)" to="(450,290)"/>
<wire from="(950,260)" to="(990,260)"/>
<wire from="(560,190)" to="(560,640)"/>
<wire from="(960,90)" to="(960,250)"/>
<wire from="(540,200)" to="(540,670)"/>
<wire from="(710,370)" to="(720,370)"/>
<wire from="(1080,370)" to="(1080,380)"/>
<wire from="(550,650)" to="(660,650)"/>
<wire from="(90,140)" to="(590,140)"/>
<wire from="(710,260)" to="(710,270)"/>
<wire from="(520,700)" to="(890,700)"/>
<wire from="(1050,220)" to="(1120,220)"/>
<wire from="(840,90)" to="(840,600)"/>
<wire from="(1040,290)" to="(1110,290)"/>
<wire from="(710,310)" to="(710,370)"/>
<wire from="(1060,310)" to="(1070,310)"/>
<wire from="(620,220)" to="(720,220)"/>
<wire from="(90,180)" to="(580,180)"/>
<wire from="(690,600)" to="(840,600)"/>
<wire from="(1050,220)" to="(1050,250)"/>
<wire from="(770,350)" to="(800,350)"/>
<wire from="(800,350)" to="(1060,350)"/>
<wire from="(880,380)" to="(880,690)"/>
<wire from="(700,300)" to="(720,300)"/>
<wire from="(630,210)" to="(720,210)"/>
<wire from="(640,190)" to="(720,190)"/>
<wire from="(770,160)" to="(910,160)"/>
<wire from="(490,320)" to="(720,320)"/>
<wire from="(520,300)" to="(700,300)"/>
<wire from="(910,320)" to="(1070,320)"/>
<wire from="(1090,200)" to="(1090,260)"/>
<wire from="(1100,320)" to="(1120,320)"/>
<wire from="(970,80)" to="(970,240)"/>
<wire from="(530,230)" to="(620,230)"/>
<wire from="(1030,380)" to="(1080,380)"/>
<wire from="(580,180)" to="(580,610)"/>
<wire from="(870,370)" to="(870,680)"/>
<wire from="(490,720)" to="(910,720)"/>
<wire from="(790,250)" to="(790,340)"/>
<wire from="(610,130)" to="(610,560)"/>
<wire from="(710,270)" to="(720,270)"/>
<wire from="(910,420)" to="(910,720)"/>
<wire from="(70,450)" to="(70,470)"/>
<wire from="(890,390)" to="(990,390)"/>
<wire from="(490,280)" to="(500,280)"/>
<wire from="(800,190)" to="(800,350)"/>
<wire from="(690,340)" to="(720,340)"/>
<wire from="(660,170)" to="(690,170)"/>
<wire from="(1090,260)" to="(1120,260)"/>
<wire from="(650,170)" to="(650,180)"/>
<wire from="(1090,200)" to="(1120,200)"/>
<wire from="(850,100)" to="(850,630)"/>
<wire from="(770,160)" to="(770,200)"/>
<wire from="(920,150)" to="(980,150)"/>
<wire from="(510,230)" to="(510,250)"/>
<wire from="(640,630)" to="(660,630)"/>
<wire from="(570,150)" to="(670,150)"/>
<wire from="(500,260)" to="(650,260)"/>
<wire from="(650,180)" to="(720,180)"/>
<wire from="(890,390)" to="(890,700)"/>
<wire from="(630,600)" to="(660,600)"/>
<wire from="(1070,180)" to="(1120,180)"/>
<wire from="(690,290)" to="(720,290)"/>
<wire from="(600,170)" to="(600,580)"/>
<wire from="(720,250)" to="(720,260)"/>
<wire from="(600,170)" to="(650,170)"/>
<wire from="(540,670)" to="(660,670)"/>
<wire from="(90,160)" to="(550,160)"/>
<wire from="(550,160)" to="(660,160)"/>
<wire from="(680,280)" to="(720,280)"/>
<wire from="(620,570)" to="(660,570)"/>
<wire from="(90,200)" to="(540,200)"/>
<wire from="(570,620)" to="(660,620)"/>
<wire from="(740,150)" to="(920,150)"/>
<wire from="(90,210)" to="(530,210)"/>
<wire from="(540,200)" to="(620,200)"/>
<wire from="(90,220)" to="(520,220)"/>
<wire from="(490,250)" to="(490,280)"/>
<wire from="(860,110)" to="(860,660)"/>
<wire from="(90,230)" to="(510,230)"/>
<wire from="(670,160)" to="(690,160)"/>
<wire from="(690,630)" to="(850,630)"/>
<wire from="(460,310)" to="(530,310)"/>
<wire from="(980,150)" to="(980,170)"/>
<wire from="(630,240)" to="(630,600)"/>
<wire from="(90,240)" to="(500,240)"/>
<wire from="(550,160)" to="(550,650)"/>
<wire from="(570,150)" to="(570,620)"/>
<wire from="(590,140)" to="(690,140)"/>
<wire from="(90,250)" to="(490,250)"/>
<wire from="(880,380)" to="(990,380)"/>
<wire from="(480,290)" to="(510,290)"/>
<wire from="(640,180)" to="(640,190)"/>
<wire from="(960,250)" to="(990,250)"/>
<wire from="(90,260)" to="(480,260)"/>
<wire from="(1040,260)" to="(1090,260)"/>
<comp lib="0" loc="(1120,300)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Flag enable"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(1120,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="2"/>
<a name="label" val="ALU op"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(690,660)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(1120,200)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Write register source"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(1120,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="2"/>
<a name="label" val="LOD(I)/STO reg"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(770,250)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(770,350)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(970,410)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(1100,310)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(690,600)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(1120,280)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Memory store"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(1120,260)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="A register source"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(70,470)" name="Pin">
<a name="width" val="5"/>
<a name="tristate" val="false"/>
<a name="label" val="Ins"/>
</comp>
<comp lib="1" loc="(770,300)" name="OR Gate"/>
<comp lib="0" loc="(1050,170)" name="Pull Resistor"/>
<comp lib="1" loc="(690,570)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="2" loc="(1030,180)" name="Priority Encoder">
<a name="select" val="2"/>
</comp>
<comp lib="1" loc="(740,150)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="0" loc="(1120,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Jump"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(70,450)" name="Decoder">
<a name="select" val="5"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(1080,370)" name="Pull Resistor"/>
<comp lib="0" loc="(1120,180)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="2"/>
<a name="label" val="Write data source"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(1120,240)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Write enable"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(770,200)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="0" loc="(70,490)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="Flags"/>
</comp>
<comp lib="1" loc="(690,630)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="2" loc="(1030,250)" name="Priority Encoder">
<a name="select" val="2"/>
</comp>
<comp lib="2" loc="(1030,380)" name="Priority Encoder">
<a name="select" val="2"/>
</comp>
<comp lib="0" loc="(1070,180)" name="Pull Resistor"/>
</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="(450,280)" to="(480,280)"/>
<wire from="(210,180)" to="(210,240)"/>
<wire from="(230,160)" to="(280,160)"/>
<wire from="(480,280)" to="(540,280)"/>
<wire from="(500,140)" to="(520,140)"/>
<wire from="(250,110)" to="(410,110)"/>
<wire from="(410,110)" to="(410,200)"/>
<wire from="(270,290)" to="(270,300)"/>
<wire from="(380,200)" to="(410,200)"/>
<wire from="(190,240)" to="(210,240)"/>
<wire from="(500,150)" to="(510,150)"/>
<wire from="(240,330)" to="(250,330)"/>
<wire from="(210,370)" to="(430,370)"/>
<wire from="(240,220)" to="(250,220)"/>
<wire from="(520,140)" to="(520,150)"/>
<wire from="(270,230)" to="(270,240)"/>
<wire from="(330,290)" to="(330,350)"/>
<wire from="(240,220)" to="(240,280)"/>
<wire from="(380,190)" to="(380,200)"/>
<wire from="(320,280)" to="(320,320)"/>
<wire from="(190,200)" to="(230,200)"/>
<wire from="(230,200)" to="(230,260)"/>
<wire from="(210,240)" to="(210,370)"/>
<wire from="(240,360)" to="(250,360)"/>
<wire from="(290,270)" to="(410,270)"/>
<wire from="(400,170)" to="(470,170)"/>
<wire from="(270,240)" to="(300,240)"/>
<wire from="(310,170)" to="(310,300)"/>
<wire from="(300,150)" to="(300,240)"/>
<wire from="(580,140)" to="(580,170)"/>
<wire from="(430,300)" to="(430,370)"/>
<wire from="(310,170)" to="(330,170)"/>
<wire from="(480,160)" to="(480,280)"/>
<wire from="(290,210)" to="(400,210)"/>
<wire from="(280,350)" to="(330,350)"/>
<wire from="(280,190)" to="(340,190)"/>
<wire from="(510,160)" to="(520,160)"/>
<wire from="(230,260)" to="(230,310)"/>
<wire from="(400,210)" to="(400,260)"/>
<wire from="(240,330)" to="(240,360)"/>
<wire from="(230,310)" to="(230,340)"/>
<wire from="(250,110)" to="(250,170)"/>
<wire from="(470,240)" to="(550,240)"/>
<wire from="(230,340)" to="(250,340)"/>
<wire from="(230,260)" to="(250,260)"/>
<wire from="(270,300)" to="(310,300)"/>
<wire from="(530,170)" to="(530,260)"/>
<wire from="(230,200)" to="(250,200)"/>
<wire from="(240,280)" to="(240,330)"/>
<wire from="(280,320)" to="(320,320)"/>
<wire from="(530,170)" to="(580,170)"/>
<wire from="(510,150)" to="(510,160)"/>
<wire from="(500,130)" to="(520,130)"/>
<wire from="(230,310)" to="(250,310)"/>
<wire from="(230,170)" to="(250,170)"/>
<wire from="(190,220)" to="(240,220)"/>
<wire from="(300,150)" to="(330,150)"/>
<wire from="(340,180)" to="(340,190)"/>
<wire from="(240,280)" to="(250,280)"/>
<wire from="(320,280)" to="(410,280)"/>
<wire from="(280,160)" to="(280,190)"/>
<wire from="(330,290)" to="(410,290)"/>
<wire from="(400,260)" to="(410,260)"/>
<wire from="(360,160)" to="(370,160)"/>
<wire from="(500,120)" to="(520,120)"/>
<wire from="(470,170)" to="(470,240)"/>
<wire from="(530,260)" to="(550,260)"/>
<comp lib="0" loc="(480,160)" name="Splitter">
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
</comp>
<comp lib="0" loc="(540,280)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="4"/>
<a name="label" val="R"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(450,280)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(190,240)" name="Pin">
<a name="width" val="2"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(190,220)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="B"/>
</comp>
<comp lib="2" loc="(360,160)" name="Multiplexer">
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="3" loc="(290,270)" name="Subtractor">
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(550,260)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Zero"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(550,240)" 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="3" loc="(290,210)" name="Adder">
<a name="width" val="4"/>
</comp>
<comp lib="1" loc="(580,140)" name="NOR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="0" loc="(190,200)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="A"/>
</comp>
<comp lib="1" loc="(280,350)" name="OR Gate">
<a name="width" val="4"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(210,180)" name="Splitter"/>
<comp lib="0" loc="(370,180)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="1" loc="(280,320)" name="AND Gate">
<a name="width" val="4"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="2" loc="(400,170)" name="Multiplexer">
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
</circuit>
</project>