<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project source="2.7.2" version="1.0">
This file is intended to be loaded by Logisim (http://www.cburch.com/logisim/).
<lib desc="#Wiring" name="0"/>
  <lib desc="#Gates" name="1"/>
  <lib desc="#Plexers" name="2"/>
  <lib desc="#Arithmetic" name="3"/>
  <lib desc="#Memory" name="4">
    <tool name="ROM">
      <a name="contents">addr/data: 8 8
0
</a>
    </tool>
  </lib>
  <lib desc="#I/O" name="5"/>
  <lib desc="#Base" name="6">
    <tool name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
  </lib>
  <main name="cache-entry"/>
  <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="south"/>
      <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"/>
    <appear>
      <rect fill="#a6a6a6" height="17" stroke="#000000" stroke-width="2" width="80" x="50" y="103"/>
      <rect fill="none" height="70" stroke="#000000" stroke-width="2" width="80" x="50" y="50"/>
      <text font-family="SansSerif" font-size="12" text-anchor="middle" x="58" y="64">A</text>
      <text font-family="SansSerif" font-size="12" text-anchor="middle" x="121" y="64">D</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="86" y="115">A</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="66" y="115">R</text>
      <text font-family="SansSerif" font-size="9" text-anchor="start" x="72" y="118">e</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="106" y="115">D</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="54" y="94">R</text>
      <text font-family="SansSerif" font-size="9" text-anchor="start" x="60" y="97">e</text>
      <text font-family="SansSerif" font-size="8" text-anchor="middle" x="91" y="100">ROM pins</text>
      <text font-family="SansSerif" font-size="10" text-anchor="middle" x="90" y="80">Cache</text>
      <circ-port height="8" pin="210,370" width="8" x="46" y="56"/>
      <circ-port height="10" pin="820,380" width="10" x="125" y="55"/>
      <circ-port height="10" pin="340,600" width="10" x="85" y="115"/>
      <circ-port height="10" pin="510,600" width="10" x="65" y="115"/>
      <circ-port height="8" pin="680,600" width="8" x="106" y="116"/>
      <circ-port height="8" pin="210,430" width="8" x="46" y="86"/>
      <circ-anchor facing="east" height="6" width="6" x="127" y="57"/>
    </appear>
    <wire from="(680,400)" to="(680,600)"/>
    <wire from="(510,430)" to="(510,600)"/>
    <wire from="(700,360)" to="(730,360)"/>
    <wire from="(700,380)" to="(730,380)"/>
    <wire from="(340,320)" to="(340,350)"/>
    <wire from="(260,350)" to="(340,350)"/>
    <wire from="(340,360)" to="(340,600)"/>
    <wire from="(210,370)" to="(240,370)"/>
    <wire from="(700,390)" to="(730,390)"/>
    <wire from="(700,370)" to="(730,370)"/>
    <wire from="(770,380)" to="(820,380)"/>
    <wire from="(750,320)" to="(750,360)"/>
    <wire from="(340,320)" to="(750,320)"/>
    <wire from="(260,360)" to="(340,360)"/>
    <wire from="(210,430)" to="(510,430)"/>
    <comp lib="2" loc="(770,380)" name="Multiplexer">
      <a name="selloc" val="tr"/>
      <a name="select" val="2"/>
      <a name="width" val="8"/>
      <a name="enable" val="false"/>
    </comp>
    <comp lib="0" loc="(210,430)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="read enable"/>
    </comp>
    <comp lib="0" loc="(210,370)" name="Pin">
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
      <a name="label" val="address"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(680,400)" name="Splitter">
      <a name="fanout" val="4"/>
      <a name="incoming" val="32"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="0"/>
      <a name="bit3" val="0"/>
      <a name="bit4" val="0"/>
      <a name="bit5" val="0"/>
      <a name="bit6" val="0"/>
      <a name="bit7" val="0"/>
      <a name="bit8" val="1"/>
      <a name="bit9" val="1"/>
      <a name="bit10" val="1"/>
      <a name="bit11" val="1"/>
      <a name="bit12" val="1"/>
      <a name="bit13" val="1"/>
      <a name="bit14" val="1"/>
      <a name="bit15" val="1"/>
      <a name="bit16" val="2"/>
      <a name="bit17" val="2"/>
      <a name="bit18" val="2"/>
      <a name="bit19" val="2"/>
      <a name="bit20" val="2"/>
      <a name="bit21" val="2"/>
      <a name="bit22" val="2"/>
      <a name="bit23" val="2"/>
      <a name="bit24" val="3"/>
      <a name="bit25" val="3"/>
      <a name="bit26" val="3"/>
      <a name="bit27" val="3"/>
      <a name="bit28" val="3"/>
      <a name="bit29" val="3"/>
      <a name="bit30" val="3"/>
      <a name="bit31" val="3"/>
    </comp>
    <comp lib="0" loc="(240,370)" name="Splitter">
      <a name="incoming" val="8"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="1"/>
      <a name="bit3" val="1"/>
      <a name="bit4" val="1"/>
      <a name="bit5" val="1"/>
      <a name="bit6" val="1"/>
      <a name="bit7" val="1"/>
    </comp>
    <comp lib="0" loc="(340,600)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="6"/>
      <a name="tristate" val="false"/>
      <a name="pull" val="down"/>
      <a name="label" val="ROM read address"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(510,600)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="pull" val="down"/>
      <a name="label" val="ROM read enable"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(680,600)" name="Pin">
      <a name="facing" val="north"/>
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="ROM data in"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(820,380)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="8"/>
      <a name="tristate" val="false"/>
      <a name="pull" val="down"/>
      <a name="label" val="data_out"/>
      <a name="labelloc" val="north"/>
    </comp>
  </circuit>
  <circuit name="cache-entry">
    <a name="circuit" val="cache-entry"/>
    <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="80" x="50" y="30"/>
      <polyline fill="none" points="86,70 90,66 94,70" stroke="#000000"/>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="53" y="44">D</text>
      <text font-family="SansSerif" font-size="9" text-anchor="start" x="60" y="47">in</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="105" y="44">D</text>
      <text font-family="SansSerif" font-size="9" text-anchor="start" x="112" y="47">out</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="101" y="64">miss?</text>
      <text font-family="SansSerif" font-size="10" text-anchor="start" x="53" y="64">tag</text>
      <circ-port height="8" pin="150,260" width="8" x="46" y="56"/>
      <circ-port height="8" pin="400,440" width="8" x="86" y="66"/>
      <circ-port height="10" pin="670,190" width="10" x="125" y="35"/>
      <circ-port height="10" pin="670,290" width="10" x="125" y="55"/>
      <circ-port height="8" pin="150,190" width="8" x="46" y="36"/>
      <circ-anchor facing="east" height="6" width="6" x="127" y="47"/>
    </appear>
    <comp lib="0" loc="(670,290)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="miss"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(670,190)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="32"/>
      <a name="label" val="data_out"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(150,190)" name="Pin">
      <a name="width" val="32"/>
      <a name="tristate" val="false"/>
      <a name="label" val="data_in"/>
    </comp>
    <comp lib="0" loc="(400,440)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="clock"/>
    </comp>
    <comp lib="0" loc="(150,260)" name="Pin">
      <a name="width" val="4"/>
      <a name="tristate" val="false"/>
      <a name="label" val="tag"/>
    </comp>
  </circuit>
</project>
