Forgot to update this repo

master
Caleb Fontenot 2022-09-30 08:20:52 +07:00
parent 93a1e75666
commit 084351d3dc
16 changed files with 1553 additions and 64 deletions

@ -0,0 +1,392 @@
<?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="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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>
<lib desc="file#OneBitAdder.circ" name="7"/>
<main name="TwoBitAdderSubtractor"/>
<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"/>
</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="TwoBitAdderSubtractor">
<a name="circuit" val="TwoBitAdderSubtractor"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(320,170)" to="(330,170)"/>
<wire from="(380,160)" to="(380,210)"/>
<wire from="(190,120)" to="(190,130)"/>
<wire from="(190,310)" to="(250,310)"/>
<wire from="(380,220)" to="(480,220)"/>
<wire from="(360,290)" to="(380,290)"/>
<wire from="(120,220)" to="(250,220)"/>
<wire from="(320,170)" to="(320,200)"/>
<wire from="(380,160)" to="(390,160)"/>
<wire from="(310,200)" to="(320,200)"/>
<wire from="(380,220)" to="(380,290)"/>
<wire from="(110,120)" to="(110,150)"/>
<wire from="(100,350)" to="(250,350)"/>
<wire from="(380,210)" to="(480,210)"/>
<wire from="(90,120)" to="(90,280)"/>
<wire from="(190,130)" to="(350,130)"/>
<wire from="(350,130)" to="(350,140)"/>
<wire from="(320,300)" to="(330,300)"/>
<wire from="(110,150)" to="(330,150)"/>
<wire from="(100,350)" to="(100,380)"/>
<wire from="(310,330)" to="(320,330)"/>
<wire from="(500,220)" to="(510,220)"/>
<wire from="(360,160)" to="(380,160)"/>
<wire from="(190,180)" to="(250,180)"/>
<wire from="(190,180)" to="(190,310)"/>
<wire from="(190,130)" to="(190,180)"/>
<wire from="(120,220)" to="(120,380)"/>
<wire from="(320,300)" to="(320,330)"/>
<wire from="(380,290)" to="(390,290)"/>
<wire from="(90,280)" to="(330,280)"/>
<wire from="(350,180)" to="(350,270)"/>
<comp lib="0" loc="(90,120)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(390,160)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="6" loc="(118,410)" name="Text">
<a name="text" val="b0"/>
</comp>
<comp lib="6" loc="(188,93)" name="Text">
<a name="text" val="+- Control"/>
</comp>
<comp lib="7" loc="(340,290)" name="fullAdder"/>
<comp lib="6" loc="(419,163)" name="Text">
<a name="text" val="x0"/>
</comp>
<comp lib="0" loc="(500,220)" name="Splitter">
<a name="facing" val="west"/>
<a name="appear" val="center"/>
</comp>
<comp lib="0" loc="(100,380)" name="Pin">
<a name="facing" val="north"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(190,120)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="6" loc="(521,242)" name="Text">
<a name="text" val="x1x0"/>
</comp>
<comp lib="6" loc="(422,294)" name="Text">
<a name="text" val="x1"/>
</comp>
<comp lib="1" loc="(310,330)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(110,120)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(120,380)" name="Pin">
<a name="facing" val="north"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="6" loc="(98,410)" name="Text">
<a name="text" val="b1"/>
</comp>
<comp lib="0" loc="(390,290)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(310,200)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="7" loc="(340,160)" name="fullAdder"/>
<comp lib="6" loc="(110,98)" name="Text">
<a name="text" val="a0"/>
</comp>
<comp lib="6" loc="(88,97)" name="Text">
<a name="text" val="a1"/>
</comp>
<comp lib="0" loc="(510,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="2"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
<circuit name="EightBitAdderSubtractor">
<a name="circuit" val="EightBitAdderSubtractor"/>
<a name="clabel" val="+-"/>
<a name="clabelup" val="north"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="60" stroke="#000000" stroke-width="2" width="40" x="50" y="50"/>
<circ-port height="10" pin="830,170" width="10" x="85" y="55"/>
<circ-port height="8" pin="40,50" width="8" x="46" y="66"/>
<circ-port height="8" pin="210,50" width="8" x="66" y="46"/>
<circ-port height="8" pin="40,610" width="8" x="46" y="86"/>
<circ-anchor facing="east" height="6" width="6" x="67" y="57"/>
</appear>
<wire from="(570,380)" to="(620,380)"/>
<wire from="(210,240)" to="(250,240)"/>
<wire from="(560,400)" to="(560,420)"/>
<wire from="(650,190)" to="(760,190)"/>
<wire from="(90,530)" to="(140,530)"/>
<wire from="(210,50)" to="(210,60)"/>
<wire from="(630,170)" to="(760,170)"/>
<wire from="(530,180)" to="(540,180)"/>
<wire from="(90,220)" to="(250,220)"/>
<wire from="(570,170)" to="(590,170)"/>
<wire from="(210,300)" to="(250,300)"/>
<wire from="(510,100)" to="(510,300)"/>
<wire from="(530,180)" to="(530,200)"/>
<wire from="(570,510)" to="(640,510)"/>
<wire from="(500,370)" to="(540,370)"/>
<wire from="(130,460)" to="(130,520)"/>
<wire from="(40,120)" to="(70,120)"/>
<wire from="(310,200)" to="(530,200)"/>
<wire from="(40,520)" to="(40,610)"/>
<wire from="(210,180)" to="(250,180)"/>
<wire from="(310,260)" to="(530,260)"/>
<wire from="(480,130)" to="(480,500)"/>
<wire from="(90,220)" to="(90,480)"/>
<wire from="(480,500)" to="(540,500)"/>
<wire from="(780,170)" to="(830,170)"/>
<wire from="(90,540)" to="(100,540)"/>
<wire from="(590,130)" to="(590,170)"/>
<wire from="(110,340)" to="(250,340)"/>
<wire from="(560,600)" to="(560,630)"/>
<wire from="(560,460)" to="(560,490)"/>
<wire from="(320,390)" to="(540,390)"/>
<wire from="(570,240)" to="(600,240)"/>
<wire from="(560,60)" to="(560,150)"/>
<wire from="(320,450)" to="(540,450)"/>
<wire from="(520,230)" to="(540,230)"/>
<wire from="(310,560)" to="(320,560)"/>
<wire from="(100,280)" to="(250,280)"/>
<wire from="(310,500)" to="(320,500)"/>
<wire from="(90,500)" to="(110,500)"/>
<wire from="(570,650)" to="(660,650)"/>
<wire from="(620,160)" to="(620,380)"/>
<wire from="(660,200)" to="(760,200)"/>
<wire from="(660,200)" to="(660,650)"/>
<wire from="(600,140)" to="(600,240)"/>
<wire from="(560,190)" to="(560,220)"/>
<wire from="(310,380)" to="(320,380)"/>
<wire from="(560,530)" to="(560,560)"/>
<wire from="(640,180)" to="(760,180)"/>
<wire from="(100,580)" to="(250,580)"/>
<wire from="(130,460)" to="(250,460)"/>
<wire from="(650,190)" to="(650,580)"/>
<wire from="(100,280)" to="(100,490)"/>
<wire from="(310,440)" to="(320,440)"/>
<wire from="(90,510)" to="(120,510)"/>
<wire from="(120,400)" to="(120,510)"/>
<wire from="(470,140)" to="(470,570)"/>
<wire from="(500,110)" to="(500,370)"/>
<wire from="(570,310)" to="(610,310)"/>
<wire from="(110,340)" to="(110,500)"/>
<wire from="(560,260)" to="(560,290)"/>
<wire from="(210,180)" to="(210,240)"/>
<wire from="(320,500)" to="(320,520)"/>
<wire from="(210,480)" to="(210,540)"/>
<wire from="(320,590)" to="(540,590)"/>
<wire from="(210,600)" to="(250,600)"/>
<wire from="(210,420)" to="(250,420)"/>
<wire from="(530,250)" to="(540,250)"/>
<wire from="(120,400)" to="(250,400)"/>
<wire from="(600,140)" to="(760,140)"/>
<wire from="(320,560)" to="(320,590)"/>
<wire from="(590,130)" to="(760,130)"/>
<wire from="(210,480)" to="(250,480)"/>
<wire from="(530,250)" to="(530,260)"/>
<wire from="(620,160)" to="(760,160)"/>
<wire from="(470,570)" to="(540,570)"/>
<wire from="(90,550)" to="(90,640)"/>
<wire from="(90,140)" to="(470,140)"/>
<wire from="(210,540)" to="(250,540)"/>
<wire from="(320,380)" to="(320,390)"/>
<wire from="(210,420)" to="(210,480)"/>
<wire from="(90,150)" to="(460,150)"/>
<wire from="(90,490)" to="(100,490)"/>
<wire from="(640,180)" to="(640,510)"/>
<wire from="(320,660)" to="(540,660)"/>
<wire from="(560,330)" to="(560,360)"/>
<wire from="(320,520)" to="(540,520)"/>
<wire from="(320,440)" to="(320,450)"/>
<wire from="(210,60)" to="(210,180)"/>
<wire from="(530,80)" to="(530,160)"/>
<wire from="(570,580)" to="(650,580)"/>
<wire from="(210,540)" to="(210,600)"/>
<wire from="(310,620)" to="(320,620)"/>
<wire from="(90,640)" to="(250,640)"/>
<wire from="(90,110)" to="(500,110)"/>
<wire from="(100,540)" to="(100,580)"/>
<wire from="(520,90)" to="(520,230)"/>
<wire from="(570,440)" to="(630,440)"/>
<wire from="(510,300)" to="(540,300)"/>
<wire from="(610,150)" to="(610,310)"/>
<wire from="(210,360)" to="(210,420)"/>
<wire from="(210,60)" to="(560,60)"/>
<wire from="(90,120)" to="(490,120)"/>
<wire from="(490,430)" to="(540,430)"/>
<wire from="(40,50)" to="(40,120)"/>
<wire from="(630,170)" to="(630,440)"/>
<wire from="(90,130)" to="(480,130)"/>
<wire from="(210,300)" to="(210,360)"/>
<wire from="(490,120)" to="(490,430)"/>
<wire from="(460,640)" to="(540,640)"/>
<wire from="(140,520)" to="(250,520)"/>
<wire from="(210,240)" to="(210,300)"/>
<wire from="(530,160)" to="(540,160)"/>
<wire from="(210,360)" to="(250,360)"/>
<wire from="(90,80)" to="(530,80)"/>
<wire from="(40,520)" to="(70,520)"/>
<wire from="(140,520)" to="(140,530)"/>
<wire from="(310,320)" to="(540,320)"/>
<wire from="(320,620)" to="(320,660)"/>
<wire from="(90,520)" to="(130,520)"/>
<wire from="(90,90)" to="(520,90)"/>
<wire from="(460,150)" to="(460,640)"/>
<wire from="(90,100)" to="(510,100)"/>
<wire from="(610,150)" to="(760,150)"/>
<comp lib="1" loc="(310,260)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="6" loc="(938,151)" name="Text">
<a name="text" val="Result x: Negatives are in 2's complement"/>
</comp>
<comp lib="1" loc="(310,320)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(310,200)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="6" loc="(439,32)" name="Text">
<a name="text" val="8 Bit Adder/Subtractor"/>
<a name="font" val="SansSerif bold 18"/>
</comp>
<comp lib="7" loc="(550,240)" name="fullAdder"/>
<comp lib="7" loc="(550,170)" name="fullAdder"/>
<comp lib="1" loc="(310,620)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(830,170)" 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="6" loc="(40,22)" name="Text">
<a name="text" val="input a"/>
</comp>
<comp lib="7" loc="(550,650)" name="fullAdder"/>
<comp lib="0" loc="(210,50)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="6" loc="(212,23)" name="Text">
<a name="text" val="+- Control"/>
</comp>
<comp lib="0" loc="(70,520)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp lib="1" loc="(310,560)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="7" loc="(550,440)" name="fullAdder"/>
<comp lib="1" loc="(310,380)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="7" loc="(550,510)" name="fullAdder"/>
<comp lib="0" loc="(70,120)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp lib="1" loc="(310,500)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="7" loc="(550,310)" name="fullAdder"/>
<comp lib="0" loc="(780,170)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp lib="7" loc="(550,380)" name="fullAdder"/>
<comp lib="6" loc="(40,646)" name="Text">
<a name="text" val="input b"/>
</comp>
<comp lib="1" loc="(310,440)" name="XOR Gate">
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(40,610)" name="Pin">
<a name="facing" val="north"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="7" loc="(550,580)" name="fullAdder"/>
<comp lib="0" loc="(40,50)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
</project>

@ -0,0 +1,241 @@
<?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="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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="fullAdder"/>
<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="fullAdder">
<a name="circuit" val="fullAdder"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="40" stroke="#000000" stroke-width="2" width="30" x="40" y="40"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="47" y="54">a</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="60" y="74">y</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="48" y="74">b</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="60" y="52">c</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="60" y="63">x</text>
<circ-port height="10" pin="270,190" width="10" x="65" y="55"/>
<circ-port height="10" pin="270,350" width="10" x="55" y="75"/>
<circ-port height="8" pin="10,40" width="8" x="36" y="46"/>
<circ-port height="8" pin="40,40" width="8" x="36" y="66"/>
<circ-port height="8" pin="70,40" width="8" x="56" y="36"/>
<circ-anchor facing="east" height="6" width="6" x="47" y="57"/>
</appear>
<wire from="(10,250)" to="(10,360)"/>
<wire from="(200,170)" to="(200,180)"/>
<wire from="(80,400)" to="(80,470)"/>
<wire from="(50,220)" to="(110,220)"/>
<wire from="(10,50)" to="(20,50)"/>
<wire from="(200,360)" to="(200,380)"/>
<wire from="(70,450)" to="(110,450)"/>
<wire from="(70,140)" to="(70,290)"/>
<wire from="(50,50)" to="(50,60)"/>
<wire from="(10,50)" to="(10,200)"/>
<wire from="(210,210)" to="(210,270)"/>
<wire from="(50,120)" to="(50,220)"/>
<wire from="(70,140)" to="(110,140)"/>
<wire from="(10,360)" to="(110,360)"/>
<wire from="(10,250)" to="(110,250)"/>
<wire from="(200,330)" to="(200,340)"/>
<wire from="(40,50)" to="(50,50)"/>
<wire from="(20,100)" to="(20,150)"/>
<wire from="(80,190)" to="(80,240)"/>
<wire from="(10,40)" to="(10,50)"/>
<wire from="(260,190)" to="(270,190)"/>
<wire from="(160,330)" to="(200,330)"/>
<wire from="(80,90)" to="(80,190)"/>
<wire from="(20,150)" to="(20,310)"/>
<wire from="(20,310)" to="(110,310)"/>
<wire from="(10,410)" to="(10,470)"/>
<wire from="(160,220)" to="(200,220)"/>
<wire from="(40,330)" to="(40,380)"/>
<wire from="(50,430)" to="(50,470)"/>
<wire from="(160,380)" to="(200,380)"/>
<wire from="(70,350)" to="(70,450)"/>
<wire from="(70,40)" to="(70,50)"/>
<wire from="(160,120)" to="(210,120)"/>
<wire from="(10,410)" to="(110,410)"/>
<wire from="(50,120)" to="(110,120)"/>
<wire from="(70,50)" to="(70,140)"/>
<wire from="(200,360)" to="(210,360)"/>
<wire from="(70,290)" to="(110,290)"/>
<wire from="(20,310)" to="(20,470)"/>
<wire from="(40,40)" to="(40,50)"/>
<wire from="(40,270)" to="(40,330)"/>
<wire from="(50,220)" to="(50,430)"/>
<wire from="(80,190)" to="(110,190)"/>
<wire from="(40,170)" to="(40,270)"/>
<wire from="(20,150)" to="(110,150)"/>
<wire from="(200,340)" to="(210,340)"/>
<wire from="(70,350)" to="(110,350)"/>
<wire from="(40,170)" to="(110,170)"/>
<wire from="(260,350)" to="(270,350)"/>
<wire from="(200,180)" to="(210,180)"/>
<wire from="(20,50)" to="(20,60)"/>
<wire from="(160,430)" to="(210,430)"/>
<wire from="(200,200)" to="(210,200)"/>
<wire from="(80,240)" to="(80,400)"/>
<wire from="(80,400)" to="(110,400)"/>
<wire from="(50,90)" to="(50,120)"/>
<wire from="(50,430)" to="(110,430)"/>
<wire from="(160,170)" to="(200,170)"/>
<wire from="(70,50)" to="(80,50)"/>
<wire from="(80,240)" to="(110,240)"/>
<wire from="(200,200)" to="(200,220)"/>
<wire from="(80,50)" to="(80,60)"/>
<wire from="(40,330)" to="(110,330)"/>
<wire from="(20,100)" to="(110,100)"/>
<wire from="(40,50)" to="(40,170)"/>
<wire from="(40,380)" to="(40,470)"/>
<wire from="(40,270)" to="(110,270)"/>
<wire from="(10,360)" to="(10,410)"/>
<wire from="(210,270)" to="(210,330)"/>
<wire from="(10,200)" to="(10,250)"/>
<wire from="(210,370)" to="(210,430)"/>
<wire from="(10,200)" to="(110,200)"/>
<wire from="(20,90)" to="(20,100)"/>
<wire from="(70,290)" to="(70,350)"/>
<wire from="(210,120)" to="(210,170)"/>
<wire from="(70,450)" to="(70,470)"/>
<wire from="(40,380)" to="(110,380)"/>
<wire from="(160,270)" to="(210,270)"/>
<comp lib="0" loc="(270,350)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(160,120)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="6" loc="(85,49)" name="Text">
<a name="text" val="~c"/>
</comp>
<comp lib="1" loc="(160,380)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="6" loc="(8,16)" name="Text">
<a name="text" val="a"/>
</comp>
<comp lib="6" loc="(38,16)" name="Text">
<a name="text" val="b"/>
</comp>
<comp lib="1" loc="(80,90)" name="NOT Gate">
<a name="facing" val="south"/>
</comp>
<comp lib="6" loc="(55,49)" name="Text">
<a name="text" val="~b"/>
</comp>
<comp lib="6" loc="(68,16)" name="Text">
<a name="text" val="c"/>
</comp>
<comp lib="1" loc="(260,190)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(160,270)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(40,40)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="6" loc="(296,353)" name="Text">
<a name="text" val="y"/>
</comp>
<comp lib="1" loc="(260,350)" name="OR Gate">
<a name="inputs" val="4"/>
</comp>
<comp lib="1" loc="(20,90)" name="NOT Gate">
<a name="facing" val="south"/>
</comp>
<comp lib="6" loc="(297,194)" name="Text">
<a name="text" val="x"/>
</comp>
<comp lib="0" loc="(10,40)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="6" loc="(25,49)" name="Text">
<a name="text" val="~a"/>
</comp>
<comp lib="1" loc="(160,430)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(160,330)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="1" loc="(50,90)" name="NOT Gate">
<a name="facing" val="south"/>
</comp>
<comp lib="1" loc="(160,220)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(270,190)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(70,40)" name="Pin">
<a name="facing" val="south"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="1" loc="(160,170)" name="AND Gate">
<a name="inputs" val="3"/>
</comp>
</circuit>
</project>

@ -2,11 +2,30 @@
<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="#Wiring" name="0">
<tool name="Splitter">
<a name="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</tool>
<tool name="Pin">
<a name="facing" val="south"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4"/>
<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">
@ -16,7 +35,7 @@
<a name="valign" val="base"/>
</tool>
</lib>
<main name="main"/>
<main name="Registers"/>
<options>
<a name="gateUndefined" val="ignore"/>
<a name="simlimit" val="1000"/>
@ -51,11 +70,39 @@
<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=""/>
<circuit name="Registers">
<a name="circuit" val="Registers"/>
<a name="clabel" val="Registers"/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="130" stroke="#000000" stroke-width="2" width="80" x="50" y="30"/>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="69" y="42">dregsel</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="109" y="42">sregsel</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="64" y="72">dval</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="66" y="133">dwrite</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="71" y="151">negative</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="110" y="152">zero</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="114" y="142">sbus</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="114" y="52">dbus</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="118" y="83">r0</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="119" y="92">r1</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="119" y="102">r2</text>
<text font-family="SansSerif" font-size="7" text-anchor="middle" x="119" y="113">r3</text>
<circ-port height="8" pin="40,140" width="8" x="46" y="126"/>
<circ-port height="8" pin="110,250" width="8" x="46" y="66"/>
<circ-port height="10" pin="790,100" width="10" x="125" y="45"/>
<circ-port height="10" pin="1000,210" width="10" x="105" y="155"/>
<circ-port height="10" pin="1000,340" width="10" x="65" y="155"/>
<circ-port height="10" pin="790,460" width="10" x="125" y="135"/>
<circ-port height="10" pin="420,100" width="10" x="125" y="75"/>
<circ-port height="10" pin="420,180" width="10" x="125" y="85"/>
<circ-port height="10" pin="420,260" width="10" x="125" y="95"/>
<circ-port height="10" pin="420,340" width="10" x="125" y="105"/>
<circ-port height="8" pin="600,160" width="8" x="66" y="26"/>
<circ-port height="8" pin="610,540" width="8" x="106" y="26"/>
<circ-anchor facing="east" height="6" width="6" x="87" y="97"/>
</appear>
<wire from="(510,190)" to="(510,450)"/>
<wire from="(890,210)" to="(890,220)"/>
<wire from="(870,230)" to="(870,240)"/>
@ -161,25 +208,17 @@
<a name="label" val="sregsel"/>
<a name="labelloc" val="south"/>
</comp>
<comp lib="1" loc="(940,210)" name="OR Gate">
<a name="inputs" val="8"/>
</comp>
<comp lib="0" loc="(1000,340)" name="Pin">
<a name="facing" val="west"/>
<comp lib="0" loc="(420,340)" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<a name="label" val="negative"/>
<a name="labelloc" val="east"/>
<a name="width" val="8"/>
<a name="label" val="r3"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(640,150)" name="Tunnel">
<a name="width" val="2"/>
<a name="label" val="drs"/>
</comp>
<comp lib="0" loc="(600,160)" name="Pin">
<a name="facing" val="north"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="dregsel"/>
<a name="labelloc" val="south"/>
<comp lib="2" loc="(620,100)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="8"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(790,100)" name="Pin">
<a name="facing" val="west"/>
@ -189,24 +228,6 @@
<a name="label" val="dbus"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(780,210)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</comp>
<comp lib="4" loc="(310,350)" name="Register"/>
<comp lib="0" loc="(110,250)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="dval"/>
</comp>
<comp lib="4" loc="(310,110)" name="Register"/>
<comp lib="0" loc="(1000,210)" 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="(240,440)" name="Clock">
<a name="facing" val="north"/>
</comp>
@ -217,32 +238,60 @@
<a name="label" val="r2"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="4" loc="(310,190)" name="Register"/>
<comp lib="2" loc="(620,100)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="8"/>
<comp lib="0" loc="(600,160)" name="Pin">
<a name="facing" val="north"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="dregsel"/>
<a name="labelloc" val="south"/>
</comp>
<comp lib="4" loc="(310,270)" name="Register"/>
<comp lib="2" loc="(630,460)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="8"/>
<comp lib="1" loc="(940,210)" name="OR Gate">
<a name="inputs" val="8"/>
</comp>
<comp lib="0" loc="(110,140)" name="Tunnel">
<comp lib="0" loc="(1000,210)" 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="6" loc="(404,49)" name="Text">
<a name="text" val="Registers"/>
</comp>
<comp lib="4" loc="(310,110)" name="Register"/>
<comp lib="0" loc="(640,150)" name="Tunnel">
<a name="width" val="2"/>
<a name="label" val="drs"/>
</comp>
<comp lib="2" loc="(60,100)" name="Demultiplexer">
<a name="select" val="2"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(420,180)" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<comp lib="0" loc="(780,210)" name="Splitter">
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</comp>
<comp lib="0" loc="(110,140)" name="Tunnel">
<a name="width" val="2"/>
<a name="label" val="drs"/>
</comp>
<comp lib="2" loc="(630,460)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="8"/>
<a name="label" val="r1"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(310,350)" name="Register"/>
<comp lib="4" loc="(310,270)" name="Register"/>
<comp lib="0" loc="(40,140)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="dwrite"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="6" loc="(404,49)" name="Text">
<a name="text" val="Registers"/>
<comp lib="1" loc="(980,210)" name="NOT Gate"/>
<comp lib="0" loc="(110,250)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="dval"/>
</comp>
<comp lib="0" loc="(420,100)" name="Pin">
<a name="facing" val="south"/>
@ -251,19 +300,20 @@
<a name="label" val="r0"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(420,340)" name="Pin">
<comp lib="0" loc="(1000,340)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="negative"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="4" loc="(310,190)" name="Register"/>
<comp lib="0" loc="(420,180)" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="r3"/>
<a name="label" val="r1"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(40,140)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="dwrite"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="1" loc="(980,210)" name="NOT Gate"/>
<comp lib="0" loc="(790,460)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>

@ -0,0 +1,178 @@
<?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="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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>
<lib desc="file#AND8bit.circ" name="7"/>
<lib desc="file#or8bit.circ" name="8"/>
<lib desc="file#AdderSubtractor.circ" name="9"/>
<main name="ALU"/>
<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="width" val="8"/>
<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="ALU">
<a name="circuit" val="ALU"/>
<a name="clabel" val="ALU"/>
<a name="clabelup" val="north"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<polyline fill="none" points="170,60 170,121" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="152,158 170,122" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="119,159 151,159" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="120,121 119,157" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="120,31 120,67" stroke="#000000" stroke-width="2"/>
<path d="M121,68 Q146,90 120,120" fill="none" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="121,30 150,30" stroke="#000000" stroke-width="2"/>
<polyline fill="none" points="170,60 151,31" stroke="#000000" stroke-width="2"/>
<circ-port height="8" pin="110,80" width="8" x="116" y="46"/>
<circ-port height="8" pin="110,350" width="8" x="116" y="136"/>
<circ-port height="10" pin="590,200" width="10" x="165" y="85"/>
<circ-port height="8" pin="530,330" width="8" x="136" y="26"/>
<circ-anchor facing="east" height="6" width="6" x="147" y="57"/>
</appear>
<wire from="(130,200)" to="(220,200)"/>
<wire from="(130,200)" to="(130,290)"/>
<wire from="(140,310)" to="(140,350)"/>
<wire from="(490,210)" to="(490,260)"/>
<wire from="(490,190)" to="(510,190)"/>
<wire from="(140,130)" to="(140,220)"/>
<wire from="(110,350)" to="(140,350)"/>
<wire from="(300,170)" to="(430,170)"/>
<wire from="(520,220)" to="(520,280)"/>
<wire from="(440,250)" to="(440,280)"/>
<wire from="(130,80)" to="(130,110)"/>
<wire from="(310,260)" to="(310,280)"/>
<wire from="(240,250)" to="(440,250)"/>
<wire from="(130,110)" to="(220,110)"/>
<wire from="(140,310)" to="(220,310)"/>
<wire from="(300,170)" to="(300,210)"/>
<wire from="(130,290)" to="(220,290)"/>
<wire from="(140,130)" to="(220,130)"/>
<wire from="(300,150)" to="(430,150)"/>
<wire from="(440,180)" to="(440,250)"/>
<wire from="(260,210)" to="(300,210)"/>
<wire from="(140,220)" to="(220,220)"/>
<wire from="(140,220)" to="(140,310)"/>
<wire from="(490,210)" to="(510,210)"/>
<wire from="(460,160)" to="(490,160)"/>
<wire from="(540,200)" to="(590,200)"/>
<wire from="(130,110)" to="(130,200)"/>
<wire from="(260,120)" to="(300,120)"/>
<wire from="(310,260)" to="(490,260)"/>
<wire from="(110,80)" to="(130,80)"/>
<wire from="(260,280)" to="(310,280)"/>
<wire from="(530,300)" to="(530,330)"/>
<wire from="(300,120)" to="(300,150)"/>
<wire from="(240,250)" to="(240,270)"/>
<wire from="(440,280)" to="(510,280)"/>
<wire from="(490,160)" to="(490,190)"/>
<comp lib="0" loc="(590,200)" 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="6" loc="(464,397)" name="Text">
<a name="text" val="11 -"/>
</comp>
<comp lib="9" loc="(240,280)" name="EightBitAdderSubtractor"/>
<comp lib="2" loc="(460,160)" name="Multiplexer">
<a name="width" val="8"/>
<a name="enable" val="false"/>
</comp>
<comp lib="6" loc="(597,291)" name="Text">
<a name="text" val="reverse the bit location"/>
</comp>
<comp lib="0" loc="(110,80)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="a"/>
</comp>
<comp lib="2" loc="(540,200)" name="Multiplexer">
<a name="width" val="8"/>
<a name="enable" val="false"/>
</comp>
<comp lib="6" loc="(471,356)" name="Text">
<a name="text" val="01 OR"/>
</comp>
<comp lib="0" loc="(530,300)" name="Splitter">
<a name="facing" val="north"/>
<a name="bit0" val="1"/>
<a name="bit1" val="0"/>
</comp>
<comp lib="6" loc="(294,39)" name="Text">
<a name="text" val="Full 8-bit ALU"/>
<a name="font" val="SansSerif bold 24"/>
</comp>
<comp lib="6" loc="(466,375)" name="Text">
<a name="text" val="10 +"/>
</comp>
<comp lib="0" loc="(530,330)" name="Pin">
<a name="facing" val="north"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(110,350)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="b"/>
</comp>
<comp lib="8" loc="(240,200)" name="OR8bit"/>
<comp lib="6" loc="(475,338)" name="Text">
<a name="text" val="00 AND"/>
</comp>
<comp lib="7" loc="(240,110)" name="AND8bit"/>
</circuit>
</project>

@ -0,0 +1,109 @@
<?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="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</tool>
<tool name="Pin">
<a name="facing" val="south"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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>
<tool name="Text">
<a name="text" val="a"/>
</tool>
</lib>
<lib desc="file#/media/DataEXT4/Documents/Logisim/lab15/ALU_CalebFontenot.circ" name="7"/>
<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="(220,210)" to="(300,210)"/>
<wire from="(110,170)" to="(170,170)"/>
<wire from="(110,260)" to="(170,260)"/>
<wire from="(190,110)" to="(190,150)"/>
<comp lib="0" loc="(300,210)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(190,110)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="ALU Control"/>
</comp>
<comp lib="0" loc="(110,260)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="b"/>
</comp>
<comp lib="0" loc="(110,170)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="a"/>
</comp>
<comp lib="7" loc="(190,170)" name="ALU"/>
</circuit>
</project>

@ -0,0 +1,183 @@
<?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="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</tool>
<tool name="Pin">
<a name="facing" val="south"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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>
<tool name="Text">
<a name="text" val="a"/>
</tool>
</lib>
<lib desc="file#/media/DataEXT4/Documents/Logisim/lab14/AdderSubtractor.circ" name="7"/>
<lib desc="file#../AND8bit.circ" name="8"/>
<lib desc="file#../OR8bit.circ" name="9"/>
<lib desc="file#../AdderSubtractor_Markou.circ" name="10"/>
<main name="ALU"/>
<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="ALU">
<a name="circuit" val="ALU"/>
<a name="clabel" val="ALU"/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<path d="M50,100 Q70,75 50,50" fill="none" stroke="#000000"/>
<polyline fill="none" points="50,50 50,10" stroke="#000000"/>
<polyline fill="none" points="50,10 81,10" stroke="#000000"/>
<polyline fill="none" points="100,50 100,100" stroke="#000000"/>
<polyline fill="none" points="81,9 100,49" stroke="#000000"/>
<polyline fill="none" points="100,101 80,130" stroke="#000000"/>
<polyline fill="none" points="81,130 49,130" stroke="#000000"/>
<polyline fill="none" points="50,100 50,130" stroke="#000000"/>
<circ-port height="8" pin="120,140" width="8" x="46" y="26"/>
<circ-port height="8" pin="130,410" width="8" x="46" y="116"/>
<circ-port height="10" pin="630,230" width="10" x="95" y="65"/>
<circ-port height="8" pin="510,460" width="8" x="66" y="6"/>
<circ-anchor facing="east" height="6" width="6" x="67" y="27"/>
</appear>
<wire from="(190,160)" to="(190,290)"/>
<wire from="(210,140)" to="(210,270)"/>
<wire from="(400,170)" to="(460,170)"/>
<wire from="(470,340)" to="(530,340)"/>
<wire from="(130,410)" to="(190,410)"/>
<wire from="(580,230)" to="(630,230)"/>
<wire from="(450,240)" to="(450,380)"/>
<wire from="(510,450)" to="(510,460)"/>
<wire from="(530,340)" to="(530,370)"/>
<wire from="(360,340)" to="(470,340)"/>
<wire from="(450,240)" to="(550,240)"/>
<wire from="(360,340)" to="(360,370)"/>
<wire from="(510,450)" to="(550,450)"/>
<wire from="(540,310)" to="(560,310)"/>
<wire from="(490,160)" to="(520,160)"/>
<wire from="(520,220)" to="(550,220)"/>
<wire from="(120,140)" to="(210,140)"/>
<wire from="(470,180)" to="(470,340)"/>
<wire from="(400,170)" to="(400,280)"/>
<wire from="(190,410)" to="(340,410)"/>
<wire from="(190,290)" to="(340,290)"/>
<wire from="(190,160)" to="(340,160)"/>
<wire from="(380,280)" to="(400,280)"/>
<wire from="(550,390)" to="(550,450)"/>
<wire from="(540,310)" to="(540,370)"/>
<wire from="(560,250)" to="(560,310)"/>
<wire from="(380,150)" to="(460,150)"/>
<wire from="(190,290)" to="(190,410)"/>
<wire from="(210,270)" to="(210,390)"/>
<wire from="(520,160)" to="(520,220)"/>
<wire from="(210,270)" to="(340,270)"/>
<wire from="(210,140)" to="(340,140)"/>
<wire from="(210,390)" to="(340,390)"/>
<wire from="(380,380)" to="(450,380)"/>
<comp lib="0" loc="(130,410)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="b"/>
</comp>
<comp lib="8" loc="(360,140)" name="AND8bit"/>
<comp lib="0" loc="(120,140)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="a"/>
</comp>
<comp lib="6" loc="(451,492)" name="Text">
<a name="text" val="11 -"/>
</comp>
<comp lib="9" loc="(360,270)" name="OR8bit"/>
<comp lib="2" loc="(580,230)" name="Multiplexer">
<a name="width" val="8"/>
<a name="enable" val="false"/>
</comp>
<comp lib="6" loc="(451,478)" name="Text">
<a name="text" val="10 +"/>
</comp>
<comp lib="2" loc="(490,160)" name="Multiplexer">
<a name="width" val="8"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(550,390)" name="Splitter">
<a name="facing" val="north"/>
<a name="bit0" val="1"/>
<a name="bit1" val="0"/>
</comp>
<comp lib="10" loc="(360,380)" name="EightBitAdderSubtractor"/>
<comp lib="6" loc="(461,447)" name="Text">
<a name="text" val="00 AND"/>
</comp>
<comp lib="6" loc="(457,463)" name="Text">
<a name="text" val="01 OR"/>
</comp>
<comp lib="0" loc="(630,230)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(510,460)" name="Pin">
<a name="facing" val="north"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
</comp>
</circuit>
</project>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -0,0 +1,212 @@
<?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="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="legacy"/>
</tool>
<tool name="Pin">
<a name="facing" val="south"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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>
<tool name="Text">
<a name="text" val="a"/>
</tool>
</lib>
<lib desc="file#/media/DataEXT4/Documents/Logisim/lab13/Registers.circ" name="7"/>
<lib desc="file#/media/DataEXT4/Documents/Logisim/lab15/ALU_CalebFontenot.circ" name="8"/>
<main name="memory-ALU-Testing"/>
<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="memory-ALU-Testing">
<a name="circuit" val="memory-ALU-Testing"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(530,130)" to="(530,140)"/>
<wire from="(380,250)" to="(380,320)"/>
<wire from="(200,220)" to="(200,230)"/>
<wire from="(590,200)" to="(590,330)"/>
<wire from="(400,190)" to="(400,200)"/>
<wire from="(400,210)" to="(400,220)"/>
<wire from="(310,270)" to="(310,280)"/>
<wire from="(310,130)" to="(310,140)"/>
<wire from="(390,160)" to="(510,160)"/>
<wire from="(350,270)" to="(350,280)"/>
<wire from="(350,130)" to="(350,140)"/>
<wire from="(550,330)" to="(590,330)"/>
<wire from="(390,170)" to="(390,190)"/>
<wire from="(390,220)" to="(390,240)"/>
<wire from="(260,100)" to="(260,180)"/>
<wire from="(260,180)" to="(290,180)"/>
<wire from="(370,200)" to="(400,200)"/>
<wire from="(370,210)" to="(400,210)"/>
<wire from="(390,170)" to="(410,170)"/>
<wire from="(370,190)" to="(390,190)"/>
<wire from="(370,220)" to="(390,220)"/>
<wire from="(370,160)" to="(390,160)"/>
<wire from="(390,240)" to="(410,240)"/>
<wire from="(560,200)" to="(590,200)"/>
<wire from="(90,180)" to="(110,180)"/>
<wire from="(400,190)" to="(410,190)"/>
<wire from="(400,220)" to="(410,220)"/>
<wire from="(280,240)" to="(290,240)"/>
<wire from="(370,250)" to="(380,250)"/>
<wire from="(250,180)" to="(260,180)"/>
<wire from="(390,100)" to="(390,160)"/>
<wire from="(380,250)" to="(510,250)"/>
<comp lib="0" loc="(310,280)" name="Pin">
<a name="facing" val="north"/>
<a name="output" val="true"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(410,170)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(410,240)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(350,130)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(530,130)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
<a name="label" val="ALU Operation"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(380,320)" name="Pin">
<a name="facing" val="north"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="4" loc="(250,180)" name="RAM"/>
<comp lib="8" loc="(530,160)" name="ALU"/>
<comp lib="0" loc="(410,190)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(310,130)" name="Pin">
<a name="facing" val="south"/>
<a name="width" val="2"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(390,100)" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(90,180)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Memory Address"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(260,100)" name="Pin">
<a name="facing" val="south"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(350,280)" name="Pin">
<a name="facing" val="north"/>
<a name="output" val="true"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(280,240)" name="Pin">
<a name="tristate" val="false"/>
</comp>
<comp lib="0" loc="(550,330)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="result"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(200,230)" name="Pin">
<a name="facing" val="north"/>
<a name="tristate" val="false"/>
</comp>
<comp lib="7" loc="(330,210)" name="Registers"/>
<comp lib="0" loc="(410,220)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
</project>

Binary file not shown.

@ -0,0 +1,124 @@
<?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"/>
<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="programCounter"/>
<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="programCounter">
<a name="circuit" val="programCounter"/>
<a name="clabel" val="programCounter"/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(300,200)" to="(390,200)"/>
<wire from="(160,260)" to="(220,260)"/>
<wire from="(120,230)" to="(140,230)"/>
<wire from="(120,250)" to="(140,250)"/>
<wire from="(120,270)" to="(140,270)"/>
<wire from="(120,290)" to="(140,290)"/>
<wire from="(240,190)" to="(260,190)"/>
<wire from="(90,220)" to="(140,220)"/>
<wire from="(90,240)" to="(140,240)"/>
<wire from="(90,260)" to="(140,260)"/>
<wire from="(90,280)" to="(140,280)"/>
<wire from="(220,210)" to="(220,260)"/>
<wire from="(170,160)" to="(240,160)"/>
<wire from="(280,120)" to="(280,180)"/>
<wire from="(220,210)" to="(260,210)"/>
<wire from="(240,160)" to="(240,190)"/>
<comp lib="0" loc="(160,260)" name="Splitter">
<a name="facing" val="west"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="center"/>
</comp>
<comp lib="0" loc="(90,220)" name="Constant"/>
<comp lib="3" loc="(300,200)" name="Adder"/>
<comp lib="0" loc="(90,280)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(90,260)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(120,290)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="6" loc="(187,70)" name="Text">
<a name="text" val="Program Counter - Caleb Fontenot"/>
</comp>
<comp lib="0" loc="(120,250)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(170,160)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Address of current instruction in memory"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(120,230)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(390,200)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Next Instruction of program in memory"/>
<a name="labelloc" val="north"/>
</comp>
<comp lib="0" loc="(90,240)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="6" loc="(135,71)" name="Text"/>
<comp lib="6" loc="(184,65)" name="Text"/>
<comp lib="0" loc="(120,270)" name="Constant">
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(280,120)" name="Constant">
<a name="facing" val="south"/>
<a name="value" val="0x0"/>
</comp>
</circuit>
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB