logisim-stuff/ASync Serial.circ
2016-02-02 12:44:19 -06:00

502 lines
18 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="north"/>
<a name="fanout" val="32"/>
<a name="incoming" val="32"/>
</tool>
<tool name="Pin">
<a name="tristate" val="false"/>
<a name="pull" val="down"/>
<a name="label" val="Takeover"/>
</tool>
<tool name="Probe">
<a name="radix" val="16"/>
<a name="label" val="mem out"/>
</tool>
<tool name="Tunnel">
<a name="label" val="pop"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="Controlled Buffer">
<a name="facing" val="west"/>
</tool>
</lib>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4">
<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="tristate" val="false"/>
<a name="label" val="RPLoad"/>
</tool>
<tool lib="0" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="SPout"/>
</tool>
<tool lib="1" name="NOT Gate">
<a name="facing" val="north"/>
</tool>
<tool lib="1" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</tool>
<tool lib="1" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</toolbar>
<circuit name="Sender">
<a name="circuit" val="Sender"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(100,270)" to="(120,270)"/>
<wire from="(420,190)" to="(420,310)"/>
<wire from="(210,340)" to="(210,410)"/>
<wire from="(290,300)" to="(300,300)"/>
<wire from="(40,120)" to="(210,120)"/>
<wire from="(130,260)" to="(150,260)"/>
<wire from="(210,410)" to="(380,410)"/>
<wire from="(150,370)" to="(290,370)"/>
<wire from="(370,310)" to="(370,380)"/>
<wire from="(320,270)" to="(400,270)"/>
<wire from="(370,380)" to="(380,380)"/>
<wire from="(380,380)" to="(390,380)"/>
<wire from="(400,390)" to="(400,430)"/>
<wire from="(230,40)" to="(230,120)"/>
<wire from="(250,300)" to="(280,300)"/>
<wire from="(250,230)" to="(250,240)"/>
<wire from="(380,380)" to="(380,410)"/>
<wire from="(120,270)" to="(120,320)"/>
<wire from="(80,250)" to="(90,250)"/>
<wire from="(40,530)" to="(410,530)"/>
<wire from="(350,280)" to="(350,300)"/>
<wire from="(420,380)" to="(520,380)"/>
<wire from="(80,270)" to="(100,270)"/>
<wire from="(90,250)" to="(90,280)"/>
<wire from="(370,310)" to="(420,310)"/>
<wire from="(300,290)" to="(300,300)"/>
<wire from="(250,200)" to="(250,220)"/>
<wire from="(320,260)" to="(320,270)"/>
<wire from="(260,270)" to="(260,280)"/>
<wire from="(280,300)" to="(280,320)"/>
<wire from="(120,180)" to="(210,180)"/>
<wire from="(290,430)" to="(400,430)"/>
<wire from="(340,300)" to="(350,300)"/>
<wire from="(140,190)" to="(420,190)"/>
<wire from="(260,270)" to="(290,270)"/>
<wire from="(410,390)" to="(410,530)"/>
<wire from="(290,300)" to="(290,370)"/>
<wire from="(270,280)" to="(310,280)"/>
<wire from="(110,200)" to="(250,200)"/>
<wire from="(140,250)" to="(150,250)"/>
<wire from="(160,220)" to="(160,240)"/>
<wire from="(290,260)" to="(290,270)"/>
<wire from="(90,250)" to="(130,250)"/>
<wire from="(100,200)" to="(110,200)"/>
<wire from="(270,280)" to="(270,330)"/>
<wire from="(520,120)" to="(520,380)"/>
<wire from="(280,320)" to="(440,320)"/>
<wire from="(310,270)" to="(310,280)"/>
<wire from="(240,10)" to="(420,10)"/>
<wire from="(140,190)" to="(140,250)"/>
<wire from="(250,230)" to="(300,230)"/>
<wire from="(120,320)" to="(240,320)"/>
<wire from="(210,340)" to="(240,340)"/>
<wire from="(250,280)" to="(260,280)"/>
<wire from="(290,260)" to="(300,260)"/>
<wire from="(230,120)" to="(520,120)"/>
<wire from="(290,430)" to="(290,440)"/>
<wire from="(100,220)" to="(110,220)"/>
<wire from="(320,270)" to="(320,290)"/>
<wire from="(310,280)" to="(350,280)"/>
<wire from="(290,370)" to="(290,430)"/>
<wire from="(210,40)" to="(210,120)"/>
<wire from="(130,250)" to="(130,260)"/>
<wire from="(120,180)" to="(120,270)"/>
<wire from="(150,270)" to="(150,370)"/>
<wire from="(110,220)" to="(160,220)"/>
<wire from="(210,120)" to="(210,180)"/>
<wire from="(420,10)" to="(420,190)"/>
<wire from="(40,120)" to="(40,530)"/>
<wire from="(240,440)" to="(290,440)"/>
<comp lib="0" loc="(110,220)" name="Pull Resistor">
<a name="facing" val="north"/>
</comp>
<comp lib="1" loc="(310,300)" name="NOT Gate">
<a name="facing" val="west"/>
</comp>
<comp lib="0" loc="(100,200)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Pin"/>
</comp>
<comp lib="0" loc="(220,450)" name="Splitter"/>
<comp lib="0" loc="(250,220)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(80,250)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Sin"/>
</comp>
<comp lib="4" loc="(420,370)" name="Counter">
<a name="width" val="4"/>
<a name="max" val="0x8"/>
<a name="ongoal" val="stay"/>
</comp>
<comp lib="1" loc="(320,260)" name="Controlled Buffer"/>
<comp lib="0" loc="(200,470)" name="Clock">
<a name="facing" val="north"/>
</comp>
<comp lib="4" loc="(220,450)" name="Counter">
<a name="width" val="2"/>
<a name="max" val="0x3"/>
</comp>
<comp lib="1" loc="(320,290)" name="Controlled Buffer"/>
<comp lib="4" loc="(150,260)" name="Shift Register">
<a name="length" val="9"/>
</comp>
<comp lib="0" loc="(100,220)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Pload"/>
</comp>
<comp lib="0" loc="(250,300)" name="Splitter">
<a name="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="0" loc="(300,230)" name="Constant">
<a name="facing" val="west"/>
<a name="value" val="0x0"/>
</comp>
<comp lib="0" loc="(400,270)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Sout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="0" loc="(110,200)" name="Pull Resistor"/>
<comp lib="0" loc="(80,270)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Trans"/>
</comp>
<comp lib="0" loc="(440,320)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Pout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="4" loc="(240,10)" name="D Flip-Flop"/>
<comp lib="0" loc="(90,280)" name="Pull Resistor">
<a name="facing" val="north"/>
</comp>
<comp lib="1" loc="(270,330)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(100,270)" name="Pull Resistor">
<a name="facing" val="north"/>
</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="(390,260)" to="(390,280)"/>
<wire from="(320,240)" to="(350,240)"/>
<wire from="(320,220)" to="(320,240)"/>
<wire from="(280,270)" to="(350,270)"/>
<wire from="(230,220)" to="(320,220)"/>
<wire from="(380,260)" to="(390,260)"/>
<wire from="(500,190)" to="(500,230)"/>
<wire from="(480,240)" to="(500,240)"/>
<wire from="(430,230)" to="(450,230)"/>
<wire from="(420,240)" to="(420,320)"/>
<wire from="(230,280)" to="(390,280)"/>
<wire from="(270,240)" to="(270,250)"/>
<wire from="(430,230)" to="(430,300)"/>
<wire from="(300,190)" to="(500,190)"/>
<wire from="(300,190)" to="(300,260)"/>
<wire from="(230,340)" to="(500,340)"/>
<wire from="(280,260)" to="(280,270)"/>
<wire from="(230,260)" to="(280,260)"/>
<wire from="(480,230)" to="(500,230)"/>
<wire from="(230,320)" to="(420,320)"/>
<wire from="(420,240)" to="(450,240)"/>
<wire from="(380,250)" to="(450,250)"/>
<wire from="(300,260)" to="(350,260)"/>
<wire from="(500,240)" to="(500,340)"/>
<wire from="(270,250)" to="(350,250)"/>
<wire from="(230,300)" to="(430,300)"/>
<wire from="(230,240)" to="(270,240)"/>
<comp loc="(480,230)" name="Reciver"/>
<comp lib="0" loc="(230,260)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Trans"/>
</comp>
<comp lib="0" loc="(230,240)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="SPload"/>
</comp>
<comp lib="0" loc="(230,340)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="RPout"/>
</comp>
<comp lib="0" loc="(230,280)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="SPout"/>
</comp>
<comp loc="(380,250)" name="Sender"/>
<comp lib="0" loc="(230,320)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="RPload"/>
</comp>
<comp lib="0" loc="(230,220)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="SPin"/>
</comp>
<comp lib="0" loc="(230,300)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="RPin"/>
</comp>
</circuit>
<circuit name="Reciver">
<a name="circuit" val="Reciver"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(810,70)" to="(810,590)"/>
<wire from="(560,450)" to="(770,450)"/>
<wire from="(270,50)" to="(430,50)"/>
<wire from="(510,100)" to="(580,100)"/>
<wire from="(390,150)" to="(410,150)"/>
<wire from="(90,390)" to="(120,390)"/>
<wire from="(270,370)" to="(270,380)"/>
<wire from="(240,320)" to="(260,320)"/>
<wire from="(600,180)" to="(630,180)"/>
<wire from="(360,170)" to="(390,170)"/>
<wire from="(380,100)" to="(380,110)"/>
<wire from="(390,150)" to="(390,170)"/>
<wire from="(770,450)" to="(770,530)"/>
<wire from="(390,260)" to="(470,260)"/>
<wire from="(90,370)" to="(130,370)"/>
<wire from="(320,70)" to="(370,70)"/>
<wire from="(580,180)" to="(600,180)"/>
<wire from="(150,230)" to="(220,230)"/>
<wire from="(350,90)" to="(350,130)"/>
<wire from="(240,260)" to="(240,320)"/>
<wire from="(290,590)" to="(810,590)"/>
<wire from="(470,70)" to="(470,180)"/>
<wire from="(470,70)" to="(810,70)"/>
<wire from="(220,300)" to="(270,300)"/>
<wire from="(280,620)" to="(730,620)"/>
<wire from="(180,260)" to="(200,260)"/>
<wire from="(290,550)" to="(290,590)"/>
<wire from="(200,520)" to="(280,520)"/>
<wire from="(410,70)" to="(420,70)"/>
<wire from="(270,300)" to="(270,310)"/>
<wire from="(220,230)" to="(220,300)"/>
<wire from="(260,140)" to="(260,170)"/>
<wire from="(560,190)" to="(560,450)"/>
<wire from="(90,390)" to="(90,410)"/>
<wire from="(180,290)" to="(180,390)"/>
<wire from="(200,170)" to="(200,260)"/>
<wire from="(400,100)" to="(410,100)"/>
<wire from="(420,70)" to="(470,70)"/>
<wire from="(370,230)" to="(420,230)"/>
<wire from="(410,130)" to="(550,130)"/>
<wire from="(430,450)" to="(560,450)"/>
<wire from="(710,530)" to="(730,530)"/>
<wire from="(270,50)" to="(270,120)"/>
<wire from="(120,210)" to="(130,210)"/>
<wire from="(580,100)" to="(580,120)"/>
<wire from="(120,330)" to="(140,330)"/>
<wire from="(240,340)" to="(240,450)"/>
<wire from="(420,70)" to="(420,110)"/>
<wire from="(240,260)" to="(370,260)"/>
<wire from="(240,450)" to="(430,450)"/>
<wire from="(160,290)" to="(180,290)"/>
<wire from="(120,230)" to="(150,230)"/>
<wire from="(730,530)" to="(730,620)"/>
<wire from="(280,540)" to="(280,620)"/>
<wire from="(420,110)" to="(420,230)"/>
<wire from="(350,90)" to="(370,90)"/>
<wire from="(120,280)" to="(130,280)"/>
<wire from="(400,110)" to="(420,110)"/>
<wire from="(450,280)" to="(450,380)"/>
<wire from="(120,250)" to="(130,250)"/>
<wire from="(240,340)" to="(260,340)"/>
<wire from="(200,330)" to="(200,520)"/>
<wire from="(200,330)" to="(260,330)"/>
<wire from="(90,410)" to="(120,410)"/>
<wire from="(470,180)" to="(550,180)"/>
<wire from="(90,370)" to="(90,390)"/>
<wire from="(410,100)" to="(410,130)"/>
<wire from="(410,130)" to="(410,150)"/>
<wire from="(570,210)" to="(600,210)"/>
<wire from="(320,70)" to="(320,170)"/>
<wire from="(350,350)" to="(390,350)"/>
<wire from="(130,210)" to="(270,210)"/>
<wire from="(130,280)" to="(130,370)"/>
<wire from="(270,380)" to="(450,380)"/>
<wire from="(580,140)" to="(630,140)"/>
<wire from="(200,260)" to="(200,330)"/>
<wire from="(370,230)" to="(370,260)"/>
<wire from="(140,270)" to="(150,270)"/>
<wire from="(200,170)" to="(260,170)"/>
<wire from="(160,390)" to="(180,390)"/>
<wire from="(430,50)" to="(430,450)"/>
<wire from="(300,130)" to="(350,130)"/>
<wire from="(160,280)" to="(160,290)"/>
<wire from="(310,530)" to="(370,530)"/>
<wire from="(140,270)" to="(140,330)"/>
<wire from="(630,140)" to="(630,180)"/>
<wire from="(600,180)" to="(600,210)"/>
<wire from="(130,250)" to="(150,250)"/>
<wire from="(390,260)" to="(390,350)"/>
<wire from="(570,190)" to="(570,210)"/>
<wire from="(270,210)" to="(270,290)"/>
<wire from="(730,530)" to="(770,530)"/>
<wire from="(450,280)" to="(470,280)"/>
<comp lib="5" loc="(510,100)" name="Button"/>
<comp lib="1" loc="(300,130)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
<a name="negate1" val="true"/>
</comp>
<comp lib="0" loc="(130,250)" name="Pull Resistor"/>
<comp lib="0" loc="(360,170)" name="Pull Resistor"/>
<comp lib="0" loc="(470,280)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="Pout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(380,110)" name="Controlled Buffer">
<a name="facing" val="west"/>
<a name="control" val="left"/>
</comp>
<comp lib="4" loc="(580,170)" name="Counter">
<a name="width" val="4"/>
<a name="max" val="0x7"/>
</comp>
<comp lib="1" loc="(390,120)" name="NOT Gate">
<a name="facing" val="north"/>
</comp>
<comp lib="4" loc="(160,390)" name="T Flip-Flop"/>
<comp lib="0" loc="(130,210)" name="Pull Resistor"/>
<comp lib="2" loc="(310,530)" name="Multiplexer">
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="5" loc="(120,330)" name="Button"/>
<comp lib="2" loc="(180,260)" name="Multiplexer">
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="0" loc="(150,230)" name="Pull Resistor"/>
<comp lib="0" loc="(120,250)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Sin"/>
</comp>
<comp lib="4" loc="(410,70)" name="D Flip-Flop"/>
<comp lib="0" loc="(370,540)" name="Clock"/>
<comp lib="1" loc="(550,130)" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(270,290)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="4" loc="(370,530)" name="Shift Register">
<a name="length" val="32"/>
</comp>
<comp lib="0" loc="(470,260)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="Sout"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(320,170)" name="NOT Gate"/>
<comp lib="5" loc="(120,280)" name="Button">
<a name="label" val="Toggle"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(120,210)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="Pin"/>
</comp>
<comp lib="0" loc="(270,370)" name="Splitter">
<a name="facing" val="north"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
<a name="appear" val="right"/>
</comp>
<comp lib="0" loc="(120,230)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="Pload"/>
</comp>
<comp lib="4" loc="(260,330)" name="Shift Register"/>
<comp lib="0" loc="(290,170)" name="Clock"/>
</circuit>
</project>