logisim-stuff/4bit cpu/4bit cpu.circ

718 lines
26 KiB
Plaintext
Raw Normal View History

2016-03-03 14:16:28 -06:00
<?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="tristate" val="false"/>
</tool>
<tool name="Probe">
<a name="radix" val="10unsigned"/>
<a name="labelloc" val="east"/>
</tool>
<tool name="Tunnel">
<a name="facing" val="east"/>
<a name="width" val="8"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</lib>
2016-03-17 14:03:26 -05:00
<lib desc="#Plexers" name="2"/>
2016-03-03 14:16:28 -06:00
<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="50000"/>
<a name="simrand" val="0"/>
</options>
<mappings>
<tool lib="6" map="Button2" name="Menu Tool"/>
2016-03-28 06:51:22 -05:00
<tool lib="6" map="Ctrl Button1" name="Menu Tool"/>
2016-03-29 17:47:18 -05:00
<tool lib="6" map="Button3" name="Menu Tool"/>
2016-03-03 14:16:28 -06:00
</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="reset"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<a name="width" val="2"/>
<a name="label" val="m/io i/o"/>
<a name="labelloc" val="north"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate">
2016-03-17 14:03:26 -05:00
<a name="facing" val="west"/>
2016-03-03 14:16:28 -06:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool lib="1" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</toolbar>
<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"/>
2016-03-28 06:51:22 -05:00
<wire from="(310,520)" to="(310,590)"/>
2016-03-29 17:47:18 -05:00
<wire from="(420,190)" to="(450,190)"/>
<wire from="(320,470)" to="(340,470)"/>
2016-03-28 06:51:22 -05:00
<wire from="(430,220)" to="(450,220)"/>
2016-03-29 17:47:18 -05:00
<wire from="(110,370)" to="(280,370)"/>
<wire from="(110,510)" to="(260,510)"/>
2016-03-03 14:16:28 -06:00
<wire from="(90,520)" to="(90,570)"/>
2016-03-28 06:51:22 -05:00
<wire from="(350,400)" to="(500,400)"/>
2016-03-29 17:47:18 -05:00
<wire from="(380,270)" to="(380,370)"/>
2016-03-03 14:16:28 -06:00
<wire from="(50,590)" to="(310,590)"/>
<wire from="(110,350)" to="(300,350)"/>
<wire from="(580,280)" to="(580,380)"/>
2016-03-28 06:51:22 -05:00
<wire from="(420,250)" to="(450,250)"/>
2016-03-29 17:47:18 -05:00
<wire from="(110,360)" to="(290,360)"/>
2016-03-03 14:16:28 -06:00
<wire from="(410,240)" to="(410,250)"/>
<wire from="(330,320)" to="(330,460)"/>
<wire from="(290,560)" to="(340,560)"/>
<wire from="(480,480)" to="(610,480)"/>
<wire from="(600,300)" to="(690,300)"/>
2016-03-29 17:47:18 -05:00
<wire from="(260,510)" to="(260,640)"/>
2016-03-03 14:16:28 -06:00
<wire from="(300,580)" to="(330,580)"/>
<wire from="(430,170)" to="(450,170)"/>
<wire from="(590,260)" to="(590,390)"/>
2016-03-28 06:51:22 -05:00
<wire from="(370,470)" to="(370,480)"/>
2016-03-29 17:47:18 -05:00
<wire from="(540,390)" to="(590,390)"/>
2016-03-03 14:16:28 -06:00
<wire from="(430,180)" to="(430,220)"/>
<wire from="(380,370)" to="(500,370)"/>
<wire from="(400,250)" to="(400,350)"/>
<wire from="(660,340)" to="(660,640)"/>
<wire from="(600,300)" to="(600,440)"/>
<wire from="(310,340)" to="(310,500)"/>
<wire from="(480,240)" to="(690,240)"/>
<wire from="(480,210)" to="(480,220)"/>
<wire from="(500,200)" to="(690,200)"/>
<wire from="(280,370)" to="(280,620)"/>
<wire from="(400,350)" to="(500,350)"/>
<wire from="(300,530)" to="(340,530)"/>
<wire from="(610,320)" to="(610,480)"/>
<wire from="(500,410)" to="(500,420)"/>
<wire from="(320,490)" to="(320,520)"/>
<wire from="(410,200)" to="(450,200)"/>
<wire from="(370,570)" to="(400,570)"/>
<wire from="(80,570)" to="(90,570)"/>
<wire from="(300,550)" to="(300,580)"/>
<wire from="(110,220)" to="(410,220)"/>
<wire from="(320,330)" to="(320,470)"/>
<wire from="(550,380)" to="(580,380)"/>
<wire from="(390,180)" to="(390,230)"/>
<wire from="(410,220)" to="(410,230)"/>
<wire from="(110,250)" to="(400,250)"/>
<wire from="(260,640)" to="(660,640)"/>
<wire from="(110,210)" to="(410,210)"/>
<wire from="(370,470)" to="(430,470)"/>
<wire from="(370,380)" to="(500,380)"/>
<wire from="(110,240)" to="(410,240)"/>
<wire from="(110,260)" to="(390,260)"/>
<wire from="(110,230)" to="(390,230)"/>
<wire from="(390,360)" to="(500,360)"/>
<wire from="(410,250)" to="(420,250)"/>
<wire from="(320,490)" to="(340,490)"/>
<wire from="(360,290)" to="(360,390)"/>
<wire from="(350,300)" to="(350,400)"/>
<wire from="(370,540)" to="(390,540)"/>
<wire from="(110,280)" to="(370,280)"/>
<wire from="(430,170)" to="(430,180)"/>
<wire from="(300,550)" to="(340,550)"/>
<wire from="(500,180)" to="(500,200)"/>
<wire from="(300,350)" to="(300,530)"/>
<wire from="(110,270)" to="(380,270)"/>
<wire from="(300,580)" to="(300,610)"/>
<wire from="(330,460)" to="(430,460)"/>
<wire from="(380,480)" to="(430,480)"/>
<wire from="(580,280)" to="(690,280)"/>
<wire from="(340,310)" to="(340,440)"/>
<wire from="(360,390)" to="(500,390)"/>
<wire from="(50,610)" to="(300,610)"/>
<wire from="(110,290)" to="(360,290)"/>
<wire from="(420,190)" to="(420,250)"/>
<wire from="(390,260)" to="(390,360)"/>
<wire from="(110,310)" to="(340,310)"/>
<wire from="(390,180)" to="(430,180)"/>
<wire from="(370,280)" to="(370,380)"/>
<wire from="(540,380)" to="(550,380)"/>
<wire from="(390,490)" to="(390,540)"/>
<wire from="(110,300)" to="(350,300)"/>
<wire from="(590,260)" to="(690,260)"/>
<wire from="(480,220)" to="(690,220)"/>
<wire from="(610,320)" to="(690,320)"/>
<wire from="(400,500)" to="(430,500)"/>
2016-03-28 06:51:22 -05:00
<wire from="(340,440)" to="(600,440)"/>
2016-03-29 17:47:18 -05:00
<wire from="(110,330)" to="(320,330)"/>
<wire from="(660,340)" to="(690,340)"/>
2016-03-03 14:16:28 -06:00
<wire from="(480,180)" to="(500,180)"/>
2016-03-28 06:51:22 -05:00
<wire from="(310,520)" to="(320,520)"/>
2016-03-29 17:47:18 -05:00
<wire from="(110,320)" to="(330,320)"/>
2016-03-03 14:16:28 -06:00
<wire from="(410,200)" to="(410,210)"/>
<wire from="(370,510)" to="(380,510)"/>
2016-03-28 06:51:22 -05:00
<wire from="(110,340)" to="(310,340)"/>
2016-03-29 17:47:18 -05:00
<wire from="(400,500)" to="(400,570)"/>
2016-03-03 14:16:28 -06:00
<wire from="(410,230)" to="(450,230)"/>
<wire from="(380,480)" to="(380,510)"/>
<wire from="(320,520)" to="(330,520)"/>
<wire from="(310,500)" to="(340,500)"/>
<wire from="(390,490)" to="(430,490)"/>
<wire from="(290,360)" to="(290,560)"/>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(480,240)" name="OR Gate">
2016-03-28 06:51:22 -05:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,300)" name="Pin">
2016-03-17 14:03:26 -05:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-29 17:47:18 -05:00
<a name="label" val="str"/>
2016-03-17 14:03:26 -05:00
<a name="labelloc" val="east"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(370,540)" name="AND Gate">
2016-03-03 14:16:28 -06:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,260)" name="Pin">
2016-03-28 06:51:22 -05:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-29 17:47:18 -05:00
<a name="label" val="en r"/>
2016-03-28 06:51:22 -05:00
<a name="labelloc" val="east"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="2" loc="(90,520)" name="Decoder">
<a name="select" val="5"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,280)" name="Pin">
2016-03-03 14:16:28 -06:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-29 17:47:18 -05:00
<a name="width" val="3"/>
<a name="label" val="op"/>
2016-03-03 14:16:28 -06:00
<a name="labelloc" val="east"/>
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="0" loc="(50,590)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="zero"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,240)" name="Pin">
2016-03-28 06:51:22 -05:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-29 17:47:18 -05:00
<a name="label" val="en b"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(370,510)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="0" loc="(690,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="hlt"/>
2016-03-28 06:51:22 -05:00
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(80,570)" name="Pin">
<a name="width" val="5"/>
<a name="tristate" val="false"/>
<a name="label" val="ins"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,220)" name="Pin">
2016-03-03 14:16:28 -06:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-29 17:47:18 -05:00
<a name="label" val="en a"/>
2016-03-03 14:16:28 -06:00
<a name="labelloc" val="east"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="2" loc="(540,380)" name="Priority Encoder"/>
<comp lib="1" loc="(480,180)" name="OR Gate">
2016-03-03 14:16:28 -06:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="1" loc="(370,480)" name="AND Gate">
2016-03-17 14:03:26 -05:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
2016-03-28 06:51:22 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(690,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="jmp"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(550,380)" name="Pull Resistor"/>
<comp lib="1" loc="(480,210)" name="OR Gate">
2016-03-28 06:51:22 -05:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(500,410)" name="Constant">
<a name="value" val="0x0"/>
2016-03-17 14:03:26 -05:00
</comp>
<comp lib="0" loc="(690,200)" name="Pin">
2016-03-03 14:16:28 -06:00
<a name="facing" val="west"/>
<a name="output" val="true"/>
2016-03-17 14:03:26 -05:00
<a name="label" val="sel src"/>
2016-03-03 14:16:28 -06:00
<a name="labelloc" val="east"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(370,570)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="1" loc="(480,480)" name="OR Gate"/>
<comp lib="0" loc="(50,610)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="carry"/>
</comp>
2016-03-03 14:16:28 -06:00
</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="(390,440)" to="(410,440)"/>
<wire from="(380,450)" to="(380,570)"/>
<wire from="(310,190)" to="(330,190)"/>
<wire from="(320,250)" to="(320,270)"/>
<wire from="(320,270)" to="(350,270)"/>
<wire from="(360,560)" to="(450,560)"/>
<wire from="(400,330)" to="(400,540)"/>
<wire from="(330,190)" to="(350,190)"/>
<wire from="(320,380)" to="(320,420)"/>
<wire from="(330,310)" to="(350,310)"/>
<wire from="(440,220)" to="(450,220)"/>
<wire from="(380,420)" to="(450,420)"/>
<wire from="(320,270)" to="(320,350)"/>
<wire from="(430,250)" to="(430,520)"/>
<wire from="(400,270)" to="(400,290)"/>
<wire from="(410,220)" to="(440,220)"/>
<wire from="(440,390)" to="(440,550)"/>
<wire from="(360,520)" to="(430,520)"/>
2016-03-28 06:51:22 -05:00
<wire from="(320,210)" to="(350,210)"/>
2016-03-29 17:47:18 -05:00
<wire from="(490,330)" to="(490,340)"/>
2016-03-03 14:16:28 -06:00
<wire from="(500,320)" to="(500,330)"/>
<wire from="(330,440)" to="(340,440)"/>
<wire from="(530,340)" to="(530,350)"/>
2016-03-28 06:51:22 -05:00
<wire from="(480,320)" to="(500,320)"/>
2016-03-29 17:47:18 -05:00
<wire from="(370,280)" to="(650,280)"/>
2016-03-03 14:16:28 -06:00
<wire from="(380,390)" to="(440,390)"/>
<wire from="(370,220)" to="(370,230)"/>
<wire from="(410,220)" to="(410,260)"/>
<wire from="(330,190)" to="(330,250)"/>
<wire from="(410,410)" to="(410,440)"/>
<wire from="(380,380)" to="(380,390)"/>
<wire from="(340,600)" to="(340,610)"/>
<wire from="(320,350)" to="(320,380)"/>
<wire from="(320,380)" to="(340,380)"/>
<wire from="(530,370)" to="(530,390)"/>
<wire from="(370,230)" to="(640,230)"/>
<wire from="(330,360)" to="(340,360)"/>
<wire from="(330,250)" to="(330,310)"/>
<wire from="(530,340)" to="(640,340)"/>
<wire from="(480,330)" to="(490,330)"/>
<wire from="(360,550)" to="(440,550)"/>
<wire from="(410,370)" to="(410,410)"/>
<wire from="(360,570)" to="(380,570)"/>
<wire from="(490,340)" to="(500,340)"/>
<wire from="(360,540)" to="(400,540)"/>
<wire from="(310,250)" to="(320,250)"/>
<wire from="(320,420)" to="(340,420)"/>
<wire from="(330,400)" to="(330,440)"/>
2016-03-28 06:51:22 -05:00
<wire from="(420,290)" to="(420,530)"/>
2016-03-29 17:47:18 -05:00
<wire from="(440,220)" to="(440,340)"/>
2016-03-03 14:16:28 -06:00
<wire from="(480,310)" to="(500,310)"/>
<wire from="(330,360)" to="(330,400)"/>
2016-03-28 06:51:22 -05:00
<wire from="(310,330)" to="(350,330)"/>
2016-03-29 17:47:18 -05:00
<wire from="(400,210)" to="(400,250)"/>
<wire from="(390,370)" to="(410,370)"/>
2016-03-03 14:16:28 -06:00
<wire from="(330,400)" to="(340,400)"/>
2016-03-28 06:51:22 -05:00
<wire from="(300,610)" to="(340,610)"/>
2016-03-29 17:47:18 -05:00
<wire from="(530,390)" to="(650,390)"/>
2016-03-03 14:16:28 -06:00
<wire from="(320,210)" to="(320,250)"/>
<wire from="(410,260)" to="(410,320)"/>
<wire from="(410,320)" to="(410,370)"/>
<wire from="(400,250)" to="(430,250)"/>
<wire from="(400,290)" to="(420,290)"/>
<wire from="(360,530)" to="(420,530)"/>
<wire from="(650,280)" to="(650,390)"/>
<wire from="(410,200)" to="(410,220)"/>
2016-03-28 06:51:22 -05:00
<wire from="(440,340)" to="(460,340)"/>
2016-03-29 17:47:18 -05:00
<wire from="(640,230)" to="(640,340)"/>
2016-03-03 14:16:28 -06:00
<wire from="(480,300)" to="(500,300)"/>
<wire from="(330,310)" to="(330,360)"/>
2016-03-28 06:51:22 -05:00
<wire from="(290,350)" to="(320,350)"/>
2016-03-29 17:47:18 -05:00
<wire from="(560,320)" to="(600,320)"/>
2016-03-03 14:16:28 -06:00
<wire from="(390,410)" to="(410,410)"/>
<wire from="(330,250)" to="(350,250)"/>
2016-03-28 06:51:22 -05:00
<wire from="(450,420)" to="(450,560)"/>
2016-03-29 17:47:18 -05:00
<wire from="(290,340)" to="(290,350)"/>
<comp lib="0" loc="(600,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="zero out"/>
<a name="labelloc" val="east"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(290,340)" name="Splitter">
<a name="fanout" val="1"/>
<a name="incoming" val="4"/>
<a name="bit1" val="0"/>
<a name="bit2" val="none"/>
<a name="bit3" val="none"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(450,220)" 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"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="2" loc="(340,600)" name="Decoder">
<a name="select" val="3"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="3" loc="(390,320)" name="Shifter">
2016-03-17 14:03:26 -05:00
<a name="width" val="4"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(370,370)" name="OR Gate">
2016-03-03 14:16:28 -06:00
<a name="width" val="4"/>
2016-03-29 17:47:18 -05:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(410,320)" name="Controlled Buffer">
2016-03-28 06:51:22 -05:00
<a name="width" val="4"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(310,190)" name="Pin">
<a name="width" val="4"/>
2016-03-28 06:51:22 -05:00
<a name="tristate" val="false"/>
2016-03-29 17:47:18 -05:00
<a name="label" val="a"/>
2016-03-28 06:51:22 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(390,440)" name="Controlled Buffer">
<a name="width" val="4"/>
2016-03-28 06:51:22 -05:00
</comp>
<comp lib="1" loc="(410,200)" name="Controlled Buffer">
<a name="width" val="4"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(460,340)" name="Splitter">
<a name="fanout" val="4"/>
<a name="incoming" val="4"/>
2016-03-28 06:51:22 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(370,440)" name="NOT Gate">
2016-03-03 14:16:28 -06:00
<a name="width" val="4"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(560,320)" name="NOR Gate">
<a name="inputs" val="4"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(390,370)" name="Controlled Buffer">
2016-03-03 14:16:28 -06:00
<a name="width" val="4"/>
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="1" loc="(390,410)" name="Controlled Buffer">
2016-03-17 14:03:26 -05:00
<a name="width" val="4"/>
</comp>
2016-03-03 14:16:28 -06:00
<comp lib="1" loc="(370,410)" name="AND Gate">
<a name="width" val="4"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(560,360)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
2016-03-28 06:51:22 -05:00
</comp>
<comp lib="0" loc="(560,360)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="carry out"/>
<a name="labelloc" val="east"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(300,610)" name="Pin">
<a name="width" val="3"/>
<a name="tristate" val="false"/>
<a name="label" val="op"/>
</comp>
<comp lib="0" loc="(310,250)" name="Pin">
<a name="width" val="4"/>
<a name="tristate" val="false"/>
<a name="label" val="b"/>
</comp>
2016-03-28 06:51:22 -05:00
<comp lib="3" loc="(390,260)" name="Subtractor">
<a name="width" val="4"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="1" loc="(410,260)" name="Controlled Buffer">
<a name="width" val="4"/>
</comp>
<comp lib="3" loc="(390,200)" name="Adder">
<a name="width" val="4"/>
</comp>
2016-03-17 14:03:26 -05:00
</circuit>
<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="(800,920)" to="(800,960)"/>
2016-03-29 17:47:18 -05:00
<wire from="(870,690)" to="(890,690)"/>
<wire from="(950,710)" to="(950,760)"/>
2016-03-17 14:03:26 -05:00
<wire from="(790,1050)" to="(790,1100)"/>
2016-03-29 17:47:18 -05:00
<wire from="(770,700)" to="(800,700)"/>
2016-03-17 14:03:26 -05:00
<wire from="(740,890)" to="(740,920)"/>
2016-03-29 17:47:18 -05:00
<wire from="(620,820)" to="(800,820)"/>
2016-03-28 06:51:22 -05:00
<wire from="(700,740)" to="(700,760)"/>
2016-03-17 14:03:26 -05:00
<wire from="(910,780)" to="(910,800)"/>
2016-03-29 17:47:18 -05:00
<wire from="(930,790)" to="(1040,790)"/>
2016-03-28 06:51:22 -05:00
<wire from="(1060,700)" to="(1090,700)"/>
2016-03-29 17:47:18 -05:00
<wire from="(490,660)" to="(560,660)"/>
2016-03-17 14:03:26 -05:00
<wire from="(190,790)" to="(730,790)"/>
2016-03-29 17:47:18 -05:00
<wire from="(190,990)" to="(810,990)"/>
<wire from="(730,870)" to="(910,870)"/>
<wire from="(740,1020)" to="(770,1020)"/>
<wire from="(570,830)" to="(570,970)"/>
2016-03-17 14:03:26 -05:00
<wire from="(650,750)" to="(650,780)"/>
2016-03-29 17:47:18 -05:00
<wire from="(620,810)" to="(880,810)"/>
2016-03-17 14:03:26 -05:00
<wire from="(950,710)" to="(960,710)"/>
<wire from="(70,750)" to="(70,760)"/>
2016-03-29 17:47:18 -05:00
<wire from="(740,890)" to="(780,890)"/>
2016-03-17 14:03:26 -05:00
<wire from="(760,910)" to="(780,910)"/>
<wire from="(800,830)" to="(870,830)"/>
2016-03-29 17:47:18 -05:00
<wire from="(860,720)" to="(870,720)"/>
2016-03-28 06:51:22 -05:00
<wire from="(460,760)" to="(700,760)"/>
2016-03-17 14:03:26 -05:00
<wire from="(920,760)" to="(950,760)"/>
2016-03-29 17:47:18 -05:00
<wire from="(650,750)" to="(660,750)"/>
<wire from="(620,850)" to="(700,850)"/>
<wire from="(1020,710)" to="(1020,850)"/>
2016-03-17 14:03:26 -05:00
<wire from="(730,1090)" to="(1000,1090)"/>
<wire from="(680,830)" to="(790,830)"/>
2016-03-29 17:47:18 -05:00
<wire from="(910,710)" to="(910,730)"/>
2016-03-17 14:03:26 -05:00
<wire from="(730,1040)" to="(770,1040)"/>
<wire from="(560,660)" to="(560,770)"/>
<wire from="(190,790)" to="(190,990)"/>
2016-03-29 17:47:18 -05:00
<wire from="(490,820)" to="(590,820)"/>
2016-03-17 14:03:26 -05:00
<wire from="(730,790)" to="(730,870)"/>
2016-03-29 17:47:18 -05:00
<wire from="(990,710)" to="(1010,710)"/>
2016-03-17 14:03:26 -05:00
<wire from="(120,690)" to="(120,710)"/>
2016-03-29 17:47:18 -05:00
<wire from="(870,690)" to="(870,720)"/>
2016-03-17 14:03:26 -05:00
<wire from="(510,700)" to="(520,700)"/>
<wire from="(710,750)" to="(720,750)"/>
2016-03-28 06:51:22 -05:00
<wire from="(560,770)" to="(820,770)"/>
2016-03-29 17:47:18 -05:00
<wire from="(990,720)" to="(1000,720)"/>
<wire from="(580,840)" to="(590,840)"/>
2016-03-17 14:03:26 -05:00
<wire from="(900,790)" to="(930,790)"/>
2016-03-28 06:51:22 -05:00
<wire from="(990,700)" to="(1030,700)"/>
2016-03-29 17:47:18 -05:00
<wire from="(600,650)" to="(1090,650)"/>
2016-03-17 14:03:26 -05:00
<wire from="(90,790)" to="(90,860)"/>
2016-03-29 17:47:18 -05:00
<wire from="(490,690)" to="(490,820)"/>
2016-03-17 14:03:26 -05:00
<wire from="(800,820)" to="(800,830)"/>
2016-03-29 17:47:18 -05:00
<wire from="(660,750)" to="(680,750)"/>
2016-03-17 14:03:26 -05:00
<wire from="(140,760)" to="(460,760)"/>
2016-03-29 17:47:18 -05:00
<wire from="(120,710)" to="(120,960)"/>
2016-03-17 14:03:26 -05:00
<wire from="(840,1020)" to="(840,1080)"/>
<wire from="(580,1080)" to="(840,1080)"/>
<wire from="(620,800)" to="(740,800)"/>
<wire from="(190,720)" to="(190,790)"/>
<wire from="(520,700)" to="(520,800)"/>
2016-03-29 17:47:18 -05:00
<wire from="(200,700)" to="(270,700)"/>
2016-03-17 14:03:26 -05:00
<wire from="(760,940)" to="(1010,940)"/>
2016-03-29 17:47:18 -05:00
<wire from="(840,740)" to="(840,790)"/>
2016-03-17 14:03:26 -05:00
<wire from="(0,750)" to="(0,860)"/>
<wire from="(740,920)" to="(740,1020)"/>
<wire from="(950,690)" to="(950,700)"/>
<wire from="(960,720)" to="(960,840)"/>
<wire from="(650,780)" to="(700,780)"/>
2016-03-29 17:47:18 -05:00
<wire from="(110,740)" to="(110,750)"/>
2016-03-17 14:03:26 -05:00
<wire from="(910,800)" to="(940,800)"/>
2016-03-28 06:51:22 -05:00
<wire from="(740,790)" to="(840,790)"/>
2016-03-29 17:47:18 -05:00
<wire from="(660,860)" to="(660,960)"/>
2016-03-17 14:03:26 -05:00
<wire from="(1050,720)" to="(1050,800)"/>
<wire from="(1000,720)" to="(1000,1090)"/>
2016-03-29 17:47:18 -05:00
<wire from="(0,750)" to="(70,750)"/>
<wire from="(680,960)" to="(680,1100)"/>
2016-03-17 14:03:26 -05:00
<wire from="(680,960)" to="(800,960)"/>
2016-03-29 17:47:18 -05:00
<wire from="(910,800)" to="(910,870)"/>
2016-03-17 14:03:26 -05:00
<wire from="(490,660)" to="(490,670)"/>
2016-03-29 17:47:18 -05:00
<wire from="(620,840)" to="(960,840)"/>
2016-03-28 06:51:22 -05:00
<wire from="(700,760)" to="(850,760)"/>
2016-03-29 17:47:18 -05:00
<wire from="(720,740)" to="(720,750)"/>
2016-03-28 06:51:22 -05:00
<wire from="(140,710)" to="(170,710)"/>
2016-03-29 17:47:18 -05:00
<wire from="(460,760)" to="(460,920)"/>
<wire from="(1090,650)" to="(1090,700)"/>
2016-03-17 14:03:26 -05:00
<wire from="(880,700)" to="(890,700)"/>
2016-03-29 17:47:18 -05:00
<wire from="(580,840)" to="(580,1080)"/>
<wire from="(800,700)" to="(800,710)"/>
<wire from="(760,910)" to="(760,940)"/>
<wire from="(680,1100)" to="(790,1100)"/>
<wire from="(70,930)" to="(650,930)"/>
2016-03-17 14:03:26 -05:00
<wire from="(620,830)" to="(680,830)"/>
<wire from="(870,760)" to="(890,760)"/>
2016-03-29 17:47:18 -05:00
<wire from="(940,730)" to="(940,800)"/>
2016-03-17 14:03:26 -05:00
<wire from="(650,870)" to="(650,930)"/>
2016-03-29 17:47:18 -05:00
<wire from="(90,790)" to="(190,790)"/>
2016-03-28 06:51:22 -05:00
<wire from="(680,830)" to="(680,960)"/>
2016-03-29 17:47:18 -05:00
<wire from="(660,740)" to="(660,750)"/>
<wire from="(740,790)" to="(740,800)"/>
2016-03-17 14:03:26 -05:00
<wire from="(730,1040)" to="(730,1090)"/>
2016-03-29 17:47:18 -05:00
<wire from="(700,780)" to="(700,850)"/>
<wire from="(850,790)" to="(900,790)"/>
2016-03-17 14:03:26 -05:00
<wire from="(850,760)" to="(850,790)"/>
<wire from="(1020,710)" to="(1030,710)"/>
2016-03-29 17:47:18 -05:00
<wire from="(790,830)" to="(790,850)"/>
<wire from="(460,920)" to="(740,920)"/>
<wire from="(70,780)" to="(70,930)"/>
<wire from="(60,760)" to="(70,760)"/>
<wire from="(570,970)" to="(850,970)"/>
<wire from="(600,650)" to="(600,720)"/>
<wire from="(870,770)" to="(870,830)"/>
<wire from="(620,860)" to="(660,860)"/>
2016-03-17 14:03:26 -05:00
<wire from="(850,890)" to="(850,970)"/>
<wire from="(150,700)" to="(170,700)"/>
2016-03-29 17:47:18 -05:00
<wire from="(810,920)" to="(810,990)"/>
<wire from="(570,830)" to="(590,830)"/>
<wire from="(930,720)" to="(930,790)"/>
<wire from="(790,850)" to="(1020,850)"/>
2016-03-17 14:03:26 -05:00
<wire from="(910,730)" to="(940,730)"/>
<wire from="(900,720)" to="(930,720)"/>
2016-03-29 17:47:18 -05:00
<wire from="(820,890)" to="(850,890)"/>
<wire from="(940,800)" to="(1050,800)"/>
2016-03-17 14:03:26 -05:00
<wire from="(800,710)" to="(830,710)"/>
<wire from="(120,690)" to="(170,690)"/>
2016-03-29 17:47:18 -05:00
<wire from="(870,720)" to="(870,760)"/>
<wire from="(1040,720)" to="(1040,790)"/>
<wire from="(1010,710)" to="(1010,940)"/>
<wire from="(820,730)" to="(830,730)"/>
2016-03-28 06:51:22 -05:00
<wire from="(520,700)" to="(630,700)"/>
2016-03-17 14:03:26 -05:00
<wire from="(150,700)" to="(150,800)"/>
2016-03-29 17:47:18 -05:00
<wire from="(920,690)" to="(950,690)"/>
2016-03-17 14:03:26 -05:00
<wire from="(0,860)" to="(90,860)"/>
2016-03-29 17:47:18 -05:00
<wire from="(150,800)" to="(520,800)"/>
<wire from="(900,710)" to="(900,720)"/>
2016-03-17 14:03:26 -05:00
<wire from="(820,730)" to="(820,770)"/>
<wire from="(600,720)" to="(630,720)"/>
<wire from="(410,700)" to="(470,700)"/>
2016-03-29 17:47:18 -05:00
<wire from="(880,700)" to="(880,810)"/>
<wire from="(810,1020)" to="(840,1020)"/>
<wire from="(510,690)" to="(510,700)"/>
2016-03-17 14:03:26 -05:00
<wire from="(900,780)" to="(900,790)"/>
2016-03-29 17:47:18 -05:00
<wire from="(100,740)" to="(110,740)"/>
2016-03-17 14:03:26 -05:00
<wire from="(120,960)" to="(660,960)"/>
2016-03-29 17:47:18 -05:00
<wire from="(620,870)" to="(650,870)"/>
<wire from="(870,770)" to="(890,770)"/>
2016-03-17 14:03:26 -05:00
<wire from="(950,700)" to="(960,700)"/>
2016-03-28 06:51:22 -05:00
<comp lib="1" loc="(140,710)" name="NOT Gate">
<a name="size" val="20"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="4" loc="(820,890)" name="D Flip-Flop"/>
<comp lib="0" loc="(470,700)" name="Splitter">
<a name="fanout" val="3"/>
<a name="incoming" val="13"/>
2016-03-17 14:03:26 -05:00
<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"/>
2016-03-29 17:47:18 -05:00
<a name="bit8" val="2"/>
<a name="bit9" val="2"/>
<a name="bit10" val="2"/>
<a name="bit11" val="2"/>
<a name="bit12" val="2"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp loc="(990,700)" name="alu"/>
2016-03-28 06:51:22 -05:00
<comp lib="2" loc="(860,720)" name="Multiplexer">
2016-03-03 14:16:28 -06:00
<a name="width" val="4"/>
2016-03-28 06:51:22 -05:00
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="4" loc="(1060,700)" name="Register">
<a name="width" val="4"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="0" loc="(510,690)" name="Splitter">
<a name="facing" val="west"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
2016-03-17 14:03:26 -05:00
<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"/>
2016-03-29 17:47:18 -05:00
</comp>
<comp lib="1" loc="(140,760)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
2016-03-17 14:03:26 -05:00
</comp>
<comp lib="4" loc="(770,700)" name="RAM">
2016-03-03 14:16:28 -06:00
<a name="dataWidth" val="4"/>
<a name="bus" val="separate"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="4" loc="(920,760)" name="Register">
2016-03-28 06:51:22 -05:00
<a name="width" val="4"/>
2016-03-03 14:16:28 -06:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="5" loc="(60,760)" name="Button">
<a name="label" val="reset"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="4" loc="(810,1020)" name="D Flip-Flop"/>
<comp lib="4" loc="(920,690)" name="Register">
2016-03-28 06:51:22 -05:00
<a name="width" val="4"/>
2016-03-17 14:03:26 -05:00
</comp>
2016-03-29 17:47:18 -05:00
<comp lib="4" loc="(200,700)" name="Counter"/>
<comp lib="4" loc="(410,700)" name="ROM">
<a name="dataWidth" val="13"/>
<a name="contents">addr/data: 8 13
0
</a>
</comp>
<comp lib="1" loc="(100,770)" name="OR Gate">
2016-03-17 14:03:26 -05:00
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
2016-03-29 17:47:18 -05:00
<comp loc="(620,800)" name="ins dec"/>
<comp lib="0" loc="(100,740)" name="Clock"/>
<comp lib="1" loc="(710,750)" name="NOT Gate"/>
2016-03-03 14:16:28 -06:00
</circuit>
</project>