logisim-stuff/SPI.circ
2015-12-06 13:58:28 -06:00

478 lines
17 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="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</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="Pull Resistor">
<a name="facing" val="north"/>
</tool>
<tool name="Clock">
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
<tool name="NOR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</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">
<tool name="LED">
<a name="facing" val="east"/>
</tool>
<tool name="DotMatrix">
<a name="matrixcols" val="8"/>
<a name="matrixrows" val="3"/>
</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>
<lib desc="file#handy stuff.circ" name="7"/>
<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"/>
<a name="label" val="sel"/>
</tool>
<tool lib="0" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="label" val="out"/>
</tool>
<tool lib="1" name="NOT Gate">
<a name="facing" val="west"/>
</tool>
<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="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</tool>
</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="(820,550)" to="(840,550)"/>
<wire from="(250,180)" to="(350,180)"/>
<wire from="(190,160)" to="(210,160)"/>
<wire from="(240,300)" to="(350,300)"/>
<wire from="(810,450)" to="(850,450)"/>
<wire from="(160,330)" to="(170,330)"/>
<wire from="(70,640)" to="(240,640)"/>
<wire from="(120,110)" to="(270,110)"/>
<wire from="(270,490)" to="(270,560)"/>
<wire from="(210,450)" to="(450,450)"/>
<wire from="(250,500)" to="(280,500)"/>
<wire from="(770,250)" to="(770,360)"/>
<wire from="(810,240)" to="(840,240)"/>
<wire from="(730,460)" to="(730,520)"/>
<wire from="(570,50)" to="(590,50)"/>
<wire from="(350,650)" to="(380,650)"/>
<wire from="(200,690)" to="(260,690)"/>
<wire from="(810,470)" to="(810,560)"/>
<wire from="(250,710)" to="(290,710)"/>
<wire from="(180,510)" to="(180,770)"/>
<wire from="(820,570)" to="(990,570)"/>
<wire from="(850,430)" to="(850,440)"/>
<wire from="(180,430)" to="(180,440)"/>
<wire from="(640,80)" to="(640,90)"/>
<wire from="(270,700)" to="(320,700)"/>
<wire from="(210,320)" to="(270,320)"/>
<wire from="(640,90)" to="(650,90)"/>
<wire from="(270,160)" to="(270,320)"/>
<wire from="(80,610)" to="(90,610)"/>
<wire from="(660,170)" to="(660,470)"/>
<wire from="(320,370)" to="(320,400)"/>
<wire from="(940,250)" to="(990,250)"/>
<wire from="(830,510)" to="(830,520)"/>
<wire from="(210,780)" to="(480,780)"/>
<wire from="(300,490)" to="(300,510)"/>
<wire from="(270,350)" to="(270,480)"/>
<wire from="(310,430)" to="(710,430)"/>
<wire from="(320,400)" to="(360,400)"/>
<wire from="(840,280)" to="(840,440)"/>
<wire from="(270,110)" to="(270,160)"/>
<wire from="(320,490)" to="(320,590)"/>
<wire from="(810,450)" to="(810,460)"/>
<wire from="(300,510)" to="(830,510)"/>
<wire from="(790,260)" to="(840,260)"/>
<wire from="(60,630)" to="(220,630)"/>
<wire from="(280,730)" to="(280,770)"/>
<wire from="(310,360)" to="(310,430)"/>
<wire from="(570,50)" to="(570,80)"/>
<wire from="(800,430)" to="(800,450)"/>
<wire from="(450,450)" to="(450,520)"/>
<wire from="(310,360)" to="(350,360)"/>
<wire from="(770,250)" to="(840,250)"/>
<wire from="(270,480)" to="(280,480)"/>
<wire from="(380,590)" to="(380,650)"/>
<wire from="(840,510)" to="(840,550)"/>
<wire from="(260,690)" to="(260,760)"/>
<wire from="(330,590)" to="(380,590)"/>
<wire from="(710,310)" to="(800,310)"/>
<wire from="(230,500)" to="(250,500)"/>
<wire from="(190,560)" to="(190,660)"/>
<wire from="(120,110)" to="(120,170)"/>
<wire from="(760,490)" to="(840,490)"/>
<wire from="(250,630)" to="(250,670)"/>
<wire from="(240,440)" to="(740,440)"/>
<wire from="(270,660)" to="(320,660)"/>
<wire from="(350,550)" to="(820,550)"/>
<wire from="(160,490)" to="(270,490)"/>
<wire from="(270,490)" to="(300,490)"/>
<wire from="(270,590)" to="(270,660)"/>
<wire from="(220,370)" to="(220,630)"/>
<wire from="(60,590)" to="(90,590)"/>
<wire from="(580,220)" to="(580,410)"/>
<wire from="(990,250)" to="(990,310)"/>
<wire from="(120,170)" to="(130,170)"/>
<wire from="(350,390)" to="(350,550)"/>
<wire from="(800,430)" to="(850,430)"/>
<wire from="(310,490)" to="(320,490)"/>
<wire from="(310,210)" to="(310,270)"/>
<wire from="(130,550)" to="(350,550)"/>
<wire from="(270,590)" to="(320,590)"/>
<wire from="(290,420)" to="(510,420)"/>
<wire from="(160,340)" to="(160,350)"/>
<wire from="(710,570)" to="(800,570)"/>
<wire from="(160,390)" to="(200,390)"/>
<wire from="(360,330)" to="(360,340)"/>
<wire from="(680,50)" to="(680,240)"/>
<wire from="(240,280)" to="(240,300)"/>
<wire from="(660,60)" to="(670,60)"/>
<wire from="(270,660)" to="(270,700)"/>
<wire from="(660,470)" to="(810,470)"/>
<wire from="(810,470)" to="(840,470)"/>
<wire from="(160,370)" to="(220,370)"/>
<wire from="(810,240)" to="(810,300)"/>
<wire from="(790,260)" to="(790,690)"/>
<wire from="(240,190)" to="(240,210)"/>
<wire from="(660,80)" to="(660,170)"/>
<wire from="(620,50)" to="(660,50)"/>
<wire from="(250,270)" to="(310,270)"/>
<wire from="(190,160)" to="(190,500)"/>
<wire from="(480,160)" to="(480,780)"/>
<wire from="(760,490)" to="(760,730)"/>
<wire from="(330,370)" to="(330,590)"/>
<wire from="(160,430)" to="(180,430)"/>
<wire from="(240,650)" to="(290,650)"/>
<wire from="(820,310)" to="(990,310)"/>
<wire from="(580,220)" to="(850,220)"/>
<wire from="(220,370)" to="(320,370)"/>
<wire from="(240,760)" to="(260,760)"/>
<wire from="(290,410)" to="(290,420)"/>
<wire from="(250,670)" to="(250,710)"/>
<wire from="(240,770)" to="(280,770)"/>
<wire from="(200,390)" to="(200,690)"/>
<wire from="(260,690)" to="(290,690)"/>
<wire from="(210,270)" to="(220,270)"/>
<wire from="(730,460)" to="(810,460)"/>
<wire from="(230,190)" to="(230,220)"/>
<wire from="(740,290)" to="(850,290)"/>
<wire from="(60,590)" to="(60,630)"/>
<wire from="(190,500)" to="(190,530)"/>
<wire from="(160,180)" to="(210,180)"/>
<wire from="(820,440)" to="(840,440)"/>
<wire from="(350,690)" to="(790,690)"/>
<wire from="(240,650)" to="(240,750)"/>
<wire from="(240,210)" to="(310,210)"/>
<wire from="(80,610)" to="(80,660)"/>
<wire from="(170,650)" to="(240,650)"/>
<wire from="(250,670)" to="(290,670)"/>
<wire from="(850,270)" to="(850,280)"/>
<wire from="(650,450)" to="(650,470)"/>
<wire from="(200,390)" to="(300,390)"/>
<wire from="(270,160)" to="(480,160)"/>
<wire from="(940,480)" to="(990,480)"/>
<wire from="(660,50)" to="(660,60)"/>
<wire from="(350,730)" to="(760,730)"/>
<wire from="(250,160)" to="(270,160)"/>
<wire from="(190,560)" to="(270,560)"/>
<wire from="(160,410)" to="(290,410)"/>
<wire from="(820,440)" to="(820,550)"/>
<wire from="(680,240)" to="(810,240)"/>
<wire from="(850,500)" to="(850,510)"/>
<wire from="(70,600)" to="(70,640)"/>
<wire from="(210,730)" to="(280,730)"/>
<wire from="(770,360)" to="(770,480)"/>
<wire from="(710,310)" to="(710,430)"/>
<wire from="(180,440)" to="(240,440)"/>
<wire from="(350,390)" to="(360,390)"/>
<wire from="(270,320)" to="(270,350)"/>
<wire from="(340,320)" to="(340,340)"/>
<wire from="(450,360)" to="(770,360)"/>
<wire from="(210,450)" to="(210,730)"/>
<wire from="(330,370)" to="(350,370)"/>
<wire from="(450,520)" to="(730,520)"/>
<wire from="(770,480)" to="(840,480)"/>
<wire from="(160,450)" to="(210,450)"/>
<wire from="(510,210)" to="(850,210)"/>
<wire from="(850,450)" to="(850,460)"/>
<wire from="(710,430)" to="(710,570)"/>
<wire from="(280,730)" to="(290,730)"/>
<wire from="(350,180)" to="(350,300)"/>
<wire from="(990,480)" to="(990,570)"/>
<wire from="(840,510)" to="(850,510)"/>
<wire from="(300,410)" to="(580,410)"/>
<wire from="(270,700)" to="(270,740)"/>
<wire from="(360,380)" to="(360,390)"/>
<wire from="(160,510)" to="(180,510)"/>
<wire from="(570,80)" to="(570,570)"/>
<wire from="(170,330)" to="(360,330)"/>
<wire from="(510,210)" to="(510,420)"/>
<wire from="(80,660)" to="(190,660)"/>
<wire from="(130,570)" to="(570,570)"/>
<wire from="(170,330)" to="(170,650)"/>
<wire from="(70,600)" to="(90,600)"/>
<wire from="(650,450)" to="(800,450)"/>
<wire from="(190,500)" to="(230,500)"/>
<wire from="(300,390)" to="(300,410)"/>
<wire from="(240,440)" to="(240,640)"/>
<wire from="(340,320)" to="(360,320)"/>
<wire from="(270,350)" to="(350,350)"/>
<wire from="(740,290)" to="(740,440)"/>
<wire from="(160,470)" to="(650,470)"/>
<wire from="(250,630)" to="(290,630)"/>
<wire from="(210,270)" to="(210,320)"/>
<wire from="(230,280)" to="(230,500)"/>
<wire from="(570,80)" to="(640,80)"/>
<wire from="(850,220)" to="(850,230)"/>
<wire from="(270,740)" to="(320,740)"/>
<wire from="(830,520)" to="(850,520)"/>
<wire from="(840,280)" to="(850,280)"/>
<wire from="(130,530)" to="(190,530)"/>
<wire from="(250,500)" to="(250,630)"/>
<wire from="(160,340)" to="(340,340)"/>
<comp lib="0" loc="(850,210)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="1" loc="(160,180)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(230,220)" name="Constant"/>
<comp lib="0" loc="(360,320)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="0" loc="(160,450)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="S2LD"/>
</comp>
<comp lib="0" loc="(160,490)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="S2DATAIN"/>
</comp>
<comp lib="1" loc="(350,650)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(850,520)" 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="1" loc="(660,80)" name="Controlled Buffer"/>
<comp lib="0" loc="(850,290)" 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="1" loc="(620,50)" name="NOT Gate"/>
<comp lib="0" loc="(160,410)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="S1DATAOUT"/>
</comp>
<comp lib="1" loc="(180,770)" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="5" loc="(90,590)" name="DotMatrix">
<a name="inputtype" val="row"/>
<a name="matrixcols" val="8"/>
<a name="matrixrows" val="3"/>
</comp>
<comp lib="1" loc="(350,730)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(660,170)" name="Pull Resistor">
<a name="facing" val="east"/>
</comp>
<comp lib="7" loc="(130,190)" name="one shot"/>
<comp lib="0" loc="(130,530)" name="Clock"/>
<comp lib="1" loc="(680,50)" name="Controlled Buffer"/>
<comp lib="4" loc="(250,160)" name="D Flip-Flop"/>
<comp lib="0" loc="(850,440)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="0" loc="(130,570)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="sel"/>
</comp>
<comp lib="0" loc="(680,50)" name="Pull Resistor"/>
<comp lib="1" loc="(350,690)" name="OR Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(320,720)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="1" loc="(320,640)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(160,350)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="MDATAOUT"/>
</comp>
<comp lib="4" loc="(250,260)" name="Counter">
<a name="width" val="3"/>
<a name="max" val="0x7"/>
</comp>
<comp lib="1" loc="(800,570)" name="Controlled Buffer">
<a name="facing" val="west"/>
</comp>
<comp lib="5" loc="(160,510)" name="LED">
<a name="facing" val="east"/>
<a name="label" val="SPIBUSY"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(160,330)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="MLD"/>
</comp>
<comp lib="0" loc="(160,470)" name="Pin">
<a name="width" val="8"/>
<a name="tristate" val="false"/>
<a name="label" val="S2DATAOUT"/>
</comp>
<comp lib="1" loc="(320,680)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="4" loc="(840,480)" name="Shift Register"/>
<comp lib="5" loc="(100,190)" name="Button">
<a name="label" val="START"/>
<a name="labelloc" val="west"/>
</comp>
<comp lib="0" loc="(130,550)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="res"/>
</comp>
<comp lib="0" loc="(160,430)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="S1DATAIN"/>
</comp>
<comp lib="4" loc="(840,250)" name="Shift Register"/>
<comp lib="1" loc="(310,490)" name="AND Gate">
<a name="size" val="30"/>
<a name="inputs" val="2"/>
</comp>
<comp lib="0" loc="(360,400)" 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="1" loc="(210,760)" name="OR Gate">
<a name="facing" val="west"/>
<a name="size" val="30"/>
<a name="inputs" val="3"/>
</comp>
<comp lib="0" loc="(160,390)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="S1LD"/>
</comp>
<comp lib="0" loc="(160,370)" name="Pin">
<a name="output" val="true"/>
<a name="width" val="8"/>
<a name="label" val="MDATAIN"/>
</comp>
<comp lib="4" loc="(350,360)" name="Shift Register"/>
<comp lib="1" loc="(800,310)" name="Controlled Buffer">
<a name="facing" val="west"/>
</comp>
</circuit>
</project>