logisim-stuff/a-track machine.circ
2015-01-04 15:24:53 -06:00

381 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="Splitter">
<a name="fanout" val="24"/>
<a name="incoming" val="24"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="View"/>
</tool>
<tool name="Probe">
<a name="facing" val="west"/>
<a name="radix" val="16"/>
<a name="label" val="rdov"/>
<a name="labelloc" val="east"/>
</tool>
<tool name="Tunnel">
<a name="label" val="pop"/>
</tool>
<tool name="Pull Resistor">
<a name="facing" val="north"/>
</tool>
<tool name="Clock">
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="width" val="16"/>
<a name="value" val="0x0"/>
</tool>
<tool name="Bit Extender">
<a name="in_width" val="1"/>
<a name="out_width" val="24"/>
</tool>
</lib>
<lib desc="#Gates" name="1"/>
<lib desc="#Plexers" name="2">
<tool name="Multiplexer">
<a name="width" val="32"/>
</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="ROM">
<a name="contents">addr/data: 8 8
0
</a>
</tool>
</lib>
<lib desc="#I/O" name="5">
<tool name="Button">
<a name="label" val="add"/>
<a name="labelloc" val="west"/>
</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="a-track"/>
<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="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="pass"/>
</tool>
<tool lib="0" name="Pin">
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="label" val="out"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool lib="1" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</toolbar>
<circuit name="a-track">
<a name="circuit" val="a-track"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<appear>
<rect fill="none" height="57" stroke="#000000" stroke-width="2" width="52" x="39" y="63"/>
<circ-port height="8" pin="170,570" width="8" x="46" y="116"/>
<circ-port height="8" pin="170,590" width="8" x="76" y="116"/>
<circ-port height="10" pin="550,450" width="10" x="85" y="85"/>
<circ-port height="8" pin="220,450" width="8" x="36" y="96"/>
<circ-port height="8" pin="220,380" width="8" x="36" y="76"/>
<circ-port height="8" pin="220,500" width="8" x="36" y="106"/>
<circ-port height="8" pin="220,310" width="8" x="36" y="86"/>
<circ-port height="8" pin="220,230" width="8" x="36" y="116"/>
<circ-anchor facing="east" height="6" width="6" x="57" y="87"/>
</appear>
<wire from="(430,150)" to="(430,170)"/>
<wire from="(510,380)" to="(510,390)"/>
<wire from="(270,310)" to="(310,310)"/>
<wire from="(430,490)" to="(430,590)"/>
<wire from="(570,250)" to="(570,260)"/>
<wire from="(300,160)" to="(300,170)"/>
<wire from="(510,360)" to="(550,360)"/>
<wire from="(410,180)" to="(410,200)"/>
<wire from="(460,400)" to="(460,410)"/>
<wire from="(300,450)" to="(340,450)"/>
<wire from="(280,410)" to="(460,410)"/>
<wire from="(700,240)" to="(700,260)"/>
<wire from="(270,360)" to="(270,500)"/>
<wire from="(390,150)" to="(390,200)"/>
<wire from="(530,340)" to="(820,340)"/>
<wire from="(510,340)" to="(510,360)"/>
<wire from="(570,260)" to="(570,280)"/>
<wire from="(360,230)" to="(360,350)"/>
<wire from="(220,380)" to="(300,380)"/>
<wire from="(310,230)" to="(340,230)"/>
<wire from="(320,200)" to="(390,200)"/>
<wire from="(720,280)" to="(770,280)"/>
<wire from="(300,170)" to="(300,190)"/>
<wire from="(340,220)" to="(520,220)"/>
<wire from="(480,180)" to="(520,180)"/>
<wire from="(700,300)" to="(750,300)"/>
<wire from="(680,270)" to="(680,290)"/>
<wire from="(500,410)" to="(580,410)"/>
<wire from="(310,230)" to="(310,300)"/>
<wire from="(240,450)" to="(240,470)"/>
<wire from="(530,310)" to="(530,340)"/>
<wire from="(220,170)" to="(220,230)"/>
<wire from="(480,450)" to="(550,450)"/>
<wire from="(750,240)" to="(790,240)"/>
<wire from="(430,210)" to="(480,210)"/>
<wire from="(220,260)" to="(570,260)"/>
<wire from="(390,150)" to="(430,150)"/>
<wire from="(660,240)" to="(660,290)"/>
<wire from="(360,350)" to="(410,350)"/>
<wire from="(790,240)" to="(790,250)"/>
<wire from="(220,170)" to="(300,170)"/>
<wire from="(380,300)" to="(380,400)"/>
<wire from="(790,290)" to="(790,610)"/>
<wire from="(220,500)" to="(270,500)"/>
<wire from="(170,590)" to="(430,590)"/>
<wire from="(500,410)" to="(500,530)"/>
<wire from="(440,350)" to="(460,350)"/>
<wire from="(270,360)" to="(410,360)"/>
<wire from="(660,240)" to="(700,240)"/>
<wire from="(280,610)" to="(790,610)"/>
<wire from="(750,240)" to="(750,300)"/>
<wire from="(390,530)" to="(500,530)"/>
<wire from="(280,410)" to="(280,610)"/>
<wire from="(460,370)" to="(460,380)"/>
<wire from="(500,390)" to="(510,390)"/>
<wire from="(240,470)" to="(340,470)"/>
<wire from="(220,260)" to="(220,310)"/>
<wire from="(360,230)" to="(540,230)"/>
<wire from="(540,200)" to="(540,230)"/>
<wire from="(340,220)" to="(340,230)"/>
<wire from="(460,310)" to="(460,330)"/>
<wire from="(390,490)" to="(390,530)"/>
<wire from="(170,570)" to="(370,570)"/>
<wire from="(370,490)" to="(370,570)"/>
<wire from="(300,380)" to="(300,450)"/>
<wire from="(580,370)" to="(580,410)"/>
<wire from="(270,310)" to="(270,360)"/>
<wire from="(460,310)" to="(530,310)"/>
<wire from="(500,340)" to="(510,340)"/>
<wire from="(340,180)" to="(410,180)"/>
<wire from="(450,190)" to="(500,190)"/>
<wire from="(340,300)" to="(380,300)"/>
<wire from="(820,270)" to="(820,340)"/>
<wire from="(810,270)" to="(820,270)"/>
<wire from="(440,370)" to="(440,400)"/>
<wire from="(500,190)" to="(500,210)"/>
<wire from="(440,370)" to="(460,370)"/>
<wire from="(610,270)" to="(680,270)"/>
<wire from="(480,180)" to="(480,210)"/>
<wire from="(380,400)" to="(440,400)"/>
<wire from="(510,380)" to="(550,380)"/>
<wire from="(770,260)" to="(770,280)"/>
<wire from="(590,290)" to="(660,290)"/>
<wire from="(220,450)" to="(240,450)"/>
<comp lib="4" loc="(440,350)" name="Register">
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(340,180)" name="Multiplier">
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(500,390)" name="Comparator">
<a name="width" val="32"/>
<a name="mode" val="unsigned"/>
</comp>
<comp lib="3" loc="(610,270)" name="Multiplier">
<a name="width" val="32"/>
</comp>
<comp lib="4" loc="(340,300)" name="Register">
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(170,570)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="store"/>
</comp>
<comp lib="0" loc="(220,450)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="in"/>
</comp>
<comp lib="3" loc="(500,340)" name="Comparator">
<a name="width" val="32"/>
<a name="mode" val="unsigned"/>
</comp>
<comp lib="3" loc="(720,280)" name="Multiplier">
<a name="width" val="32"/>
</comp>
<comp lib="3" loc="(810,270)" name="Multiplier">
<a name="width" val="32"/>
</comp>
<comp lib="0" loc="(550,450)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="label" val="out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="3" loc="(540,200)" name="Multiplier">
<a name="width" val="32"/>
</comp>
<comp lib="1" loc="(580,370)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(220,310)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="user pass"/>
</comp>
<comp lib="0" loc="(170,590)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="load"/>
</comp>
<comp lib="0" loc="(420,370)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(320,320)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(410,490)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="4" loc="(480,450)" name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(220,380)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="label" val="loc"/>
</comp>
<comp lib="0" loc="(220,230)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="new pass"/>
</comp>
<comp lib="0" loc="(220,500)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="set"/>
</comp>
<comp lib="3" loc="(450,190)" name="Multiplier">
<a name="width" val="32"/>
</comp>
</circuit>
<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="(350,410)" to="(400,410)"/>
<wire from="(240,740)" to="(240,780)"/>
<wire from="(400,430)" to="(400,460)"/>
<wire from="(240,410)" to="(260,410)"/>
<wire from="(290,400)" to="(290,540)"/>
<wire from="(270,390)" to="(270,580)"/>
<wire from="(350,410)" to="(350,560)"/>
<wire from="(260,560)" to="(260,680)"/>
<wire from="(270,610)" to="(270,730)"/>
<wire from="(450,400)" to="(470,400)"/>
<wire from="(470,400)" to="(470,660)"/>
<wire from="(410,440)" to="(410,610)"/>
<wire from="(260,420)" to="(400,420)"/>
<wire from="(410,430)" to="(410,440)"/>
<wire from="(240,540)" to="(290,540)"/>
<wire from="(240,580)" to="(240,610)"/>
<wire from="(260,560)" to="(350,560)"/>
<wire from="(240,580)" to="(270,580)"/>
<wire from="(260,410)" to="(260,420)"/>
<wire from="(270,610)" to="(410,610)"/>
<wire from="(280,660)" to="(470,660)"/>
<wire from="(240,730)" to="(270,730)"/>
<wire from="(290,400)" to="(400,400)"/>
<wire from="(240,460)" to="(400,460)"/>
<wire from="(240,740)" to="(280,740)"/>
<wire from="(440,430)" to="(440,440)"/>
<wire from="(240,680)" to="(260,680)"/>
<wire from="(270,390)" to="(400,390)"/>
<wire from="(280,660)" to="(280,740)"/>
<comp lib="0" loc="(240,610)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="label" val="loc"/>
</comp>
<comp loc="(610,390)" name="a-track">
<a name="label" val="Peter"/>
</comp>
<comp loc="(610,470)" name="a-track">
<a name="label" val="Charlie"/>
</comp>
<comp lib="0" loc="(240,540)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="user pass"/>
</comp>
<comp lib="0" loc="(240,780)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="label" val="out"/>
</comp>
<comp lib="5" loc="(240,410)" name="Button">
<a name="label" val="set"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(240,460)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="new pass"/>
</comp>
<comp lib="1" loc="(440,440)" name="NOT Gate"/>
<comp lib="5" loc="(240,730)" name="Button">
<a name="label" val="store"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(240,680)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="in"/>
</comp>
</circuit>
</project>