logisim-stuff/RAM 3.circ
2015-01-04 15:24:53 -06:00

435 lines
16 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="facing" val="west"/>
<a name="fanout" val="3"/>
<a name="incoming" val="3"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 3 write"/>
</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="riv"/>
</tool>
<tool name="Pull Resistor">
<a name="facing" val="west"/>
<a name="pull" val="1"/>
</tool>
<tool name="Clock">
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="width" val="16"/>
<a name="value" val="0x0"/>
</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"/>
<lib desc="#Memory" name="4">
<tool name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="24"/>
</tool>
<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="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"/>
</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"/>
<appear>
<rect fill="none" height="20" stroke="#000000" width="20" x="110" y="90"/>
<rect fill="none" height="20" stroke="#000000" width="20" x="110" y="50"/>
<rect fill="none" height="20" stroke="#000000" width="21" x="110" y="130"/>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="120" y="63">1</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="120" y="104">2</text>
<text font-family="SansSerif" font-size="12" text-anchor="middle" x="120" y="144">3</text>
<circ-port height="8" pin="170,180" width="8" x="106" y="46"/>
<circ-port height="8" pin="170,240" width="8" x="106" y="86"/>
<circ-port height="8" pin="170,300" width="8" x="106" y="126"/>
<circ-port height="8" pin="170,370" width="8" x="106" y="56"/>
<circ-port height="8" pin="170,450" width="8" x="106" y="96"/>
<circ-port height="8" pin="170,530" width="8" x="106" y="136"/>
<circ-port height="8" pin="170,580" width="8" x="106" y="66"/>
<circ-port height="8" pin="170,600" width="8" x="106" y="106"/>
<circ-port height="8" pin="170,620" width="8" x="106" y="146"/>
<circ-port height="10" pin="630,90" width="10" x="125" y="55"/>
<circ-port height="10" pin="630,170" width="10" x="125" y="95"/>
<circ-port height="10" pin="630,250" width="10" x="125" y="135"/>
<circ-anchor facing="east" height="6" width="6" x="127" y="97"/>
</appear>
<wire from="(330,350)" to="(330,390)"/>
<wire from="(170,450)" to="(170,460)"/>
<wire from="(540,140)" to="(540,160)"/>
<wire from="(500,130)" to="(530,130)"/>
<wire from="(420,380)" to="(430,380)"/>
<wire from="(490,110)" to="(490,120)"/>
<wire from="(300,580)" to="(580,580)"/>
<wire from="(170,620)" to="(320,620)"/>
<wire from="(490,110)" to="(530,110)"/>
<wire from="(170,120)" to="(170,180)"/>
<wire from="(540,160)" to="(580,160)"/>
<wire from="(420,270)" to="(430,270)"/>
<wire from="(330,350)" to="(340,350)"/>
<wire from="(430,370)" to="(430,380)"/>
<wire from="(550,300)" to="(550,600)"/>
<wire from="(520,250)" to="(520,300)"/>
<wire from="(370,160)" to="(370,170)"/>
<wire from="(250,350)" to="(330,350)"/>
<wire from="(180,540)" to="(250,540)"/>
<wire from="(630,250)" to="(630,340)"/>
<wire from="(370,270)" to="(390,270)"/>
<wire from="(320,380)" to="(370,380)"/>
<wire from="(190,220)" to="(340,220)"/>
<wire from="(310,270)" to="(370,270)"/>
<wire from="(310,600)" to="(550,600)"/>
<wire from="(480,220)" to="(510,220)"/>
<wire from="(300,170)" to="(370,170)"/>
<wire from="(170,580)" to="(300,580)"/>
<wire from="(410,410)" to="(490,410)"/>
<wire from="(410,160)" to="(410,180)"/>
<wire from="(170,300)" to="(340,300)"/>
<wire from="(180,530)" to="(180,540)"/>
<wire from="(170,600)" to="(310,600)"/>
<wire from="(480,120)" to="(490,120)"/>
<wire from="(320,380)" to="(320,620)"/>
<wire from="(190,220)" to="(190,240)"/>
<wire from="(540,340)" to="(630,340)"/>
<wire from="(520,300)" to="(550,300)"/>
<wire from="(250,350)" to="(250,540)"/>
<wire from="(290,60)" to="(290,140)"/>
<wire from="(410,370)" to="(410,410)"/>
<wire from="(410,290)" to="(490,290)"/>
<wire from="(410,260)" to="(410,290)"/>
<wire from="(330,390)" to="(510,390)"/>
<wire from="(300,170)" to="(300,580)"/>
<wire from="(370,370)" to="(370,380)"/>
<wire from="(370,260)" to="(370,270)"/>
<wire from="(370,170)" to="(390,170)"/>
<wire from="(620,90)" to="(620,120)"/>
<wire from="(330,240)" to="(340,240)"/>
<wire from="(520,360)" to="(520,620)"/>
<wire from="(490,180)" to="(490,290)"/>
<wire from="(580,160)" to="(580,580)"/>
<wire from="(330,240)" to="(330,280)"/>
<wire from="(330,280)" to="(510,280)"/>
<wire from="(320,620)" to="(520,620)"/>
<wire from="(430,260)" to="(430,270)"/>
<wire from="(290,140)" to="(340,140)"/>
<wire from="(170,240)" to="(190,240)"/>
<wire from="(170,530)" to="(180,530)"/>
<wire from="(230,140)" to="(290,140)"/>
<wire from="(370,380)" to="(390,380)"/>
<wire from="(510,240)" to="(510,280)"/>
<wire from="(620,90)" to="(630,90)"/>
<wire from="(510,350)" to="(510,390)"/>
<wire from="(230,140)" to="(230,370)"/>
<wire from="(500,50)" to="(500,130)"/>
<wire from="(560,120)" to="(620,120)"/>
<wire from="(240,240)" to="(330,240)"/>
<wire from="(340,300)" to="(340,330)"/>
<wire from="(420,170)" to="(430,170)"/>
<wire from="(290,60)" to="(380,60)"/>
<wire from="(430,160)" to="(430,170)"/>
<wire from="(540,170)" to="(540,230)"/>
<wire from="(490,290)" to="(490,410)"/>
<wire from="(380,50)" to="(500,50)"/>
<wire from="(240,240)" to="(240,460)"/>
<wire from="(310,270)" to="(310,600)"/>
<wire from="(380,50)" to="(380,60)"/>
<wire from="(410,180)" to="(490,180)"/>
<wire from="(170,120)" to="(340,120)"/>
<wire from="(170,460)" to="(240,460)"/>
<wire from="(540,170)" to="(630,170)"/>
<wire from="(480,330)" to="(510,330)"/>
<wire from="(170,370)" to="(230,370)"/>
<comp lib="1" loc="(420,380)" name="NOT Gate"/>
<comp lib="0" loc="(410,410)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="2" loc="(560,120)" name="Multiplexer">
<a name="width" val="32"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(170,620)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RAM 3 write"/>
</comp>
<comp lib="0" loc="(170,240)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 2 adress"/>
</comp>
<comp lib="0" loc="(630,90)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 1 data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(170,450)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 2 data in"/>
</comp>
<comp lib="0" loc="(170,300)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 3 adress"/>
</comp>
<comp lib="0" loc="(170,370)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 1 data in"/>
</comp>
<comp lib="0" loc="(630,250)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 3 data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="2" loc="(540,230)" name="Multiplexer">
<a name="width" val="32"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(170,600)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RAM 2 write"/>
</comp>
<comp lib="2" loc="(540,340)" name="Multiplexer">
<a name="width" val="32"/>
<a name="enable" val="false"/>
</comp>
<comp lib="1" loc="(420,170)" name="NOT Gate"/>
<comp lib="4" loc="(480,330)" name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="4" loc="(480,220)" name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(170,180)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 1 adress"/>
</comp>
<comp lib="4" loc="(480,120)" name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(630,170)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 2 data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(420,270)" name="NOT Gate"/>
<comp lib="0" loc="(170,530)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 3 data in"/>
</comp>
<comp lib="0" loc="(170,580)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RAM 1 write"/>
</comp>
</circuit>
<circuit name="test">
<a name="circuit" val="test"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(250,200)" to="(250,530)"/>
<wire from="(170,90)" to="(190,90)"/>
<wire from="(180,530)" to="(250,530)"/>
<wire from="(180,330)" to="(260,330)"/>
<wire from="(220,240)" to="(270,240)"/>
<wire from="(170,380)" to="(210,380)"/>
<wire from="(170,30)" to="(180,30)"/>
<wire from="(310,270)" to="(310,350)"/>
<wire from="(170,470)" to="(230,470)"/>
<wire from="(170,430)" to="(180,430)"/>
<wire from="(290,270)" to="(310,270)"/>
<wire from="(270,130)" to="(270,180)"/>
<wire from="(170,450)" to="(220,450)"/>
<wire from="(330,260)" to="(330,270)"/>
<wire from="(230,280)" to="(230,470)"/>
<wire from="(230,280)" to="(270,280)"/>
<wire from="(290,190)" to="(340,190)"/>
<wire from="(300,260)" to="(330,260)"/>
<wire from="(250,200)" to="(270,200)"/>
<wire from="(170,300)" to="(240,300)"/>
<wire from="(190,220)" to="(270,220)"/>
<wire from="(290,230)" to="(300,230)"/>
<wire from="(310,350)" to="(340,350)"/>
<wire from="(260,190)" to="(270,190)"/>
<wire from="(230,260)" to="(270,260)"/>
<wire from="(180,130)" to="(270,130)"/>
<wire from="(300,230)" to="(300,260)"/>
<wire from="(180,30)" to="(180,130)"/>
<wire from="(180,430)" to="(180,530)"/>
<wire from="(230,150)" to="(230,260)"/>
<wire from="(240,230)" to="(240,300)"/>
<wire from="(210,270)" to="(270,270)"/>
<wire from="(220,240)" to="(220,450)"/>
<wire from="(190,90)" to="(190,220)"/>
<wire from="(170,220)" to="(180,220)"/>
<wire from="(210,270)" to="(210,380)"/>
<wire from="(330,270)" to="(340,270)"/>
<wire from="(170,150)" to="(230,150)"/>
<wire from="(260,190)" to="(260,330)"/>
<wire from="(180,220)" to="(180,330)"/>
<wire from="(240,230)" to="(270,230)"/>
<comp lib="0" loc="(170,90)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 2 adress"/>
</comp>
<comp lib="0" loc="(340,190)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 1 data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(170,150)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 3 adress"/>
</comp>
<comp lib="5" loc="(170,470)" name="Button">
<a name="label" val="RAM 3 write"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="5" loc="(170,450)" name="Button">
<a name="label" val="RAM 2 write"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(170,30)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 1 adress"/>
</comp>
<comp lib="0" loc="(340,350)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 3 data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(170,380)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 3 data in"/>
</comp>
<comp lib="0" loc="(170,300)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 2 data in"/>
</comp>
<comp lib="0" loc="(170,220)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="RAM 1 data in"/>
</comp>
<comp lib="5" loc="(170,430)" name="Button">
<a name="label" val="RAM 1 write"/>
<a name="labelloc" val="west"/>
</comp>
<comp loc="(290,230)" name="main"/>
<comp lib="0" loc="(340,270)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="RAM 2 data out"/>
<a name="labelloc" val="east"/>
</comp>
</circuit>
</project>