<?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"/>
      <a name="incoming" val="4"/>
      <a name="bit1" val="0"/>
      <a name="bit2" val="1"/>
      <a name="bit3" val="1"/>
    </tool>
  </lib>
  <lib desc="#Gates" name="1"/>
  <lib desc="#Plexers" name="2"/>
  <lib desc="#Arithmetic" name="3">
    <tool name="Adder">
      <a name="width" val="1"/>
    </tool>
  </lib>
  <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="Black Box Test"/>
  <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="Black Box Test">
    <a name="circuit" val="Black Box Test"/>
    <a name="clabel" val=""/>
    <a name="clabelup" val="east"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <wire from="(410,360)" to="(410,430)"/>
    <wire from="(440,360)" to="(440,430)"/>
    <wire from="(400,180)" to="(400,250)"/>
    <wire from="(420,180)" to="(420,250)"/>
    <wire from="(470,360)" to="(470,430)"/>
    <wire from="(520,180)" to="(520,250)"/>
    <wire from="(500,360)" to="(500,430)"/>
    <wire from="(500,180)" to="(500,250)"/>
    <wire from="(380,180)" to="(380,250)"/>
    <wire from="(360,180)" to="(360,250)"/>
    <wire from="(560,180)" to="(560,250)"/>
    <wire from="(540,180)" to="(540,250)"/>
    <wire from="(270,290)" to="(340,290)"/>
    <wire from="(270,340)" to="(340,340)"/>
    <wire from="(270,270)" to="(340,270)"/>
    <comp lib="0" loc="(520,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a2"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(400,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b1"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="6" loc="(101,250)" name="Text">
      <a name="text" val="01 = inc "/>
      <a name="halign" val="left"/>
    </comp>
    <comp lib="0" loc="(420,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b0"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(500,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s0"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="6" loc="(100,270)" name="Text">
      <a name="text" val="10 = sub "/>
      <a name="halign" val="left"/>
    </comp>
    <comp lib="6" loc="(58,219)" name="Text">
      <a name="halign" val="left"/>
    </comp>
    <comp lib="6" loc="(100,290)" name="Text">
      <a name="text" val="11 = dec "/>
      <a name="halign" val="left"/>
    </comp>
    <comp lib="0" loc="(440,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s2"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(500,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a3"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(360,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b3"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(270,290)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="d1"/>
    </comp>
    <comp lib="6" loc="(138,209)" name="Text">
      <a name="text" val="ALU Control d1 d0"/>
    </comp>
    <comp lib="0" loc="(540,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a1"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(470,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s1"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="6" loc="(443,86)" name="Text">
      <a name="text" val="Black Box Testing of 4-bit ALU"/>
      <a name="font" val="SansSerif bold 18"/>
    </comp>
    <comp lib="0" loc="(270,270)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="d0"/>
    </comp>
    <comp lib="0" loc="(410,430)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s3"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp loc="(460,300)" name="ALU"/>
    <comp lib="0" loc="(560,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a0"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(270,340)" name="Pin">
      <a name="output" val="true"/>
      <a name="label" val="c_out"/>
    </comp>
    <comp lib="0" loc="(380,180)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b2"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="6" loc="(101,231)" name="Text">
      <a name="text" val="00 = add "/>
      <a name="halign" val="left"/>
    </comp>
  </circuit>
  <circuit name="ALU">
    <a name="circuit" val="ALU"/>
    <a name="clabel" val="4-bit ALU"/>
    <a name="clabelup" val="north"/>
    <a name="clabelfont" val="SansSerif bold 14"/>
    <appear>
      <rect fill="none" height="110" stroke="#000000" stroke-width="2" width="242" x="50" y="50"/>
      <circ-port height="8" pin="110,120" width="8" x="46" y="66"/>
      <circ-port height="8" pin="110,180" width="8" x="46" y="86"/>
      <circ-port height="10" pin="200,620" width="10" x="45" y="135"/>
      <circ-port height="8" pin="450,60" width="8" x="66" y="46"/>
      <circ-port height="8" pin="480,60" width="8" x="86" y="46"/>
      <circ-port height="8" pin="510,60" width="8" x="106" y="46"/>
      <circ-port height="8" pin="540,60" width="8" x="126" y="46"/>
      <circ-port height="8" pin="720,60" width="8" x="206" y="46"/>
      <circ-port height="8" pin="750,60" width="8" x="226" y="46"/>
      <circ-port height="8" pin="780,60" width="8" x="246" y="46"/>
      <circ-port height="8" pin="810,60" width="8" x="266" y="46"/>
      <circ-port height="10" pin="290,680" width="10" x="115" y="155"/>
      <circ-port height="10" pin="400,680" width="10" x="145" y="155"/>
      <circ-port height="10" pin="510,680" width="10" x="175" y="155"/>
      <circ-port height="10" pin="620,680" width="10" x="205" y="155"/>
      <circ-anchor facing="east" height="6" width="6" x="167" y="97"/>
    </appear>
    <wire from="(810,60)" to="(810,520)"/>
    <wire from="(280,490)" to="(280,560)"/>
    <wire from="(610,590)" to="(610,600)"/>
    <wire from="(600,420)" to="(600,560)"/>
    <wire from="(510,550)" to="(560,550)"/>
    <wire from="(560,600)" to="(610,600)"/>
    <wire from="(270,420)" to="(270,560)"/>
    <wire from="(400,550)" to="(450,550)"/>
    <wire from="(380,420)" to="(380,560)"/>
    <wire from="(780,60)" to="(780,510)"/>
    <wire from="(450,600)" to="(500,600)"/>
    <wire from="(290,550)" to="(340,550)"/>
    <wire from="(340,600)" to="(390,600)"/>
    <wire from="(490,420)" to="(490,560)"/>
    <wire from="(180,540)" to="(620,540)"/>
    <wire from="(280,490)" to="(720,490)"/>
    <wire from="(390,590)" to="(390,600)"/>
    <wire from="(400,550)" to="(400,560)"/>
    <wire from="(510,550)" to="(510,560)"/>
    <wire from="(500,590)" to="(500,600)"/>
    <wire from="(290,550)" to="(290,560)"/>
    <wire from="(450,60)" to="(450,80)"/>
    <wire from="(510,590)" to="(510,680)"/>
    <wire from="(480,60)" to="(480,80)"/>
    <wire from="(620,590)" to="(620,680)"/>
    <wire from="(510,60)" to="(510,80)"/>
    <wire from="(110,180)" to="(150,180)"/>
    <wire from="(110,120)" to="(150,120)"/>
    <wire from="(280,590)" to="(280,620)"/>
    <wire from="(540,60)" to="(540,80)"/>
    <wire from="(400,590)" to="(400,680)"/>
    <wire from="(620,540)" to="(620,560)"/>
    <wire from="(290,590)" to="(290,680)"/>
    <wire from="(390,500)" to="(750,500)"/>
    <wire from="(610,520)" to="(610,560)"/>
    <wire from="(720,60)" to="(720,490)"/>
    <wire from="(500,510)" to="(780,510)"/>
    <wire from="(610,520)" to="(810,520)"/>
    <wire from="(200,620)" to="(280,620)"/>
    <wire from="(750,60)" to="(750,500)"/>
    <wire from="(450,550)" to="(450,600)"/>
    <wire from="(500,510)" to="(500,560)"/>
    <wire from="(340,550)" to="(340,600)"/>
    <wire from="(390,500)" to="(390,560)"/>
    <wire from="(560,550)" to="(560,600)"/>
    <comp lib="0" loc="(480,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b2"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="6" loc="(619,429)" name="Text">
      <a name="text" val="x0"/>
    </comp>
    <comp lib="0" loc="(110,180)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="d1"/>
    </comp>
    <comp lib="6" loc="(193,558)" name="Text">
      <a name="text" val="c_in"/>
    </comp>
    <comp lib="0" loc="(450,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b3"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(720,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a3"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(810,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a0"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(110,120)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="d0"/>
    </comp>
    <comp lib="0" loc="(620,680)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s0"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp loc="(400,590)" name="Full Adder">
      <a name="facing" val="south"/>
    </comp>
    <comp lib="0" loc="(290,680)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s3"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(200,620)" name="Pin">
      <a name="output" val="true"/>
      <a name="label" val="c_out"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp loc="(510,590)" name="Full Adder">
      <a name="facing" val="south"/>
    </comp>
    <comp loc="(290,590)" name="Full Adder">
      <a name="facing" val="south"/>
    </comp>
    <comp lib="6" loc="(509,429)" name="Text">
      <a name="text" val="x1"/>
    </comp>
    <comp lib="6" loc="(397,429)" name="Text">
      <a name="text" val="x2"/>
    </comp>
    <comp lib="0" loc="(510,680)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s1"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="6" loc="(287,430)" name="Text">
      <a name="text" val="x3"/>
    </comp>
    <comp lib="0" loc="(400,680)" name="Pin">
      <a name="facing" val="north"/>
      <a name="output" val="true"/>
      <a name="label" val="s2"/>
      <a name="labelloc" val="south"/>
    </comp>
    <comp lib="0" loc="(780,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a1"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp loc="(620,590)" name="Full Adder">
      <a name="facing" val="south"/>
    </comp>
    <comp lib="0" loc="(750,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="a2"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(540,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b0"/>
      <a name="labelloc" val="north"/>
    </comp>
    <comp lib="0" loc="(510,60)" name="Pin">
      <a name="facing" val="south"/>
      <a name="tristate" val="false"/>
      <a name="label" val="b1"/>
      <a name="labelloc" val="north"/>
    </comp>
  </circuit>
  <circuit name="Full Adder">
    <a name="circuit" val="Full Adder"/>
    <a name="clabel" val="FA"/>
    <a name="clabelup" val="west"/>
    <a name="clabelfont" val="SansSerif plain 12"/>
    <appear>
      <rect fill="none" height="30" stroke="#000000" stroke-width="2" width="30" x="50" y="55"/>
      <circ-port height="8" pin="90,120" width="8" x="46" y="56"/>
      <circ-port height="8" pin="90,160" width="8" x="46" y="66"/>
      <circ-port height="8" pin="90,200" width="8" x="46" y="76"/>
      <circ-port height="10" pin="490,160" width="10" x="75" y="55"/>
      <circ-port height="10" pin="490,300" width="10" x="75" y="65"/>
      <circ-anchor facing="east" height="6" width="6" x="77" y="57"/>
    </appear>
    <wire from="(300,140)" to="(360,140)"/>
    <wire from="(280,180)" to="(340,180)"/>
    <wire from="(160,160)" to="(220,160)"/>
    <wire from="(440,300)" to="(490,300)"/>
    <wire from="(340,180)" to="(360,180)"/>
    <wire from="(200,200)" to="(200,240)"/>
    <wire from="(180,320)" to="(390,320)"/>
    <wire from="(340,180)" to="(340,220)"/>
    <wire from="(320,270)" to="(320,280)"/>
    <wire from="(90,120)" to="(300,120)"/>
    <wire from="(200,200)" to="(220,200)"/>
    <wire from="(300,120)" to="(300,140)"/>
    <wire from="(160,160)" to="(160,240)"/>
    <wire from="(90,200)" to="(200,200)"/>
    <wire from="(300,140)" to="(300,220)"/>
    <wire from="(90,160)" to="(160,160)"/>
    <wire from="(420,160)" to="(490,160)"/>
    <wire from="(180,290)" to="(180,320)"/>
    <wire from="(320,280)" to="(390,280)"/>
    <comp lib="1" loc="(440,300)" name="OR Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(90,120)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="cin"/>
    </comp>
    <comp lib="1" loc="(180,290)" name="AND Gate">
      <a name="facing" val="south"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="1" loc="(420,160)" name="XOR Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(490,300)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="label" val="cout"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(90,200)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="y"/>
    </comp>
    <comp lib="6" loc="(226,43)" name="Text">
      <a name="text" val="Full Adder"/>
      <a name="font" val="SansSerif bold 16"/>
    </comp>
    <comp lib="1" loc="(280,180)" name="XOR Gate">
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="1" loc="(320,270)" name="AND Gate">
      <a name="facing" val="south"/>
      <a name="inputs" val="2"/>
    </comp>
    <comp lib="0" loc="(490,160)" name="Pin">
      <a name="facing" val="west"/>
      <a name="output" val="true"/>
      <a name="tristate" val="false"/>
      <a name="label" val="Sum"/>
      <a name="labelloc" val="east"/>
    </comp>
    <comp lib="0" loc="(90,160)" name="Pin">
      <a name="tristate" val="false"/>
      <a name="label" val="x"/>
    </comp>
  </circuit>
</project>
