<?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"/>
    </tool>
    <tool name="Probe">
      <a name="facing" val="west"/>
    </tool>
    <tool name="Tunnel">
      <a name="facing" val="east"/>
    </tool>
    <tool name="Clock">
      <a name="facing" val="north"/>
    </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>
  </lib>
  <lib desc="jar#../cs316.jar#edu.cornell.cs316.Components" name="7">
    <tool name="MIPSProgramROM">
      <a name="contents" val=""/>
    </tool>
  </lib>
  <lib desc="file#C:\Users\Jaafar\Desktop\Lab 7\ALU control.circ" name="8"/>
  <lib desc="file#C:\Users\Jaafar\Desktop\Lab 7\Control.circ" name="9"/>
  <lib desc="file#Shift 2bits.circ" name="10"/>
  <lib desc="file#Sign Extended.circ" name="11"/>
  <lib desc="file#C:\Users\Jaafar\Desktop\Lab 7\ALU 32.circ" name="12"/>
  <lib desc="file#Shift_2.circ" name="13"/>
  <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="(1630,760)" to="(1670,760)"/>
    <wire from="(730,790)" to="(850,790)"/>
    <wire from="(490,70)" to="(490,200)"/>
    <wire from="(110,770)" to="(420,770)"/>
    <wire from="(1410,780)" to="(1450,780)"/>
    <wire from="(260,580)" to="(260,590)"/>
    <wire from="(1090,690)" to="(1090,720)"/>
    <wire from="(480,140)" to="(650,140)"/>
    <wire from="(1010,780)" to="(1050,780)"/>
    <wire from="(200,600)" to="(200,620)"/>
    <wire from="(1010,300)" to="(1050,300)"/>
    <wire from="(880,800)" to="(880,820)"/>
    <wire from="(270,590)" to="(270,620)"/>
    <wire from="(350,590)" to="(350,620)"/>
    <wire from="(1490,770)" to="(1490,780)"/>
    <wire from="(1260,620)" to="(1310,620)"/>
    <wire from="(680,1110)" to="(980,1110)"/>
    <wire from="(1490,730)" to="(1500,730)"/>
    <wire from="(80,400)" to="(560,400)"/>
    <wire from="(1200,0)" to="(1200,60)"/>
    <wire from="(190,470)" to="(530,470)"/>
    <wire from="(760,530)" to="(1660,530)"/>
    <wire from="(980,730)" to="(980,1110)"/>
    <wire from="(830,140)" to="(900,140)"/>
    <wire from="(340,500)" to="(340,560)"/>
    <wire from="(1290,920)" to="(1310,920)"/>
    <wire from="(70,840)" to="(450,840)"/>
    <wire from="(160,610)" to="(160,620)"/>
    <wire from="(290,580)" to="(290,590)"/>
    <wire from="(370,580)" to="(370,590)"/>
    <wire from="(790,40)" to="(890,40)"/>
    <wire from="(720,940)" to="(760,940)"/>
    <wire from="(450,820)" to="(450,840)"/>
    <wire from="(230,600)" to="(230,620)"/>
    <wire from="(380,590)" to="(380,620)"/>
    <wire from="(930,820)" to="(930,840)"/>
    <wire from="(300,590)" to="(300,620)"/>
    <wire from="(160,50)" to="(160,80)"/>
    <wire from="(1480,730)" to="(1480,740)"/>
    <wire from="(1470,720)" to="(1470,730)"/>
    <wire from="(230,480)" to="(520,480)"/>
    <wire from="(910,750)" to="(910,830)"/>
    <wire from="(790,40)" to="(790,60)"/>
    <wire from="(1010,740)" to="(1010,780)"/>
    <wire from="(1410,410)" to="(1410,780)"/>
    <wire from="(790,60)" to="(820,60)"/>
    <wire from="(140,460)" to="(540,460)"/>
    <wire from="(50,700)" to="(60,700)"/>
    <wire from="(140,460)" to="(140,590)"/>
    <wire from="(880,820)" to="(930,820)"/>
    <wire from="(1670,350)" to="(1670,760)"/>
    <wire from="(1390,390)" to="(1390,790)"/>
    <wire from="(110,770)" to="(110,780)"/>
    <wire from="(190,610)" to="(190,620)"/>
    <wire from="(1030,720)" to="(1090,720)"/>
    <wire from="(400,580)" to="(400,590)"/>
    <wire from="(680,370)" to="(740,370)"/>
    <wire from="(680,470)" to="(720,470)"/>
    <wire from="(150,10)" to="(150,30)"/>
    <wire from="(650,60)" to="(650,140)"/>
    <wire from="(250,590)" to="(250,620)"/>
    <wire from="(30,720)" to="(30,810)"/>
    <wire from="(330,590)" to="(330,620)"/>
    <wire from="(50,810)" to="(50,1220)"/>
    <wire from="(190,50)" to="(190,80)"/>
    <wire from="(1470,770)" to="(1470,780)"/>
    <wire from="(720,470)" to="(720,940)"/>
    <wire from="(1090,70)" to="(1090,630)"/>
    <wire from="(1470,730)" to="(1480,730)"/>
    <wire from="(1290,680)" to="(1290,920)"/>
    <wire from="(1310,990)" to="(1580,990)"/>
    <wire from="(680,350)" to="(1670,350)"/>
    <wire from="(750,740)" to="(750,1220)"/>
    <wire from="(680,410)" to="(1410,410)"/>
    <wire from="(970,710)" to="(970,1000)"/>
    <wire from="(480,100)" to="(480,140)"/>
    <wire from="(500,990)" to="(760,990)"/>
    <wire from="(40,1220)" to="(50,1220)"/>
    <wire from="(550,160)" to="(550,530)"/>
    <wire from="(1450,780)" to="(1470,780)"/>
    <wire from="(860,800)" to="(860,850)"/>
    <wire from="(1580,700)" to="(1620,700)"/>
    <wire from="(70,200)" to="(70,840)"/>
    <wire from="(750,740)" to="(800,740)"/>
    <wire from="(840,180)" to="(900,180)"/>
    <wire from="(80,400)" to="(80,600)"/>
    <wire from="(460,50)" to="(460,60)"/>
    <wire from="(270,580)" to="(270,590)"/>
    <wire from="(350,580)" to="(350,590)"/>
    <wire from="(520,1160)" to="(560,1160)"/>
    <wire from="(840,750)" to="(840,780)"/>
    <wire from="(210,600)" to="(210,620)"/>
    <wire from="(280,590)" to="(280,620)"/>
    <wire from="(1020,610)" to="(1020,630)"/>
    <wire from="(360,590)" to="(360,620)"/>
    <wire from="(1510,780)" to="(1510,790)"/>
    <wire from="(660,1130)" to="(660,1150)"/>
    <wire from="(790,-20)" to="(790,0)"/>
    <wire from="(680,430)" to="(830,430)"/>
    <wire from="(1310,250)" to="(1310,620)"/>
    <wire from="(1200,720)" to="(1200,960)"/>
    <wire from="(460,70)" to="(490,70)"/>
    <wire from="(510,850)" to="(860,850)"/>
    <wire from="(790,0)" to="(1200,0)"/>
    <wire from="(1450,720)" to="(1450,780)"/>
    <wire from="(830,140)" to="(830,430)"/>
    <wire from="(510,490)" to="(510,850)"/>
    <wire from="(1050,140)" to="(1050,300)"/>
    <wire from="(110,780)" to="(120,780)"/>
    <wire from="(60,700)" to="(200,700)"/>
    <wire from="(1400,700)" to="(1420,700)"/>
    <wire from="(1370,640)" to="(1370,680)"/>
    <wire from="(680,330)" to="(1050,330)"/>
    <wire from="(550,160)" to="(730,160)"/>
    <wire from="(50,1220)" to="(750,1220)"/>
    <wire from="(540,830)" to="(910,830)"/>
    <wire from="(170,610)" to="(170,620)"/>
    <wire from="(380,580)" to="(380,590)"/>
    <wire from="(520,1070)" to="(520,1160)"/>
    <wire from="(760,650)" to="(800,650)"/>
    <wire from="(630,1070)" to="(630,1100)"/>
    <wire from="(740,780)" to="(840,780)"/>
    <wire from="(240,600)" to="(240,620)"/>
    <wire from="(390,590)" to="(390,620)"/>
    <wire from="(870,750)" to="(870,770)"/>
    <wire from="(310,590)" to="(310,620)"/>
    <wire from="(170,50)" to="(170,80)"/>
    <wire from="(810,80)" to="(810,160)"/>
    <wire from="(70,200)" to="(490,200)"/>
    <wire from="(710,490)" to="(710,1150)"/>
    <wire from="(970,80)" to="(970,160)"/>
    <wire from="(980,730)" to="(1000,730)"/>
    <wire from="(520,1070)" to="(540,1070)"/>
    <wire from="(630,1100)" to="(650,1100)"/>
    <wire from="(840,250)" to="(1310,250)"/>
    <wire from="(1630,710)" to="(1630,760)"/>
    <wire from="(970,710)" to="(1000,710)"/>
    <wire from="(1650,690)" to="(1660,690)"/>
    <wire from="(460,60)" to="(470,60)"/>
    <wire from="(1260,680)" to="(1290,680)"/>
    <wire from="(10,0)" to="(790,0)"/>
    <wire from="(1050,140)" to="(1140,140)"/>
    <wire from="(530,840)" to="(930,840)"/>
    <wire from="(550,530)" to="(630,530)"/>
    <wire from="(1580,700)" to="(1580,990)"/>
    <wire from="(680,450)" to="(1010,450)"/>
    <wire from="(650,60)" to="(790,60)"/>
    <wire from="(420,700)" to="(420,770)"/>
    <wire from="(660,1150)" to="(710,1150)"/>
    <wire from="(520,480)" to="(520,1070)"/>
    <wire from="(1090,70)" to="(1130,70)"/>
    <wire from="(1160,60)" to="(1200,60)"/>
    <wire from="(250,580)" to="(250,590)"/>
    <wire from="(740,370)" to="(740,780)"/>
    <wire from="(860,70)" to="(960,70)"/>
    <wire from="(1560,680)" to="(1620,680)"/>
    <wire from="(1090,690)" to="(1150,690)"/>
    <wire from="(260,590)" to="(260,620)"/>
    <wire from="(340,590)" to="(340,620)"/>
    <wire from="(630,1120)" to="(630,1160)"/>
    <wire from="(100,130)" to="(130,130)"/>
    <wire from="(340,500)" to="(500,500)"/>
    <wire from="(60,150)" to="(60,700)"/>
    <wire from="(1310,920)" to="(1310,970)"/>
    <wire from="(-30,0)" to="(10,0)"/>
    <wire from="(730,310)" to="(730,790)"/>
    <wire from="(1510,720)" to="(1510,780)"/>
    <wire from="(190,470)" to="(190,580)"/>
    <wire from="(410,700)" to="(420,700)"/>
    <wire from="(-30,-10)" to="(-30,0)"/>
    <wire from="(10,700)" to="(20,700)"/>
    <wire from="(890,50)" to="(960,50)"/>
    <wire from="(1660,530)" to="(1660,690)"/>
    <wire from="(540,460)" to="(540,830)"/>
    <wire from="(10,0)" to="(10,700)"/>
    <wire from="(1310,970)" to="(1310,990)"/>
    <wire from="(240,490)" to="(240,560)"/>
    <wire from="(150,610)" to="(150,620)"/>
    <wire from="(820,960)" to="(1200,960)"/>
    <wire from="(960,610)" to="(1020,610)"/>
    <wire from="(470,50)" to="(470,60)"/>
    <wire from="(280,580)" to="(280,590)"/>
    <wire from="(360,580)" to="(360,590)"/>
    <wire from="(630,530)" to="(630,1070)"/>
    <wire from="(220,600)" to="(220,620)"/>
    <wire from="(230,480)" to="(230,570)"/>
    <wire from="(290,590)" to="(290,620)"/>
    <wire from="(370,590)" to="(370,620)"/>
    <wire from="(1390,790)" to="(1510,790)"/>
    <wire from="(750,1220)" to="(1500,1220)"/>
    <wire from="(470,60)" to="(510,60)"/>
    <wire from="(790,160)" to="(810,160)"/>
    <wire from="(950,160)" to="(970,160)"/>
    <wire from="(630,1120)" to="(650,1120)"/>
    <wire from="(600,1160)" to="(630,1160)"/>
    <wire from="(1140,80)" to="(1140,140)"/>
    <wire from="(680,390)" to="(1390,390)"/>
    <wire from="(760,530)" to="(760,650)"/>
    <wire from="(230,570)" to="(240,570)"/>
    <wire from="(1020,630)" to="(1090,630)"/>
    <wire from="(1350,640)" to="(1370,640)"/>
    <wire from="(1400,700)" to="(1400,1000)"/>
    <wire from="(420,640)" to="(420,700)"/>
    <wire from="(1490,780)" to="(1510,780)"/>
    <wire from="(60,150)" to="(130,150)"/>
    <wire from="(1500,730)" to="(1500,1220)"/>
    <wire from="(990,60)" to="(1040,60)"/>
    <wire from="(680,310)" to="(730,310)"/>
    <wire from="(890,40)" to="(890,50)"/>
    <wire from="(930,750)" to="(930,820)"/>
    <wire from="(170,140)" to="(480,140)"/>
    <wire from="(180,610)" to="(180,620)"/>
    <wire from="(1050,70)" to="(1050,140)"/>
    <wire from="(840,180)" to="(840,250)"/>
    <wire from="(390,580)" to="(390,590)"/>
    <wire from="(1020,10)" to="(1020,40)"/>
    <wire from="(1050,330)" to="(1050,780)"/>
    <wire from="(1070,50)" to="(1130,50)"/>
    <wire from="(1090,630)" to="(1150,630)"/>
    <wire from="(400,590)" to="(400,620)"/>
    <wire from="(150,10)" to="(1020,10)"/>
    <wire from="(1010,300)" to="(1010,450)"/>
    <wire from="(320,590)" to="(320,620)"/>
    <wire from="(1130,40)" to="(1130,50)"/>
    <wire from="(1370,680)" to="(1420,680)"/>
    <wire from="(180,50)" to="(180,80)"/>
    <wire from="(1490,720)" to="(1490,730)"/>
    <wire from="(970,1000)" to="(1400,1000)"/>
    <wire from="(1020,40)" to="(1040,40)"/>
    <wire from="(610,1070)" to="(630,1070)"/>
    <wire from="(680,490)" to="(710,490)"/>
    <wire from="(30,810)" to="(50,810)"/>
    <wire from="(500,500)" to="(500,990)"/>
    <wire from="(410,640)" to="(420,640)"/>
    <wire from="(240,490)" to="(510,490)"/>
    <wire from="(960,710)" to="(970,710)"/>
    <wire from="(530,470)" to="(530,840)"/>
    <wire from="(810,80)" to="(820,80)"/>
    <comp lib="13" loc="(790,160)" name="main"/>
    <comp lib="0" loc="(600,1160)" name="Bit Extender">
      <a name="in_width" val="16"/>
      <a name="out_width" val="32"/>
    </comp>
    <comp lib="0" loc="(100,130)" name="Constant">
      <a name="width" val="32"/>
      <a name="value" val="0x4"/>
    </comp>
    <comp lib="4" loc="(1560,680)" name="RAM">
      <a name="addrWidth" val="16"/>
      <a name="dataWidth" val="32"/>
      <a name="bus" val="separate"/>
    </comp>
    <comp lib="6" loc="(125,674)" name="Text">
      <a name="text" val="PC"/>
    </comp>
    <comp lib="2" loc="(1160,60)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="11" loc="(610,1070)" name="main"/>
    <comp lib="2" loc="(680,1110)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="8" loc="(560,880)" name="main"/>
    <comp lib="6" loc="(761,128)" name="Text">
      <a name="text" val="Shift"/>
    </comp>
    <comp lib="1" loc="(1480,740)" name="OR Gate">
      <a name="facing" val="north"/>
      <a name="size" val="30"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(480,100)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="32"/>
      <a name="incoming" val="32"/>
    </comp>
    <comp lib="0" loc="(40,1220)" name="Clock"/>
    <comp lib="2" loc="(990,60)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="3" loc="(170,140)" name="Adder">
      <a name="width" val="32"/>
    </comp>
    <comp lib="0" loc="(1310,970)" name="Splitter">
      <a name="fanout" val="32"/>
      <a name="incoming" val="32"/>
    </comp>
    <comp lib="1" loc="(950,160)" name="AND Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(120,780)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="32"/>
      <a name="incoming" val="32"/>
    </comp>
    <comp lib="0" loc="(190,580)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="5"/>
      <a name="incoming" val="5"/>
    </comp>
    <comp lib="0" loc="(240,570)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="16"/>
      <a name="incoming" val="16"/>
    </comp>
    <comp lib="0" loc="(150,30)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="32"/>
      <a name="incoming" val="32"/>
    </comp>
    <comp lib="0" loc="(1350,640)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="16"/>
      <a name="incoming" val="16"/>
    </comp>
    <comp lib="9" loc="(410,260)" name="main"/>
    <comp lib="2" loc="(870,770)" name="Multiplexer">
      <a name="facing" val="north"/>
      <a name="width" val="5"/>
    </comp>
    <comp lib="2" loc="(1030,720)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="7" loc="(960,660)" name="RegisterFile"/>
    <comp lib="4" loc="(50,700)" name="Register">
      <a name="width" val="32"/>
    </comp>
    <comp lib="0" loc="(240,560)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="5"/>
      <a name="incoming" val="5"/>
    </comp>
    <comp lib="0" loc="(460,70)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="26"/>
      <a name="incoming" val="26"/>
    </comp>
    <comp lib="2" loc="(1650,690)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="3" loc="(860,70)" name="Adder">
      <a name="width" val="32"/>
    </comp>
    <comp lib="7" loc="(410,700)" name="MIPSProgramROM">
      <a name="contents">ori $1,$2,0x0007
sw $9,0x0004($12)
lw $10,0x0004($12)
</a>
    </comp>
    <comp lib="2" loc="(1070,50)" name="Multiplexer">
      <a name="width" val="32"/>
    </comp>
    <comp lib="0" loc="(140,590)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="5"/>
      <a name="incoming" val="5"/>
    </comp>
    <comp lib="0" loc="(410,640)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="32"/>
      <a name="incoming" val="32"/>
    </comp>
    <comp lib="0" loc="(510,60)" name="Constant">
      <a name="facing" val="west"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(340,560)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="6"/>
      <a name="incoming" val="6"/>
    </comp>
    <comp lib="0" loc="(80,600)" name="Splitter">
      <a name="facing" val="south"/>
      <a name="fanout" val="6"/>
      <a name="incoming" val="6"/>
    </comp>
    <comp lib="0" loc="(450,820)" name="Splitter">
      <a name="facing" val="north"/>
      <a name="fanout" val="26"/>
      <a name="incoming" val="26"/>
    </comp>
    <comp lib="12" loc="(990,640)" name="ALU 32"/>
  </circuit>
</project>
