This commit is contained in:
pjht 2016-03-17 14:03:26 -05:00
parent fafcf4a2c4
commit 10cec9c449
3 changed files with 825 additions and 468 deletions

File diff suppressed because it is too large Load Diff

View File

@ -15,4 +15,6 @@
0E-JMPNZ
0F-JMPC
10-JMPNC
11-HLT
11-IN
12-OUT
13-HLT

175
cpu87.circ Normal file
View File

@ -0,0 +1,175 @@
<?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">
<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="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"/>
<comp loc="(310,340)" name="ROM/RAM"/>
</circuit>
<circuit name="ROM/RAM">
<a name="circuit" val="ROM/RAM"/>
<a name="clabel" val=""/>
<a name="clabelup" val="east"/>
<a name="clabelfont" val="SansSerif plain 12"/>
<wire from="(560,420)" to="(580,420)"/>
<wire from="(590,290)" to="(590,310)"/>
<wire from="(510,300)" to="(550,300)"/>
<wire from="(480,310)" to="(590,310)"/>
<wire from="(550,290)" to="(550,300)"/>
<wire from="(410,300)" to="(510,300)"/>
<wire from="(440,120)" to="(440,250)"/>
<wire from="(610,420)" to="(620,420)"/>
<wire from="(510,300)" to="(510,420)"/>
<wire from="(470,430)" to="(590,430)"/>
<wire from="(440,250)" to="(520,250)"/>
<wire from="(440,370)" to="(530,370)"/>
<wire from="(310,340)" to="(310,380)"/>
<wire from="(620,410)" to="(620,420)"/>
<wire from="(210,380)" to="(310,380)"/>
<wire from="(580,290)" to="(580,320)"/>
<wire from="(460,270)" to="(520,270)"/>
<wire from="(580,410)" to="(590,410)"/>
<wire from="(410,300)" to="(410,430)"/>
<wire from="(490,320)" to="(580,320)"/>
<wire from="(330,200)" to="(470,200)"/>
<wire from="(480,440)" to="(480,450)"/>
<wire from="(210,390)" to="(440,390)"/>
<wire from="(440,120)" to="(520,120)"/>
<wire from="(670,370)" to="(700,370)"/>
<wire from="(660,120)" to="(700,120)"/>
<wire from="(560,410)" to="(560,420)"/>
<wire from="(330,180)" to="(570,180)"/>
<wire from="(440,250)" to="(440,370)"/>
<wire from="(490,190)" to="(490,320)"/>
<wire from="(470,200)" to="(470,430)"/>
<wire from="(480,310)" to="(480,440)"/>
<wire from="(610,290)" to="(610,300)"/>
<wire from="(590,410)" to="(590,430)"/>
<wire from="(600,410)" to="(600,440)"/>
<wire from="(570,290)" to="(580,290)"/>
<wire from="(190,450)" to="(480,450)"/>
<wire from="(600,300)" to="(610,300)"/>
<wire from="(440,370)" to="(440,390)"/>
<wire from="(550,300)" to="(570,300)"/>
<wire from="(660,250)" to="(700,250)"/>
<wire from="(460,390)" to="(530,390)"/>
<wire from="(700,250)" to="(700,370)"/>
<wire from="(570,160)" to="(570,180)"/>
<wire from="(700,120)" to="(700,250)"/>
<wire from="(460,270)" to="(460,390)"/>
<wire from="(330,190)" to="(490,190)"/>
<wire from="(480,440)" to="(600,440)"/>
<wire from="(510,420)" to="(560,420)"/>
<wire from="(190,430)" to="(410,430)"/>
<comp lib="0" loc="(190,430)" name="Pin">
<a name="tristate" val="false"/>
<a name="label" val="str"/>
</comp>
<comp lib="0" loc="(770,250)" name="Pin">
<a name="facing" val="west"/>
<a name="output" val="true"/>
<a name="labelloc" val="east"/>
</comp>
<comp lib="1" loc="(600,300)" name="NOT Gate"/>
<comp lib="0" loc="(190,400)" name="Pin">
<a name="width" val="16"/>
<a name="tristate" val="false"/>
<a name="label" val="addr"/>
</comp>
<comp lib="2" loc="(310,340)" name="Decoder">
<a name="select" val="4"/>
<a name="disabled" val="0"/>
<a name="enable" val="false"/>
</comp>
<comp lib="4" loc="(660,120)" name="ROM">
<a name="addrWidth" val="12"/>
<a name="dataWidth" val="16"/>
<a name="contents">addr/data: 12 16
0
</a>
</comp>
<comp lib="0" loc="(190,450)" name="Clock"/>
<comp lib="1" loc="(610,420)" name="NOT Gate"/>
<comp lib="4" loc="(670,370)" name="RAM">
<a name="addrWidth" val="12"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="4" loc="(660,250)" name="RAM">
<a name="addrWidth" val="12"/>
<a name="bus" val="separate"/>
</comp>
<comp lib="0" loc="(190,400)" name="Splitter">
<a name="incoming" val="16"/>
<a name="bit0" val="1"/>
<a name="bit2" val="1"/>
<a name="bit3" val="1"/>
<a name="bit4" val="1"/>
<a name="bit5" val="1"/>
<a name="bit6" val="1"/>
<a name="bit7" val="1"/>
<a name="bit8" val="1"/>
<a name="bit9" val="1"/>
<a name="bit10" val="1"/>
<a name="bit11" val="1"/>
<a name="bit12" val="0"/>
<a name="bit13" val="0"/>
<a name="bit14" val="0"/>
<a name="bit15" val="0"/>
</comp>
</circuit>
</project>