<?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="west"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="4"/>
      <a name="appear" val="right"/>
    </tool>
    <tool name="Pin">
      <a name="facing" val="north"/>
    </tool>
    <tool name="Pull Resistor">
      <a name="facing" val="north"/>
    </tool>
  </lib>
  <lib desc="#Gates" name="1"/>
  <lib desc="#Plexers" name="2"/>
  <lib desc="#Arithmetic" name="3"/>
  <lib desc="#Memory" name="4">
    <tool name="Register">
      <a name="width" val="3"/>
    </tool>
    <tool name="Random">
      <a name="width" val="1"/>
    </tool>
    <tool name="ROM">
      <a name="addrWidth" val="3"/>
      <a name="dataWidth" val="1"/>
      <a name="contents">addr/data: 3 1
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="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="facing" val="north"/>
      <a name="tristate" val="false"/>
    </tool>
    <tool lib="0" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="labelloc" val="north"/>
    </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,330)" to="(220,330)"/>
    <wire from="(400,270)" to="(400,340)"/>
    <wire from="(70,330)" to="(70,440)"/>
    <wire from="(230,140)" to="(230,180)"/>
    <wire from="(230,180)" to="(400,180)"/>
    <wire from="(280,340)" to="(400,340)"/>
    <wire from="(110,380)" to="(130,380)"/>
    <wire from="(160,390)" to="(180,390)"/>
    <wire from="(270,280)" to="(270,320)"/>
    <wire from="(90,130)" to="(90,350)"/>
    <wire from="(400,270)" to="(420,270)"/>
    <wire from="(160,260)" to="(160,300)"/>
    <wire from="(50,30)" to="(70,30)"/>
    <wire from="(140,410)" to="(140,420)"/>
    <wire from="(110,340)" to="(110,380)"/>
    <wire from="(110,120)" to="(110,340)"/>
    <wire from="(50,130)" to="(90,130)"/>
    <wire from="(290,260)" to="(290,280)"/>
    <wire from="(90,130)" to="(260,130)"/>
    <wire from="(90,350)" to="(220,350)"/>
    <wire from="(110,120)" to="(260,120)"/>
    <wire from="(70,440)" to="(180,440)"/>
    <wire from="(160,50)" to="(160,110)"/>
    <wire from="(110,80)" to="(110,120)"/>
    <wire from="(50,80)" to="(110,80)"/>
    <wire from="(160,110)" to="(260,110)"/>
    <wire from="(230,300)" to="(230,320)"/>
    <wire from="(70,90)" to="(70,330)"/>
    <wire from="(260,300)" to="(350,300)"/>
    <wire from="(270,280)" to="(290,280)"/>
    <wire from="(400,180)" to="(400,250)"/>
    <wire from="(110,400)" to="(130,400)"/>
    <wire from="(110,340)" to="(220,340)"/>
    <wire from="(210,50)" to="(210,100)"/>
    <wire from="(260,300)" to="(260,320)"/>
    <wire from="(400,180)" to="(480,180)"/>
    <wire from="(70,90)" to="(260,90)"/>
    <wire from="(350,260)" to="(350,300)"/>
    <wire from="(240,260)" to="(240,320)"/>
    <wire from="(400,250)" to="(420,250)"/>
    <wire from="(180,390)" to="(180,440)"/>
    <wire from="(400,340)" to="(480,340)"/>
    <wire from="(70,30)" to="(70,90)"/>
    <wire from="(210,100)" to="(260,100)"/>
    <wire from="(160,300)" to="(230,300)"/>
    <wire from="(230,140)" to="(260,140)"/>
    <wire from="(460,260)" to="(480,260)"/>
    <comp lib="0" loc="(210,50)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="Next"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(140,420)" name="Constant">
      <a name="facing" val="west"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(160,260)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="Next"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(350,260)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="4"/>
      <a name="label" val="2 N + In - 5"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(50,130)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(480,180)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="Output FSM"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(50,30)" name="Pin">
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Input"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="1" loc="(460,260)" name="XOR Gate">
      <a name="size" val="30"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp loc="(260,90)" name="HW5 solution">
      <a name="facing" val="south"/>
    </comp>
    <comp lib="0" loc="(480,340)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="Output math"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(110,400)" name="Constant"/>
    <comp lib="0" loc="(240,260)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="N"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(480,260)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="OOPS"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(290,260)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="4"/>
      <a name="label" val="2 N + In"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp loc="(280,340)" name="HW5 data path"/>
    <comp lib="6" loc="(332,402)" name="Text">
      <a name="text" val="Look at HW5 data path"/>
      <a name="font" val="SansSerif plain 20"/>
    </comp>
    <comp lib="4" loc="(160,390)" name="Random">
      <a name="width" val="1"/>
      <a name="trigger" val="falling"/>
    </comp>
    <comp lib="0" loc="(160,50)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="State"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="6" loc="(387,65)" name="Text">
      <a name="text" val="Look at HW5solution for FSM"/>
      <a name="font" val="SansSerif plain 20"/>
    </comp>
    <comp lib="0" loc="(50,80)" name="Clock">
      <a name="label" val="Clock"/>
      <a name="labelloc" val="south"/>
    </comp>
  </circuit>
  <circuit name="HW5 solution">
    <a name="circuit" val="HW5 solution"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(70,200)" to="(90,200)"/>
    <wire from="(20,50)" to="(20,160)"/>
    <wire from="(440,160)" to="(440,230)"/>
    <wire from="(330,160)" to="(330,180)"/>
    <wire from="(20,50)" to="(150,50)"/>
    <wire from="(370,170)" to="(380,170)"/>
    <wire from="(330,230)" to="(330,250)"/>
    <wire from="(70,200)" to="(70,290)"/>
    <wire from="(290,50)" to="(490,50)"/>
    <wire from="(330,230)" to="(440,230)"/>
    <wire from="(70,170)" to="(90,170)"/>
    <wire from="(410,160)" to="(440,160)"/>
    <wire from="(20,160)" to="(20,230)"/>
    <wire from="(20,230)" to="(330,230)"/>
    <wire from="(330,160)" to="(380,160)"/>
    <wire from="(390,180)" to="(390,290)"/>
    <wire from="(290,160)" to="(330,160)"/>
    <wire from="(70,180)" to="(90,180)"/>
    <wire from="(400,260)" to="(440,260)"/>
    <wire from="(400,180)" to="(400,260)"/>
    <wire from="(110,160)" to="(150,160)"/>
    <wire from="(200,90)" to="(200,100)"/>
    <wire from="(200,200)" to="(200,210)"/>
    <wire from="(70,190)" to="(90,190)"/>
    <wire from="(20,160)" to="(50,160)"/>
    <wire from="(490,50)" to="(490,290)"/>
    <wire from="(440,260)" to="(440,290)"/>
    <comp lib="4" loc="(290,160)" name="ROM">
      <a name="addrWidth" val="4"/>
      <a name="dataWidth" val="3"/>
      <a name="contents">addr/data: 4 3
0 1 2 3 4 0 1 2
3 4
</a>
    </comp>
    <comp lib="0" loc="(330,180)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="Next State"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(370,170)" name="Constant"/>
    <comp lib="0" loc="(70,290)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Input"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(390,290)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Clock"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="4" loc="(410,160)" name="Register">
      <a name="width" val="3"/>
    </comp>
    <comp lib="0" loc="(50,160)" name="Splitter">
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
      <a name="appear" val="right"/>
      <a name="bit0" val="2"/>
      <a name="bit2" val="0"/>
    </comp>
    <comp lib="4" loc="(290,50)" name="ROM">
      <a name="addrWidth" val="3"/>
      <a name="dataWidth" val="1"/>
      <a name="contents">addr/data: 3 1
1
</a>
    </comp>
    <comp lib="0" loc="(200,100)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(200,210)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(330,250)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="State"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(490,290)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Output"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(110,160)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="4"/>
      <a name="bit0" val="3"/>
      <a name="bit1" val="2"/>
      <a name="bit2" val="1"/>
      <a name="bit3" val="0"/>
    </comp>
    <comp lib="0" loc="(440,290)" name="Pin">
      <a name="facing" val="north"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
      <a name="labelloc" val="south"/>
    </comp>
  </circuit>
  <circuit name="HW5 data path">
    <a name="circuit" val="HW5 data path"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(160,180)" to="(180,180)"/>
    <wire from="(440,240)" to="(460,240)"/>
    <wire from="(460,210)" to="(460,240)"/>
    <wire from="(210,170)" to="(230,170)"/>
    <wire from="(200,190)" to="(200,230)"/>
    <wire from="(410,130)" to="(410,180)"/>
    <wire from="(380,260)" to="(510,260)"/>
    <wire from="(280,170)" to="(300,170)"/>
    <wire from="(600,130)" to="(600,200)"/>
    <wire from="(50,30)" to="(70,30)"/>
    <wire from="(50,130)" to="(90,130)"/>
    <wire from="(510,210)" to="(540,210)"/>
    <wire from="(360,180)" to="(380,180)"/>
    <wire from="(320,160)" to="(340,160)"/>
    <wire from="(50,80)" to="(110,80)"/>
    <wire from="(460,150)" to="(460,170)"/>
    <wire from="(130,170)" to="(160,170)"/>
    <wire from="(90,230)" to="(200,230)"/>
    <wire from="(410,200)" to="(440,200)"/>
    <wire from="(160,170)" to="(180,170)"/>
    <wire from="(600,200)" to="(650,200)"/>
    <wire from="(520,40)" to="(540,40)"/>
    <wire from="(320,170)" to="(340,170)"/>
    <wire from="(510,190)" to="(540,190)"/>
    <wire from="(510,210)" to="(510,260)"/>
    <wire from="(190,190)" to="(190,210)"/>
    <wire from="(130,70)" to="(130,170)"/>
    <wire from="(520,60)" to="(540,60)"/>
    <wire from="(570,200)" to="(600,200)"/>
    <wire from="(230,20)" to="(260,20)"/>
    <wire from="(320,140)" to="(340,140)"/>
    <wire from="(110,210)" to="(190,210)"/>
    <wire from="(320,170)" to="(320,260)"/>
    <wire from="(380,180)" to="(380,260)"/>
    <wire from="(650,70)" to="(650,200)"/>
    <wire from="(460,240)" to="(550,240)"/>
    <wire from="(480,190)" to="(510,190)"/>
    <wire from="(510,130)" to="(510,190)"/>
    <wire from="(520,50)" to="(540,50)"/>
    <wire from="(130,70)" to="(500,70)"/>
    <wire from="(230,40)" to="(260,40)"/>
    <wire from="(280,130)" to="(280,170)"/>
    <wire from="(380,180)" to="(410,180)"/>
    <wire from="(560,70)" to="(650,70)"/>
    <wire from="(550,220)" to="(550,240)"/>
    <wire from="(320,150)" to="(340,150)"/>
    <wire from="(70,260)" to="(320,260)"/>
    <wire from="(300,30)" to="(350,30)"/>
    <wire from="(70,30)" to="(70,260)"/>
    <wire from="(230,170)" to="(280,170)"/>
    <wire from="(410,180)" to="(440,180)"/>
    <wire from="(160,130)" to="(160,170)"/>
    <wire from="(230,40)" to="(230,170)"/>
    <wire from="(560,220)" to="(560,230)"/>
    <wire from="(110,80)" to="(110,210)"/>
    <wire from="(90,130)" to="(90,230)"/>
    <comp lib="0" loc="(300,170)" name="Splitter">
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
      <a name="bit0" val="2"/>
      <a name="bit2" val="0"/>
    </comp>
    <comp lib="3" loc="(480,190)" name="Subtractor">
      <a name="width" val="4"/>
    </comp>
    <comp lib="0" loc="(280,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="N"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(410,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="4"/>
      <a name="label" val="2*N + In"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="2" loc="(570,200)" name="Multiplexer">
      <a name="width" val="4"/>
    </comp>
    <comp lib="0" loc="(410,200)" name="Constant">
      <a name="width" val="4"/>
      <a name="value" val="0x5"/>
    </comp>
    <comp lib="0" loc="(460,150)" name="Constant">
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(600,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="4"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(440,240)" name="Pin">
      <a name="output" val="true"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(560,70)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="4"/>
      <a name="appear" val="right"/>
      <a name="bit0" val="3"/>
      <a name="bit1" val="2"/>
      <a name="bit2" val="1"/>
      <a name="bit3" val="0"/>
    </comp>
    <comp lib="0" loc="(360,180)" name="Splitter">
      <a name="facing" val="west"/>
      <a name="fanout" val="4"/>
      <a name="incoming" val="4"/>
      <a name="appear" val="right"/>
      <a name="bit0" val="3"/>
      <a name="bit1" val="2"/>
      <a name="bit2" val="1"/>
      <a name="bit3" val="0"/>
    </comp>
    <comp lib="0" loc="(560,230)" name="Constant">
      <a name="facing" val="west"/>
    </comp>
    <comp lib="0" loc="(50,80)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Clock"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(500,70)" name="Splitter">
      <a name="fanout" val="3"/>
      <a name="incoming" val="3"/>
      <a name="bit0" val="2"/>
      <a name="bit2" val="0"/>
    </comp>
    <comp lib="0" loc="(50,130)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Reset"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(350,30)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="label" val="Output"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(50,30)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="Input"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(510,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="4"/>
      <a name="label" val="2*N + In - 5"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(160,180)" name="Constant"/>
    <comp lib="3" loc="(300,30)" name="Comparator">
      <a name="width" val="3"/>
      <a name="mode" val="unsigned"/>
    </comp>
    <comp lib="4" loc="(210,170)" name="Register">
      <a name="width" val="3"/>
    </comp>
    <comp lib="0" loc="(230,20)" name="Constant">
      <a name="width" val="3"/>
      <a name="value" val="0x0"/>
    </comp>
    <comp lib="0" loc="(160,130)" name="Pin">
      <a name="facing" val="south"/>
      <a name="output" val="true"/>
      <a name="width" val="3"/>
      <a name="label" val="Next"/>
      <a name="labelloc" val="north"/>
    </comp>
  </circuit>
</project>
