stuff
This commit is contained in:
parent
048af9850e
commit
0f61e39fa5
418
cpu 4.circ
Normal file
418
cpu 4.circ
Normal file
@ -0,0 +1,418 @@
|
||||
<?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"/>
|
||||
<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="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"/>
|
||||
</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"/>
|
||||
</circuit>
|
||||
<circuit name="CPU">
|
||||
<a name="circuit" val="CPU"/>
|
||||
<a name="clabel" val=""/>
|
||||
<a name="clabelup" val="east"/>
|
||||
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||
<wire from="(780,80)" to="(820,80)"/>
|
||||
<wire from="(510,10)" to="(510,300)"/>
|
||||
<wire from="(510,310)" to="(510,360)"/>
|
||||
<wire from="(170,430)" to="(700,430)"/>
|
||||
<wire from="(700,60)" to="(700,430)"/>
|
||||
<wire from="(550,350)" to="(580,350)"/>
|
||||
<wire from="(680,50)" to="(680,140)"/>
|
||||
<wire from="(150,50)" to="(170,50)"/>
|
||||
<wire from="(510,300)" to="(530,300)"/>
|
||||
<wire from="(160,70)" to="(160,440)"/>
|
||||
<wire from="(500,380)" to="(530,380)"/>
|
||||
<wire from="(500,30)" to="(500,380)"/>
|
||||
<wire from="(510,360)" to="(520,360)"/>
|
||||
<wire from="(480,340)" to="(480,440)"/>
|
||||
<wire from="(450,440)" to="(480,440)"/>
|
||||
<wire from="(530,370)" to="(530,380)"/>
|
||||
<wire from="(710,70)" to="(740,70)"/>
|
||||
<wire from="(790,90)" to="(860,90)"/>
|
||||
<wire from="(450,260)" to="(520,260)"/>
|
||||
<wire from="(670,60)" to="(670,150)"/>
|
||||
<wire from="(560,360)" to="(580,360)"/>
|
||||
<wire from="(610,270)" to="(630,270)"/>
|
||||
<wire from="(680,140)" to="(760,140)"/>
|
||||
<wire from="(630,270)" to="(840,270)"/>
|
||||
<wire from="(570,280)" to="(580,280)"/>
|
||||
<wire from="(820,50)" to="(820,80)"/>
|
||||
<wire from="(710,70)" to="(710,350)"/>
|
||||
<wire from="(840,70)" to="(840,270)"/>
|
||||
<wire from="(480,280)" to="(520,280)"/>
|
||||
<wire from="(170,50)" to="(170,430)"/>
|
||||
<wire from="(560,40)" to="(560,360)"/>
|
||||
<wire from="(210,50)" to="(680,50)"/>
|
||||
<wire from="(210,30)" to="(500,30)"/>
|
||||
<wire from="(570,20)" to="(570,280)"/>
|
||||
<wire from="(840,70)" to="(860,70)"/>
|
||||
<wire from="(210,60)" to="(670,60)"/>
|
||||
<wire from="(150,30)" to="(180,30)"/>
|
||||
<wire from="(550,270)" to="(580,270)"/>
|
||||
<wire from="(760,100)" to="(760,140)"/>
|
||||
<wire from="(610,350)" to="(710,350)"/>
|
||||
<wire from="(160,440)" to="(450,440)"/>
|
||||
<wire from="(630,270)" to="(630,310)"/>
|
||||
<wire from="(210,20)" to="(570,20)"/>
|
||||
<wire from="(480,280)" to="(480,340)"/>
|
||||
<wire from="(210,10)" to="(510,10)"/>
|
||||
<wire from="(820,50)" to="(860,50)"/>
|
||||
<wire from="(510,310)" to="(630,310)"/>
|
||||
<wire from="(450,260)" to="(450,440)"/>
|
||||
<wire from="(670,150)" to="(790,150)"/>
|
||||
<wire from="(530,290)" to="(530,300)"/>
|
||||
<wire from="(790,90)" to="(790,150)"/>
|
||||
<wire from="(480,340)" to="(520,340)"/>
|
||||
<wire from="(210,40)" to="(560,40)"/>
|
||||
<wire from="(700,60)" to="(740,60)"/>
|
||||
<wire from="(150,70)" to="(160,70)"/>
|
||||
<comp lib="4" loc="(610,350)" name="Register">
|
||||
<a name="label" val="P"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(860,70)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="8"/>
|
||||
<a name="label" val="Dout"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(150,30)" name="Pin">
|
||||
<a name="width" val="5"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="instr"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(150,50)" name="Pin">
|
||||
<a name="width" val="8"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="addr/imm"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(860,90)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="~R/W"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp loc="(210,10)" name="ins dec"/>
|
||||
<comp lib="0" loc="(860,50)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="8"/>
|
||||
<a name="label" val="Addr"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(610,270)" name="Register">
|
||||
<a name="label" val="A"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(780,80)" name="Multiplexer">
|
||||
<a name="select" val="2"/>
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(150,70)" name="Pin">
|
||||
<a name="width" val="8"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="Din"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(550,270)" name="Multiplexer">
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(550,350)" name="Multiplexer">
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
<circuit name="ALU">
|
||||
<a name="circuit" val="ALU"/>
|
||||
<a name="clabel" val=""/>
|
||||
<a name="clabelup" val="east"/>
|
||||
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||
<wire from="(210,370)" to="(230,370)"/>
|
||||
<wire from="(210,250)" to="(210,310)"/>
|
||||
<wire from="(190,230)" to="(200,230)"/>
|
||||
<wire from="(200,410)" to="(330,410)"/>
|
||||
<wire from="(290,260)" to="(310,260)"/>
|
||||
<wire from="(200,230)" to="(200,410)"/>
|
||||
<wire from="(190,210)" to="(220,210)"/>
|
||||
<wire from="(190,190)" to="(210,190)"/>
|
||||
<wire from="(270,200)" to="(280,200)"/>
|
||||
<wire from="(210,310)" to="(230,310)"/>
|
||||
<wire from="(210,190)" to="(210,250)"/>
|
||||
<wire from="(220,270)" to="(230,270)"/>
|
||||
<wire from="(270,260)" to="(280,260)"/>
|
||||
<wire from="(280,250)" to="(310,250)"/>
|
||||
<wire from="(220,210)" to="(230,210)"/>
|
||||
<wire from="(280,200)" to="(280,240)"/>
|
||||
<wire from="(270,320)" to="(290,320)"/>
|
||||
<wire from="(210,310)" to="(210,370)"/>
|
||||
<wire from="(210,190)" to="(230,190)"/>
|
||||
<wire from="(270,370)" to="(300,370)"/>
|
||||
<wire from="(210,250)" to="(230,250)"/>
|
||||
<wire from="(280,240)" to="(310,240)"/>
|
||||
<wire from="(330,280)" to="(330,410)"/>
|
||||
<wire from="(300,270)" to="(310,270)"/>
|
||||
<wire from="(280,250)" to="(280,260)"/>
|
||||
<wire from="(300,270)" to="(300,370)"/>
|
||||
<wire from="(220,210)" to="(220,270)"/>
|
||||
<wire from="(290,260)" to="(290,320)"/>
|
||||
<comp lib="0" loc="(230,330)" name="Constant">
|
||||
<a name="width" val="8"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(270,260)" name="Subtractor"/>
|
||||
<comp lib="0" loc="(190,210)" name="Pin">
|
||||
<a name="width" val="8"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="B"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(350,260)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="8"/>
|
||||
<a name="label" val="R"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(350,260)" name="Multiplexer">
|
||||
<a name="select" val="2"/>
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(270,320)" name="Adder"/>
|
||||
<comp lib="0" loc="(190,190)" name="Pin">
|
||||
<a name="width" val="8"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="A"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(270,380)" name="Subtractor"/>
|
||||
<comp lib="3" loc="(270,200)" name="Adder"/>
|
||||
<comp lib="0" loc="(190,230)" name="Pin">
|
||||
<a name="width" val="2"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="Op"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(230,390)" name="Constant">
|
||||
<a name="width" val="8"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
<circuit name="ins dec">
|
||||
<a name="circuit" val="ins dec"/>
|
||||
<a name="clabel" val=""/>
|
||||
<a name="clabelup" val="east"/>
|
||||
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||
<wire from="(240,40)" to="(370,40)"/>
|
||||
<wire from="(600,200)" to="(610,200)"/>
|
||||
<wire from="(580,220)" to="(610,220)"/>
|
||||
<wire from="(570,140)" to="(610,140)"/>
|
||||
<wire from="(490,130)" to="(490,180)"/>
|
||||
<wire from="(390,20)" to="(390,120)"/>
|
||||
<wire from="(480,50)" to="(480,60)"/>
|
||||
<wire from="(240,30)" to="(380,30)"/>
|
||||
<wire from="(380,140)" to="(410,140)"/>
|
||||
<wire from="(390,120)" to="(410,120)"/>
|
||||
<wire from="(370,150)" to="(370,240)"/>
|
||||
<wire from="(570,90)" to="(630,90)"/>
|
||||
<wire from="(530,60)" to="(570,60)"/>
|
||||
<wire from="(440,170)" to="(470,170)"/>
|
||||
<wire from="(240,20)" to="(390,20)"/>
|
||||
<wire from="(340,80)" to="(340,190)"/>
|
||||
<wire from="(360,160)" to="(410,160)"/>
|
||||
<wire from="(380,30)" to="(500,30)"/>
|
||||
<wire from="(480,50)" to="(560,50)"/>
|
||||
<wire from="(510,30)" to="(510,120)"/>
|
||||
<wire from="(340,270)" to="(440,270)"/>
|
||||
<wire from="(240,10)" to="(400,10)"/>
|
||||
<wire from="(350,180)" to="(350,250)"/>
|
||||
<wire from="(350,180)" to="(410,180)"/>
|
||||
<wire from="(560,50)" to="(560,160)"/>
|
||||
<wire from="(360,60)" to="(460,60)"/>
|
||||
<wire from="(400,10)" to="(400,110)"/>
|
||||
<wire from="(460,130)" to="(490,130)"/>
|
||||
<wire from="(570,90)" to="(570,140)"/>
|
||||
<wire from="(490,180)" to="(500,180)"/>
|
||||
<wire from="(460,140)" to="(530,140)"/>
|
||||
<wire from="(190,340)" to="(220,340)"/>
|
||||
<wire from="(470,170)" to="(470,190)"/>
|
||||
<wire from="(470,190)" to="(500,190)"/>
|
||||
<wire from="(590,240)" to="(590,280)"/>
|
||||
<wire from="(470,250)" to="(580,250)"/>
|
||||
<wire from="(240,50)" to="(480,50)"/>
|
||||
<wire from="(340,190)" to="(460,190)"/>
|
||||
<wire from="(380,30)" to="(380,140)"/>
|
||||
<wire from="(510,120)" to="(610,120)"/>
|
||||
<wire from="(570,50)" to="(570,60)"/>
|
||||
<wire from="(350,250)" to="(440,250)"/>
|
||||
<wire from="(370,40)" to="(370,150)"/>
|
||||
<wire from="(330,90)" to="(330,260)"/>
|
||||
<wire from="(240,60)" to="(360,60)"/>
|
||||
<wire from="(330,260)" to="(330,290)"/>
|
||||
<wire from="(350,70)" to="(350,180)"/>
|
||||
<wire from="(590,240)" to="(610,240)"/>
|
||||
<wire from="(460,60)" to="(460,110)"/>
|
||||
<wire from="(600,190)" to="(600,200)"/>
|
||||
<wire from="(540,190)" to="(560,190)"/>
|
||||
<wire from="(470,280)" to="(590,280)"/>
|
||||
<wire from="(510,30)" to="(580,30)"/>
|
||||
<wire from="(330,260)" to="(440,260)"/>
|
||||
<wire from="(240,80)" to="(340,80)"/>
|
||||
<wire from="(460,140)" to="(460,190)"/>
|
||||
<wire from="(220,330)" to="(220,340)"/>
|
||||
<wire from="(530,60)" to="(530,140)"/>
|
||||
<wire from="(240,70)" to="(350,70)"/>
|
||||
<wire from="(460,110)" to="(520,110)"/>
|
||||
<wire from="(560,190)" to="(600,190)"/>
|
||||
<wire from="(550,100)" to="(550,180)"/>
|
||||
<wire from="(500,30)" to="(500,60)"/>
|
||||
<wire from="(520,20)" to="(580,20)"/>
|
||||
<wire from="(370,240)" to="(440,240)"/>
|
||||
<wire from="(330,290)" to="(440,290)"/>
|
||||
<wire from="(490,100)" to="(550,100)"/>
|
||||
<wire from="(340,190)" to="(340,270)"/>
|
||||
<wire from="(630,30)" to="(630,90)"/>
|
||||
<wire from="(570,50)" to="(580,50)"/>
|
||||
<wire from="(390,20)" to="(510,20)"/>
|
||||
<wire from="(560,160)" to="(610,160)"/>
|
||||
<wire from="(400,110)" to="(410,110)"/>
|
||||
<wire from="(240,90)" to="(330,90)"/>
|
||||
<wire from="(580,30)" to="(580,40)"/>
|
||||
<wire from="(360,60)" to="(360,160)"/>
|
||||
<wire from="(580,220)" to="(580,250)"/>
|
||||
<wire from="(510,20)" to="(510,30)"/>
|
||||
<wire from="(370,150)" to="(410,150)"/>
|
||||
<wire from="(400,10)" to="(580,10)"/>
|
||||
<wire from="(490,90)" to="(490,100)"/>
|
||||
<wire from="(550,180)" to="(610,180)"/>
|
||||
<wire from="(520,20)" to="(520,110)"/>
|
||||
<comp lib="1" loc="(440,170)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,220)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="~R/W"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(560,190)" name="Pull Resistor">
|
||||
<a name="facing" val="north"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,140)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="a en"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(490,90)" name="OR Gate">
|
||||
<a name="facing" val="south"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,160)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="p mux sel"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,180)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="p en"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(630,30)" name="OR Gate">
|
||||
<a name="inputs" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,240)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="IO"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(220,330)" name="Decoder">
|
||||
<a name="select" val="5"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,120)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="a mux sel"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(470,280)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(610,200)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="width" val="2"/>
|
||||
<a name="label" val="addr select"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(470,250)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="3"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(540,190)" name="Priority Encoder">
|
||||
<a name="select" val="2"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(460,130)" name="OR Gate">
|
||||
<a name="inputs" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(190,340)" name="Pin">
|
||||
<a name="width" val="5"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="instruction"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
</project>
|
Loading…
Reference in New Issue
Block a user