logisim-stuff/easy ram.circ
2015-01-04 15:24:53 -06:00

219 lines
7.4 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="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="Reset"/>
</tool>
<tool name="Probe">
<a name="radix" val="10signed"/>
</tool>
<tool name="Tunnel">
<a name="label" val="JMP"/>
</tool>
<tool name="Pull Resistor">
<a name="facing" val="east"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<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="RAM"/>
<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"/>
<a name="label" val="clear"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="labelloc" val="east"/>
</tool>
<tool lib="1" name="NOT Gate"/>
<tool lib="1" name="AND Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool lib="1" name="OR Gate"/>
</toolbar>
<circuit name="RAM">
<a name="circuit" val="RAM"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(240,210)" to="(260,210)"/>
<wire from="(300,180)" to="(300,210)"/>
<wire from="(190,160)" to="(210,160)"/>
<wire from="(150,150)" to="(150,180)"/>
<wire from="(310,180)" to="(310,230)"/>
<wire from="(150,150)" to="(190,150)"/>
<wire from="(250,190)" to="(250,250)"/>
<wire from="(150,250)" to="(250,250)"/>
<wire from="(240,210)" to="(240,230)"/>
<wire from="(250,190)" to="(260,190)"/>
<wire from="(150,230)" to="(240,230)"/>
<wire from="(250,260)" to="(300,260)"/>
<wire from="(240,180)" to="(240,210)"/>
<wire from="(310,180)" to="(320,180)"/>
<wire from="(200,130)" to="(200,140)"/>
<wire from="(260,180)" to="(260,190)"/>
<wire from="(150,110)" to="(150,130)"/>
<wire from="(150,130)" to="(200,130)"/>
<wire from="(250,250)" to="(250,260)"/>
<wire from="(200,140)" to="(210,140)"/>
<wire from="(190,150)" to="(190,160)"/>
<wire from="(350,140)" to="(360,140)"/>
<wire from="(280,180)" to="(280,290)"/>
<wire from="(290,210)" to="(300,210)"/>
<wire from="(320,260)" to="(320,270)"/>
<wire from="(150,290)" to="(280,290)"/>
<wire from="(150,270)" to="(320,270)"/>
<comp lib="0" loc="(150,180)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="data in"/>
</comp>
<comp lib="0" loc="(150,290)" name="Clock"/>
<comp lib="0" loc="(150,110)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="label" val="address in"/>
</comp>
<comp lib="1" loc="(310,230)" name="AND Gate">
<a name="facing" val="north"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(150,250)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="select in"/>
</comp>
<comp lib="1" loc="(290,210)" name="NOT Gate"/>
<comp lib="0" loc="(150,270)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="clear in"/>
</comp>
<comp lib="0" loc="(360,140)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="label" val="data out"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(150,230)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="store in"/>
</comp>
<comp lib="4" loc="(350,140)" name="RAM">
<a name="addrWidth" val="24"/>
<a name="dataWidth" val="32"/>
<a name="bus" val="separate"/>
</comp>
</circuit>
<circuit name="RAMx2">
<a name="circuit" val="RAMx2"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(470,450)" to="(750,450)"/>
<wire from="(780,390)" to="(910,390)"/>
<wire from="(690,440)" to="(750,440)"/>
<wire from="(640,460)" to="(750,460)"/>
<wire from="(700,360)" to="(750,360)"/>
<wire from="(640,380)" to="(640,400)"/>
<wire from="(690,380)" to="(690,440)"/>
<wire from="(700,360)" to="(700,420)"/>
<wire from="(640,400)" to="(640,460)"/>
<wire from="(780,390)" to="(780,440)"/>
<wire from="(710,430)" to="(750,430)"/>
<wire from="(710,370)" to="(710,430)"/>
<wire from="(510,310)" to="(710,310)"/>
<wire from="(470,450)" to="(470,480)"/>
<wire from="(510,380)" to="(640,380)"/>
<wire from="(780,380)" to="(780,390)"/>
<wire from="(690,360)" to="(690,380)"/>
<wire from="(470,390)" to="(720,390)"/>
<wire from="(640,400)" to="(750,400)"/>
<wire from="(470,390)" to="(470,450)"/>
<wire from="(510,360)" to="(690,360)"/>
<wire from="(710,310)" to="(710,370)"/>
<wire from="(510,240)" to="(750,240)"/>
<wire from="(690,380)" to="(750,380)"/>
<wire from="(710,370)" to="(750,370)"/>
<wire from="(700,420)" to="(750,420)"/>
<wire from="(750,240)" to="(750,360)"/>
<comp lib="0" loc="(510,310)" name="Pin">
<a name="width" val="32"/>
<a name="tristate" val="false"/>
<a name="label" val="d in"/>
</comp>
<comp lib="0" loc="(510,380)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="clear"/>
</comp>
<comp loc="(780,380)" name="RAM"/>
<comp lib="0" loc="(470,480)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="sel"/>
</comp>
<comp lib="0" loc="(910,390)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="32"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(510,240)" name="Pin">
<a name="width" val="24"/>
<a name="tristate" val="false"/>
<a name="label" val="a in"/>
</comp>
<comp lib="0" loc="(510,360)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="store"/>
</comp>
<comp loc="(780,440)" name="RAM"/>
<comp lib="1" loc="(750,390)" name="NOT Gate"/>
</circuit>
</project>