<?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="fanout" val="12"/>
      <a name="incoming" val="12"/>
      <a name="appear" val="right"/>
    </tool>
    <tool name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
    </tool>
    <tool name="Clock">
      <a name="facing" val="north"/>
      <a name="label" val="Clk"/>
    </tool>
    <tool name="Constant">
      <a name="width" val="12"/>
      <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="#I/O" name="5"/>
  <lib desc="#Base" name="6">
    <tool name="Text Tool">
      <a name="text" val=""/>
      <a name="font" val="SansSerif plain 12"/>
      <a name="halign" val="center"/>
      <a name="valign" val="base"/>
    </tool>
  </lib>
  <main name="main"/>
  <options>
    <a name="gateUndefined" val="ignore"/>
    <a name="simlimit" val="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="main">
    <a name="circuit" val="main"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(70,730)" to="(540,730)"/>
    <wire from="(480,380)" to="(480,420)"/>
    <wire from="(430,330)" to="(450,330)"/>
    <wire from="(330,370)" to="(470,370)"/>
    <wire from="(650,190)" to="(650,230)"/>
    <wire from="(660,380)" to="(660,420)"/>
    <wire from="(430,140)" to="(450,140)"/>
    <wire from="(890,470)" to="(910,470)"/>
    <wire from="(630,370)" to="(630,390)"/>
    <wire from="(370,340)" to="(390,340)"/>
    <wire from="(210,370)" to="(290,370)"/>
    <wire from="(610,660)" to="(630,660)"/>
    <wire from="(310,610)" to="(390,610)"/>
    <wire from="(830,480)" to="(850,480)"/>
    <wire from="(350,590)" to="(390,590)"/>
    <wire from="(450,330)" to="(450,350)"/>
    <wire from="(450,620)" to="(470,620)"/>
    <wire from="(660,690)" to="(790,690)"/>
    <wire from="(180,500)" to="(180,620)"/>
    <wire from="(480,230)" to="(540,230)"/>
    <wire from="(300,630)" to="(300,640)"/>
    <wire from="(360,320)" to="(390,320)"/>
    <wire from="(630,180)" to="(640,180)"/>
    <wire from="(70,780)" to="(580,780)"/>
    <wire from="(350,90)" to="(350,130)"/>
    <wire from="(580,230)" to="(650,230)"/>
    <wire from="(660,650)" to="(660,690)"/>
    <wire from="(710,360)" to="(830,360)"/>
    <wire from="(180,620)" to="(280,620)"/>
    <wire from="(360,280)" to="(360,320)"/>
    <wire from="(450,600)" to="(450,620)"/>
    <wire from="(490,200)" to="(510,200)"/>
    <wire from="(610,390)" to="(630,390)"/>
    <wire from="(540,690)" to="(540,730)"/>
    <wire from="(710,90)" to="(710,170)"/>
    <wire from="(350,540)" to="(350,590)"/>
    <wire from="(650,650)" to="(650,690)"/>
    <wire from="(490,660)" to="(510,660)"/>
    <wire from="(120,330)" to="(210,330)"/>
    <wire from="(580,690)" to="(580,780)"/>
    <wire from="(540,420)" to="(540,690)"/>
    <wire from="(500,360)" to="(640,360)"/>
    <wire from="(670,170)" to="(710,170)"/>
    <wire from="(480,650)" to="(480,690)"/>
    <wire from="(610,200)" to="(630,200)"/>
    <wire from="(350,90)" to="(710,90)"/>
    <wire from="(210,180)" to="(470,180)"/>
    <wire from="(490,390)" to="(510,390)"/>
    <wire from="(670,360)" to="(710,360)"/>
    <wire from="(710,360)" to="(710,500)"/>
    <wire from="(790,230)" to="(790,420)"/>
    <wire from="(540,230)" to="(540,420)"/>
    <wire from="(250,600)" to="(280,600)"/>
    <wire from="(630,180)" to="(630,200)"/>
    <wire from="(660,420)" to="(790,420)"/>
    <wire from="(580,690)" to="(650,690)"/>
    <wire from="(210,180)" to="(210,220)"/>
    <wire from="(480,190)" to="(480,230)"/>
    <wire from="(90,470)" to="(90,660)"/>
    <wire from="(710,540)" to="(710,630)"/>
    <wire from="(660,230)" to="(790,230)"/>
    <wire from="(90,660)" to="(290,660)"/>
    <wire from="(290,630)" to="(290,660)"/>
    <wire from="(450,350)" to="(470,350)"/>
    <wire from="(480,690)" to="(540,690)"/>
    <wire from="(580,420)" to="(580,690)"/>
    <wire from="(430,600)" to="(450,600)"/>
    <wire from="(490,380)" to="(490,390)"/>
    <wire from="(650,380)" to="(650,420)"/>
    <wire from="(750,460)" to="(850,460)"/>
    <wire from="(580,420)" to="(650,420)"/>
    <wire from="(480,420)" to="(540,420)"/>
    <wire from="(790,50)" to="(790,230)"/>
    <wire from="(360,150)" to="(390,150)"/>
    <wire from="(360,280)" to="(710,280)"/>
    <wire from="(500,630)" to="(640,630)"/>
    <wire from="(90,470)" to="(130,470)"/>
    <wire from="(660,190)" to="(660,230)"/>
    <wire from="(150,460)" to="(750,460)"/>
    <wire from="(210,330)" to="(210,370)"/>
    <wire from="(710,630)" to="(830,630)"/>
    <wire from="(350,540)" to="(710,540)"/>
    <wire from="(90,50)" to="(790,50)"/>
    <wire from="(490,650)" to="(490,660)"/>
    <wire from="(300,640)" to="(320,640)"/>
    <wire from="(490,190)" to="(490,200)"/>
    <wire from="(710,280)" to="(710,360)"/>
    <wire from="(710,170)" to="(750,170)"/>
    <wire from="(350,130)" to="(390,130)"/>
    <wire from="(500,170)" to="(640,170)"/>
    <wire from="(630,370)" to="(640,370)"/>
    <wire from="(120,220)" to="(210,220)"/>
    <wire from="(630,640)" to="(630,660)"/>
    <wire from="(670,630)" to="(710,630)"/>
    <wire from="(450,160)" to="(470,160)"/>
    <wire from="(450,140)" to="(450,160)"/>
    <wire from="(180,500)" to="(710,500)"/>
    <wire from="(750,170)" to="(830,170)"/>
    <wire from="(410,560)" to="(410,580)"/>
    <wire from="(630,640)" to="(640,640)"/>
    <wire from="(750,170)" to="(750,460)"/>
    <wire from="(440,640)" to="(470,640)"/>
    <wire from="(790,420)" to="(790,690)"/>
    <wire from="(580,230)" to="(580,420)"/>
    <comp lib="0" loc="(370,340)" name="Constant">
      <a name="width" val="5"/>
    </comp>
    <comp lib="0" loc="(510,390)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(410,560)" name="Constant">
      <a name="facing" val="west"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(830,630)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="24"/>
      <a name="tristate" val="false"/>
      <a name="label" val="result"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(70,780)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Clock"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="4" loc="(670,170)" name="Register">
      <a name="width" val="12"/>
      <a name="label" val="shrinking"/>
    </comp>
    <comp lib="3" loc="(430,330)" name="Shifter">
      <a name="width" val="24"/>
    </comp>
    <comp lib="0" loc="(440,640)" name="Constant">
      <a name="width" val="24"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(120,220)" name="Pin">
      <a name="width" val="12"/>
      <a name="tristate" val="false"/>
      <a name="label" val="p"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="2" loc="(500,360)" name="Multiplexer">
      <a name="width" val="24"/>
    </comp>
    <comp lib="0" loc="(320,640)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(610,200)" name="Constant"/>
    <comp lib="3" loc="(430,140)" name="Shifter">
      <a name="width" val="12"/>
      <a name="shift" val="lr"/>
    </comp>
    <comp lib="0" loc="(120,330)" name="Pin">
      <a name="width" val="12"/>
      <a name="tristate" val="false"/>
      <a name="label" val="q"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(910,470)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Done"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="2" loc="(310,610)" name="Multiplexer">
      <a name="width" val="24"/>
    </comp>
    <comp lib="0" loc="(330,370)" name="Bit Extender">
      <a name="in_width" val="12"/>
      <a name="out_width" val="24"/>
    </comp>
    <comp lib="0" loc="(830,360)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="24"/>
      <a name="tristate" val="false"/>
      <a name="label" val="growing"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(610,390)" name="Constant"/>
    <comp lib="0" loc="(510,200)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(610,660)" name="Constant"/>
    <comp lib="3" loc="(890,470)" name="Comparator">
      <a name="width" val="12"/>
    </comp>
    <comp lib="0" loc="(510,660)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="3" loc="(430,600)" name="Adder">
      <a name="width" val="24"/>
    </comp>
    <comp lib="0" loc="(150,460)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="12"/>
      <a name="incoming" val="12"/>
    </comp>
    <comp lib="0" loc="(360,150)" name="Constant">
      <a name="width" val="4"/>
    </comp>
    <comp lib="2" loc="(500,170)" name="Multiplexer">
      <a name="width" val="12"/>
    </comp>
    <comp lib="0" loc="(830,480)" name="Constant">
      <a name="width" val="12"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(70,730)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="load"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(90,50)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="4" loc="(670,630)" name="Register">
      <a name="width" val="24"/>
      <a name="label" val="result"/>
    </comp>
    <comp lib="2" loc="(500,630)" name="Multiplexer">
      <a name="width" val="24"/>
    </comp>
    <comp lib="0" loc="(830,170)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="width" val="12"/>
      <a name="tristate" val="false"/>
      <a name="label" val="shriking"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="4" loc="(670,360)" name="Register">
      <a name="width" val="24"/>
      <a name="label" val="growing"/>
    </comp>
    <comp lib="0" loc="(250,600)" name="Constant">
      <a name="width" val="24"/>
      <a name="value" val="0x0"/>
    </comp>
  </circuit>
</project>
