361 lines
13 KiB
XML
361 lines
13 KiB
XML
<?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="Clock">
|
|
<a name="facing" val="north"/>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#Gates" name="1">
|
|
<tool name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#Plexers" name="2">
|
|
<tool name="Multiplexer">
|
|
<a name="select" val="2"/>
|
|
</tool>
|
|
<tool name="Decoder">
|
|
<a name="select" val="2"/>
|
|
<a name="disabled" val="0"/>
|
|
<a name="enable" val="false"/>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#Arithmetic" name="3">
|
|
<tool name="Comparator">
|
|
<a name="width" val="32"/>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#Memory" name="4">
|
|
<tool name="Register">
|
|
<a name="width" val="32"/>
|
|
</tool>
|
|
<tool name="RAM">
|
|
<a name="addrWidth" val="24"/>
|
|
<a name="dataWidth" val="2"/>
|
|
<a name="bus" val="separate"/>
|
|
</tool>
|
|
</lib>
|
|
<lib desc="#I/O" name="5">
|
|
<tool name="Button">
|
|
<a name="label" val="store"/>
|
|
</tool>
|
|
<tool name="LED">
|
|
<a name="color" val="#00ff00"/>
|
|
<a name="offcolor" val="#ff0000"/>
|
|
</tool>
|
|
</lib>
|
|
<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="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="width" val="24"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="problem"/>
|
|
</tool>
|
|
<tool lib="0" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="width" val="32"/>
|
|
<a name="label" val="mux res"/>
|
|
<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="(150,300)" to="(170,300)"/>
|
|
<wire from="(150,260)" to="(180,260)"/>
|
|
<wire from="(390,440)" to="(410,440)"/>
|
|
<wire from="(260,490)" to="(260,510)"/>
|
|
<wire from="(330,250)" to="(400,250)"/>
|
|
<wire from="(290,410)" to="(290,430)"/>
|
|
<wire from="(150,530)" to="(160,530)"/>
|
|
<wire from="(390,430)" to="(390,440)"/>
|
|
<wire from="(170,220)" to="(170,300)"/>
|
|
<wire from="(440,440)" to="(450,440)"/>
|
|
<wire from="(260,510)" to="(280,510)"/>
|
|
<wire from="(390,340)" to="(390,350)"/>
|
|
<wire from="(180,200)" to="(180,260)"/>
|
|
<wire from="(460,240)" to="(460,250)"/>
|
|
<wire from="(150,580)" to="(320,580)"/>
|
|
<wire from="(210,260)" to="(210,300)"/>
|
|
<wire from="(160,440)" to="(330,440)"/>
|
|
<wire from="(250,480)" to="(540,480)"/>
|
|
<wire from="(450,430)" to="(450,440)"/>
|
|
<wire from="(510,200)" to="(550,200)"/>
|
|
<wire from="(210,300)" to="(210,390)"/>
|
|
<wire from="(240,470)" to="(240,530)"/>
|
|
<wire from="(540,300)" to="(540,480)"/>
|
|
<wire from="(450,250)" to="(460,250)"/>
|
|
<wire from="(160,540)" to="(280,540)"/>
|
|
<wire from="(170,220)" to="(370,220)"/>
|
|
<wire from="(210,300)" to="(360,300)"/>
|
|
<wire from="(320,520)" to="(320,580)"/>
|
|
<wire from="(500,390)" to="(530,390)"/>
|
|
<wire from="(530,390)" to="(530,470)"/>
|
|
<wire from="(160,530)" to="(160,540)"/>
|
|
<wire from="(240,470)" to="(530,470)"/>
|
|
<wire from="(550,200)" to="(550,490)"/>
|
|
<wire from="(150,320)" to="(360,320)"/>
|
|
<wire from="(180,200)" to="(370,200)"/>
|
|
<wire from="(240,530)" to="(280,530)"/>
|
|
<wire from="(440,350)" to="(450,350)"/>
|
|
<wire from="(330,250)" to="(330,350)"/>
|
|
<wire from="(250,520)" to="(280,520)"/>
|
|
<wire from="(250,480)" to="(250,520)"/>
|
|
<wire from="(310,520)" to="(320,520)"/>
|
|
<wire from="(180,260)" to="(210,260)"/>
|
|
<wire from="(400,250)" to="(420,250)"/>
|
|
<wire from="(330,350)" to="(390,350)"/>
|
|
<wire from="(500,300)" to="(540,300)"/>
|
|
<wire from="(450,340)" to="(450,350)"/>
|
|
<wire from="(160,440)" to="(160,480)"/>
|
|
<wire from="(330,350)" to="(330,440)"/>
|
|
<wire from="(210,390)" to="(360,390)"/>
|
|
<wire from="(150,320)" to="(150,350)"/>
|
|
<wire from="(150,430)" to="(290,430)"/>
|
|
<wire from="(400,240)" to="(400,250)"/>
|
|
<wire from="(390,350)" to="(410,350)"/>
|
|
<wire from="(330,440)" to="(390,440)"/>
|
|
<wire from="(260,490)" to="(550,490)"/>
|
|
<wire from="(290,410)" to="(360,410)"/>
|
|
<wire from="(150,480)" to="(160,480)"/>
|
|
<comp lib="1" loc="(440,440)" name="NOT Gate"/>
|
|
<comp lib="0" loc="(430,340)" name="Clock">
|
|
<a name="facing" val="north"/>
|
|
</comp>
|
|
<comp loc="(310,520)" name="op decoder/cpu/checker"/>
|
|
<comp lib="5" loc="(150,580)" name="LED">
|
|
<a name="facing" val="east"/>
|
|
<a name="color" val="#00ff00"/>
|
|
<a name="offcolor" val="#ff0000"/>
|
|
<a name="label" val="right"/>
|
|
<a name="labelloc" val="west"/>
|
|
</comp>
|
|
<comp lib="0" loc="(150,350)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="a"/>
|
|
</comp>
|
|
<comp lib="5" loc="(150,480)" name="Button">
|
|
<a name="label" val="store"/>
|
|
<a name="labelloc" val="west"/>
|
|
</comp>
|
|
<comp lib="0" loc="(440,240)" name="Clock">
|
|
<a name="facing" val="north"/>
|
|
</comp>
|
|
<comp lib="4" loc="(510,200)" name="RAM">
|
|
<a name="addrWidth" val="24"/>
|
|
<a name="dataWidth" val="2"/>
|
|
<a name="bus" val="separate"/>
|
|
</comp>
|
|
<comp lib="0" loc="(150,430)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="b"/>
|
|
</comp>
|
|
<comp lib="0" loc="(150,530)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="geuss"/>
|
|
</comp>
|
|
<comp lib="4" loc="(500,300)" name="RAM">
|
|
<a name="addrWidth" val="24"/>
|
|
<a name="dataWidth" val="32"/>
|
|
<a name="bus" val="separate"/>
|
|
</comp>
|
|
<comp lib="4" loc="(500,390)" name="RAM">
|
|
<a name="addrWidth" val="24"/>
|
|
<a name="dataWidth" val="32"/>
|
|
<a name="bus" val="separate"/>
|
|
</comp>
|
|
<comp lib="1" loc="(440,350)" name="NOT Gate"/>
|
|
<comp lib="0" loc="(430,430)" name="Clock">
|
|
<a name="facing" val="north"/>
|
|
</comp>
|
|
<comp lib="1" loc="(450,250)" name="NOT Gate"/>
|
|
<comp lib="0" loc="(150,300)" name="Pin">
|
|
<a name="width" val="2"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="op"/>
|
|
</comp>
|
|
<comp lib="0" loc="(150,260)" name="Pin">
|
|
<a name="width" val="24"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="problem"/>
|
|
</comp>
|
|
</circuit>
|
|
<circuit name="op decoder/cpu/checker">
|
|
<a name="circuit" val="op decoder/cpu/checker"/>
|
|
<a name="clabel" val=""/>
|
|
<a name="clabelup" val="east"/>
|
|
<a name="clabelfont" val="SansSerif plain 12"/>
|
|
<wire from="(120,390)" to="(120,460)"/>
|
|
<wire from="(130,410)" to="(320,410)"/>
|
|
<wire from="(130,410)" to="(130,480)"/>
|
|
<wire from="(420,480)" to="(420,700)"/>
|
|
<wire from="(410,430)" to="(410,450)"/>
|
|
<wire from="(380,540)" to="(390,540)"/>
|
|
<wire from="(210,330)" to="(300,330)"/>
|
|
<wire from="(310,560)" to="(330,560)"/>
|
|
<wire from="(130,480)" to="(130,550)"/>
|
|
<wire from="(210,350)" to="(280,350)"/>
|
|
<wire from="(300,440)" to="(400,440)"/>
|
|
<wire from="(210,340)" to="(290,340)"/>
|
|
<wire from="(130,620)" to="(320,620)"/>
|
|
<wire from="(310,630)" to="(330,630)"/>
|
|
<wire from="(310,470)" to="(330,470)"/>
|
|
<wire from="(410,450)" to="(430,450)"/>
|
|
<wire from="(120,700)" to="(420,700)"/>
|
|
<wire from="(310,610)" to="(330,610)"/>
|
|
<wire from="(380,610)" to="(400,610)"/>
|
|
<wire from="(390,460)" to="(390,540)"/>
|
|
<wire from="(400,470)" to="(400,610)"/>
|
|
<wire from="(290,340)" to="(290,540)"/>
|
|
<wire from="(290,540)" to="(310,540)"/>
|
|
<wire from="(380,400)" to="(430,400)"/>
|
|
<wire from="(430,400)" to="(430,450)"/>
|
|
<wire from="(120,600)" to="(320,600)"/>
|
|
<wire from="(310,420)" to="(330,420)"/>
|
|
<wire from="(380,430)" to="(390,430)"/>
|
|
<wire from="(190,360)" to="(190,490)"/>
|
|
<wire from="(210,320)" to="(310,320)"/>
|
|
<wire from="(380,430)" to="(380,470)"/>
|
|
<wire from="(120,530)" to="(320,530)"/>
|
|
<wire from="(430,450)" to="(430,460)"/>
|
|
<wire from="(130,550)" to="(320,550)"/>
|
|
<wire from="(310,540)" to="(310,560)"/>
|
|
<wire from="(310,470)" to="(310,490)"/>
|
|
<wire from="(310,490)" to="(330,490)"/>
|
|
<wire from="(280,350)" to="(280,610)"/>
|
|
<wire from="(300,330)" to="(300,440)"/>
|
|
<wire from="(300,440)" to="(300,470)"/>
|
|
<wire from="(120,620)" to="(130,620)"/>
|
|
<wire from="(130,550)" to="(130,620)"/>
|
|
<wire from="(300,470)" to="(310,470)"/>
|
|
<wire from="(120,460)" to="(120,530)"/>
|
|
<wire from="(130,480)" to="(320,480)"/>
|
|
<wire from="(400,470)" to="(430,470)"/>
|
|
<wire from="(110,490)" to="(190,490)"/>
|
|
<wire from="(420,480)" to="(430,480)"/>
|
|
<wire from="(430,460)" to="(430,470)"/>
|
|
<wire from="(310,400)" to="(310,420)"/>
|
|
<wire from="(390,460)" to="(430,460)"/>
|
|
<wire from="(310,320)" to="(310,400)"/>
|
|
<wire from="(120,460)" to="(320,460)"/>
|
|
<wire from="(120,390)" to="(320,390)"/>
|
|
<wire from="(310,400)" to="(330,400)"/>
|
|
<wire from="(280,610)" to="(310,610)"/>
|
|
<wire from="(120,530)" to="(120,540)"/>
|
|
<wire from="(310,540)" to="(330,540)"/>
|
|
<wire from="(310,610)" to="(310,630)"/>
|
|
<wire from="(120,540)" to="(120,600)"/>
|
|
<comp lib="3" loc="(470,470)" name="Comparator">
|
|
<a name="width" val="32"/>
|
|
<a name="mode" val="unsigned"/>
|
|
</comp>
|
|
<comp lib="3" loc="(380,540)" name="Multiplier">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,530)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="0" loc="(120,700)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="guess"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,410)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,390)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="0" loc="(110,490)" name="Pin">
|
|
<a name="width" val="2"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="op"/>
|
|
</comp>
|
|
<comp lib="2" loc="(190,360)" name="Decoder">
|
|
<a name="select" val="2"/>
|
|
<a name="disabled" val="0"/>
|
|
<a name="enable" val="false"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,460)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="0" loc="(120,540)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="a"/>
|
|
</comp>
|
|
<comp lib="3" loc="(380,400)" name="Adder">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="3" loc="(380,610)" name="Divider">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,480)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="0" loc="(470,470)" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="label" val="right"/>
|
|
<a name="labelloc" val="east"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,600)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,620)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(340,550)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="1" loc="(410,430)" name="Controlled Buffer">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="3" loc="(380,470)" name="Subtractor">
|
|
<a name="width" val="32"/>
|
|
</comp>
|
|
<comp lib="0" loc="(120,620)" name="Pin">
|
|
<a name="width" val="32"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="b"/>
|
|
</comp>
|
|
</circuit>
|
|
</project>
|