261 lines
9.6 KiB
XML
261 lines
9.6 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"/>
|
|
<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="(390,390)" to="(650,390)"/>
|
|
<wire from="(160,170)" to="(280,170)"/>
|
|
<wire from="(210,90)" to="(210,310)"/>
|
|
<wire from="(460,170)" to="(460,200)"/>
|
|
<wire from="(500,380)" to="(570,380)"/>
|
|
<wire from="(330,190)" to="(350,190)"/>
|
|
<wire from="(680,170)" to="(690,170)"/>
|
|
<wire from="(190,110)" to="(190,140)"/>
|
|
<wire from="(80,140)" to="(180,140)"/>
|
|
<wire from="(410,200)" to="(410,270)"/>
|
|
<wire from="(320,210)" to="(350,210)"/>
|
|
<wire from="(450,310)" to="(480,310)"/>
|
|
<wire from="(480,170)" to="(480,180)"/>
|
|
<wire from="(210,90)" to="(240,90)"/>
|
|
<wire from="(320,100)" to="(320,210)"/>
|
|
<wire from="(300,130)" to="(300,180)"/>
|
|
<wire from="(80,110)" to="(90,110)"/>
|
|
<wire from="(300,260)" to="(430,260)"/>
|
|
<wire from="(460,200)" to="(710,200)"/>
|
|
<wire from="(510,320)" to="(610,320)"/>
|
|
<wire from="(390,350)" to="(400,350)"/>
|
|
<wire from="(460,200)" to="(460,240)"/>
|
|
<wire from="(140,90)" to="(140,110)"/>
|
|
<wire from="(170,50)" to="(340,50)"/>
|
|
<wire from="(440,340)" to="(450,340)"/>
|
|
<wire from="(610,290)" to="(610,320)"/>
|
|
<wire from="(400,290)" to="(410,290)"/>
|
|
<wire from="(120,120)" to="(160,120)"/>
|
|
<wire from="(420,170)" to="(420,180)"/>
|
|
<wire from="(300,180)" to="(300,260)"/>
|
|
<wire from="(280,170)" to="(280,240)"/>
|
|
<wire from="(570,350)" to="(570,380)"/>
|
|
<wire from="(400,320)" to="(410,320)"/>
|
|
<wire from="(450,260)" to="(660,260)"/>
|
|
<wire from="(530,130)" to="(550,130)"/>
|
|
<wire from="(340,130)" to="(390,130)"/>
|
|
<wire from="(260,230)" to="(260,360)"/>
|
|
<wire from="(500,330)" to="(500,380)"/>
|
|
<wire from="(180,140)" to="(180,230)"/>
|
|
<wire from="(560,350)" to="(570,350)"/>
|
|
<wire from="(390,350)" to="(390,390)"/>
|
|
<wire from="(410,290)" to="(410,320)"/>
|
|
<wire from="(210,310)" to="(380,310)"/>
|
|
<wire from="(280,100)" to="(320,100)"/>
|
|
<wire from="(300,180)" to="(420,180)"/>
|
|
<wire from="(280,240)" to="(460,240)"/>
|
|
<wire from="(400,320)" to="(400,330)"/>
|
|
<wire from="(690,250)" to="(720,250)"/>
|
|
<wire from="(160,110)" to="(190,110)"/>
|
|
<wire from="(190,140)" to="(380,140)"/>
|
|
<wire from="(480,290)" to="(480,310)"/>
|
|
<wire from="(80,110)" to="(80,140)"/>
|
|
<wire from="(420,180)" to="(450,180)"/>
|
|
<wire from="(450,340)" to="(450,350)"/>
|
|
<wire from="(450,310)" to="(450,340)"/>
|
|
<wire from="(280,90)" to="(330,90)"/>
|
|
<wire from="(650,240)" to="(650,390)"/>
|
|
<wire from="(340,290)" to="(370,290)"/>
|
|
<wire from="(460,330)" to="(460,340)"/>
|
|
<wire from="(160,110)" to="(160,120)"/>
|
|
<wire from="(430,280)" to="(470,280)"/>
|
|
<wire from="(330,90)" to="(330,190)"/>
|
|
<wire from="(120,130)" to="(300,130)"/>
|
|
<wire from="(340,270)" to="(410,270)"/>
|
|
<wire from="(550,130)" to="(550,230)"/>
|
|
<wire from="(170,90)" to="(210,90)"/>
|
|
<wire from="(180,230)" to="(260,230)"/>
|
|
<wire from="(380,150)" to="(380,190)"/>
|
|
<wire from="(170,50)" to="(170,90)"/>
|
|
<wire from="(470,180)" to="(480,180)"/>
|
|
<wire from="(440,170)" to="(440,200)"/>
|
|
<wire from="(400,300)" to="(400,310)"/>
|
|
<wire from="(390,310)" to="(390,350)"/>
|
|
<wire from="(260,230)" to="(550,230)"/>
|
|
<wire from="(410,200)" to="(440,200)"/>
|
|
<wire from="(380,190)" to="(620,190)"/>
|
|
<wire from="(390,310)" to="(400,310)"/>
|
|
<wire from="(380,150)" to="(390,150)"/>
|
|
<wire from="(690,170)" to="(690,190)"/>
|
|
<wire from="(140,90)" to="(170,90)"/>
|
|
<wire from="(430,260)" to="(430,280)"/>
|
|
<wire from="(450,260)" to="(450,290)"/>
|
|
<wire from="(720,210)" to="(720,250)"/>
|
|
<wire from="(650,240)" to="(660,240)"/>
|
|
<wire from="(510,350)" to="(520,350)"/>
|
|
<wire from="(380,140)" to="(380,150)"/>
|
|
<wire from="(620,170)" to="(620,190)"/>
|
|
<wire from="(260,360)" to="(460,360)"/>
|
|
<wire from="(410,290)" to="(450,290)"/>
|
|
<wire from="(340,50)" to="(340,130)"/>
|
|
<wire from="(510,320)" to="(510,350)"/>
|
|
<wire from="(120,110)" to="(140,110)"/>
|
|
<wire from="(400,330)" to="(410,330)"/>
|
|
<wire from="(390,200)" to="(410,200)"/>
|
|
<wire from="(620,170)" to="(640,170)"/>
|
|
<wire from="(690,190)" to="(710,190)"/>
|
|
<wire from="(460,330)" to="(500,330)"/>
|
|
<wire from="(340,270)" to="(340,290)"/>
|
|
<comp lib="1" loc="(470,180)" name="NOT Gate">
|
|
<a name="size" val="20"/>
|
|
</comp>
|
|
<comp lib="0" loc="(380,310)" name="Splitter">
|
|
<a name="fanout" val="1"/>
|
|
<a name="incoming" val="4"/>
|
|
<a name="bit1" val="none"/>
|
|
<a name="bit2" val="none"/>
|
|
<a name="bit3" val="none"/>
|
|
</comp>
|
|
<comp lib="0" loc="(560,350)" name="Bit Extender">
|
|
<a name="in_width" val="7"/>
|
|
<a name="out_width" val="8"/>
|
|
</comp>
|
|
<comp lib="0" loc="(680,170)" name="Bit Extender">
|
|
<a name="out_width" val="7"/>
|
|
</comp>
|
|
<comp lib="1" loc="(690,250)" name="AND Gate">
|
|
<a name="size" val="30"/>
|
|
<a name="inputs" val="2"/>
|
|
</comp>
|
|
<comp lib="0" loc="(160,170)" name="Clock"/>
|
|
<comp lib="1" loc="(440,340)" name="AND Gate">
|
|
<a name="size" val="30"/>
|
|
<a name="inputs" val="2"/>
|
|
<a name="negate1" val="true"/>
|
|
</comp>
|
|
<comp lib="5" loc="(710,200)" name="TTY"/>
|
|
<comp lib="5" loc="(470,280)" name="Keyboard"/>
|
|
<comp lib="4" loc="(530,130)" name="RAM">
|
|
<a name="addrWidth" val="4"/>
|
|
<a name="bus" val="separate"/>
|
|
</comp>
|
|
<comp lib="1" loc="(400,290)" name="NOT Gate"/>
|
|
<comp lib="1" loc="(460,360)" name="Controlled Buffer">
|
|
<a name="facing" val="south"/>
|
|
<a name="width" val="8"/>
|
|
</comp>
|
|
<comp lib="1" loc="(390,200)" name="NOR Gate">
|
|
<a name="size" val="30"/>
|
|
<a name="inputs" val="2"/>
|
|
</comp>
|
|
<comp lib="3" loc="(280,100)" name="Comparator">
|
|
<a name="width" val="4"/>
|
|
<a name="mode" val="unsigned"/>
|
|
</comp>
|
|
<comp lib="0" loc="(240,110)" name="Constant">
|
|
<a name="width" val="4"/>
|
|
<a name="value" val="0xe"/>
|
|
</comp>
|
|
<comp loc="(120,100)" name="cpu"/>
|
|
</circuit>
|
|
<circuit name="cpu">
|
|
<a name="circuit" val="cpu"/>
|
|
<a name="clabel" val=""/>
|
|
<a name="clabelup" val="east"/>
|
|
<a name="clabelfont" val="SansSerif plain 12"/>
|
|
<wire from="(400,120)" to="(480,120)"/>
|
|
<wire from="(420,80)" to="(420,100)"/>
|
|
<wire from="(360,160)" to="(480,160)"/>
|
|
<wire from="(380,140)" to="(480,140)"/>
|
|
<wire from="(380,80)" to="(380,140)"/>
|
|
<wire from="(360,80)" to="(360,160)"/>
|
|
<wire from="(400,80)" to="(400,120)"/>
|
|
<wire from="(420,100)" to="(480,100)"/>
|
|
<comp lib="0" loc="(380,80)" name="Pull Resistor"/>
|
|
<comp lib="0" loc="(480,140)" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="width" val="8"/>
|
|
<a name="label" val="RAM out"/>
|
|
<a name="labelloc" val="east"/>
|
|
</comp>
|
|
<comp lib="0" loc="(420,80)" name="Pull Resistor"/>
|
|
<comp lib="0" loc="(130,170)" name="Pin">
|
|
<a name="width" val="8"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="RAM in"/>
|
|
</comp>
|
|
<comp lib="0" loc="(400,80)" name="Pull Resistor"/>
|
|
<comp lib="0" loc="(480,160)" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="label" val="W/~R"/>
|
|
<a name="labelloc" val="east"/>
|
|
</comp>
|
|
<comp lib="0" loc="(150,150)" name="Pin">
|
|
<a name="width" val="8"/>
|
|
<a name="tristate" val="false"/>
|
|
<a name="label" val="Instruction"/>
|
|
</comp>
|
|
<comp lib="0" loc="(360,80)" name="Pull Resistor"/>
|
|
<comp lib="0" loc="(480,120)" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="width" val="4"/>
|
|
<a name="label" val="Address"/>
|
|
<a name="labelloc" val="east"/>
|
|
</comp>
|
|
<comp lib="0" loc="(480,100)" name="Pin">
|
|
<a name="facing" val="west"/>
|
|
<a name="output" val="true"/>
|
|
<a name="label" val="Code address"/>
|
|
<a name="labelloc" val="east"/>
|
|
</comp>
|
|
</circuit>
|
|
</project>
|