<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.1" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0"/>
  <lib desc="#Gates" name="1"/>
  <lib desc="#Plexers" name="2"/>
  <lib desc="#Arithmetic" name="3"/>
  <lib desc="#Memory" name="4">
    <tool name="ROM">
      <a name="contents">addr/data: 8 8
0
</a>
    </tool>
  </lib>
  <lib desc="#I/O" name="5"/>
  <lib desc="#Base" name="6">
    <tool name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
  </lib>
  <lib desc="jar#cs3410.jar#edu.cornell.cs3410.Components" name="7">
    <tool name="MIPSProgramROM">
      <a name="contents" val=""/>
    </tool>
  </lib>
  <main name="MIPSRAMexample"/>
  <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="MIPSRAMexample">
    <a name="circuit" val="MIPSRAMexample"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(310,190)" to="(310,230)"/>
    <wire from="(230,150)" to="(260,150)"/>
    <wire from="(320,230)" to="(320,240)"/>
    <wire from="(350,190)" to="(350,220)"/>
    <wire from="(390,220)" to="(390,230)"/>
    <wire from="(180,260)" to="(290,260)"/>
    <wire from="(400,150)" to="(450,150)"/>
    <wire from="(230,170)" to="(230,200)"/>
    <wire from="(290,190)" to="(290,260)"/>
    <wire from="(370,190)" to="(370,200)"/>
    <wire from="(210,120)" to="(230,120)"/>
    <wire from="(370,200)" to="(410,200)"/>
    <wire from="(180,260)" to="(180,270)"/>
    <wire from="(230,170)" to="(260,170)"/>
    <wire from="(310,230)" to="(320,230)"/>
    <wire from="(230,120)" to="(230,150)"/>
    <wire from="(330,190)" to="(330,200)"/>
    <wire from="(350,220)" to="(390,220)"/>
    <wire from="(210,200)" to="(230,200)"/>
    <comp lib="7" loc="(400,150)" name="MIPS RAM"/>
    <comp lib="0" loc="(210,120)" name="Pin">
      <a name="width" val="20"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Address selector"/>
    </comp>
    <comp lib="0" loc="(450,150)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="32"/>
      <a name="label" val="Output value"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(410,200)" name="Pin">
      <a name="facing" val="west"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Asyncronous reset"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="6" loc="(326,73)" name="Text">
      <a name="text" val="MIPS RAM COMPONENT"/>
    </comp>
    <comp lib="0" loc="(390,230)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="read value at selected address"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(320,240)" name="Pin">
      <a name="facing" val="north"/>
      <a name="width" val="4"/>
      <a name="tristate" val="false"/>
      <a name="label" val="byte mask (access enabled if set to 1)"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(330,200)" name="Clock">
      <a name="facing" val="north"/>
    </comp>
    <comp lib="0" loc="(180,270)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Write input at selected address"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(210,200)" name="Pin">
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Input value"/>
    </comp>
    <comp lib="6" loc="(376,86)" name="Text"/>
  </circuit>
  <circuit name="REGFILEexample">
    <a name="circuit" val="REGFILEexample"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(360,220)" to="(360,330)"/>
    <wire from="(390,180)" to="(420,180)"/>
    <wire from="(220,120)" to="(230,120)"/>
    <wire from="(270,220)" to="(270,230)"/>
    <wire from="(300,220)" to="(300,270)"/>
    <wire from="(300,300)" to="(340,300)"/>
    <wire from="(200,210)" to="(230,210)"/>
    <wire from="(340,220)" to="(340,300)"/>
    <wire from="(210,80)" to="(220,80)"/>
    <wire from="(220,80)" to="(220,120)"/>
    <wire from="(290,270)" to="(300,270)"/>
    <wire from="(300,330)" to="(360,330)"/>
    <wire from="(390,80)" to="(420,80)"/>
    <comp lib="0" loc="(290,270)" name="Pin">
      <a name="width" val="5"/>
      <a name="tristate" val="false"/>
      <a name="label" val="(at selected register)"/>
    </comp>
    <comp lib="0" loc="(420,80)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="32"/>
      <a name="label" val="Register A content"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(270,230)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Write enable"/>
    </comp>
    <comp lib="7" loc="(390,130)" name="RegisterFile"/>
    <comp lib="0" loc="(300,300)" name="Pin">
      <a name="width" val="5"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Register A selector"/>
    </comp>
    <comp lib="0" loc="(420,180)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="32"/>
      <a name="label" val="Register B content"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(300,330)" name="Pin">
      <a name="width" val="5"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Register B selector"/>
    </comp>
    <comp lib="0" loc="(210,80)" name="Pin">
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Input value"/>
    </comp>
    <comp lib="6" loc="(308,20)" name="Text">
      <a name="text" val="Register File"/>
    </comp>
    <comp lib="0" loc="(200,210)" name="Clock"/>
  </circuit>
  <circuit name="ALUexample">
    <a name="circuit" val="ALUexample"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(280,160)" to="(280,210)"/>
    <wire from="(190,160)" to="(240,160)"/>
    <wire from="(280,210)" to="(300,210)"/>
    <wire from="(300,130)" to="(320,130)"/>
    <wire from="(190,90)" to="(190,100)"/>
    <wire from="(190,100)" to="(240,100)"/>
    <wire from="(190,160)" to="(190,170)"/>
    <wire from="(260,170)" to="(260,230)"/>
    <comp lib="6" loc="(274,27)" name="Text"/>
    <comp lib="0" loc="(300,210)" name="Pin">
      <a name="facing" val="west"/>
      <a name="width" val="5"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Shift amount"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(320,130)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="32"/>
      <a name="label" val="Output C"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(190,170)" name="Pin">
      <a name="facing" val="north"/>
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="B"/>
    </comp>
    <comp lib="7" loc="(270,130)" name="Mips ALU"/>
    <comp lib="0" loc="(190,90)" name="Pin">
      <a name="facing" val="south"/>
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="A"/>
    </comp>
    <comp lib="0" loc="(260,230)" name="Pin">
      <a name="facing" val="north"/>
      <a name="width" val="4"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Operation selector"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="6" loc="(269,84)" name="Text">
      <a name="text" val="ALU"/>
    </comp>
  </circuit>
</project>
