Upload
This commit is contained in:
parent
fa95233f10
commit
8d120c25ed
22
cpu/asm.rb
Normal file
22
cpu/asm.rb
Normal file
@ -0,0 +1,22 @@
|
||||
instructionSet = { "lda" => ["0",true], "ldb" => ["1",true], "ldai" => ["2",true], "ldbi" => ["3",true], "add" => ["4",false], "sub" => ["5",false], "str" => ["6",true], "jmp" => ["7",true], "jmpc" => ["8",true], "jmpnc" => ["9",true], "jmpz" => ["a",true], "jmpnz" => ["b",true], "hlt" => ["c",false]}
|
||||
inFile = gets.chomp
|
||||
outFile = inFile.gsub(".asm",".code")
|
||||
outFile = File.open(outFile,"w")
|
||||
File.open(inFile,"r") do |f|
|
||||
outFile.puts("v2.0 raw")
|
||||
f.each_line do |line|
|
||||
line = line.split(" ")
|
||||
puts "Line:"+line.to_s
|
||||
ins = instructionSet[line[0]][0]
|
||||
requireArg = instructionSet[line[0]][1]
|
||||
puts "Ins:"+ins
|
||||
puts "arg?:"+requireArg.to_s
|
||||
if requireArg
|
||||
arg = line[1]
|
||||
puts "Arg:"+arg
|
||||
outFile.puts ins+arg
|
||||
else
|
||||
outFile.puts ins+"0"
|
||||
end
|
||||
end
|
||||
end
|
13
cpu/cpu ins set.txt
Normal file
13
cpu/cpu ins set.txt
Normal file
@ -0,0 +1,13 @@
|
||||
0-lda
|
||||
1-ldb
|
||||
2-ldai
|
||||
3-ldbi
|
||||
4-add
|
||||
5-sub
|
||||
6-str
|
||||
7-jmp
|
||||
8-jmpc
|
||||
9-jmpnc
|
||||
a-jmpz
|
||||
b-jmpnz
|
||||
c-hlt
|
504
cpu/cpu.circ
Normal file
504
cpu/cpu.circ
Normal file
@ -0,0 +1,504 @@
|
||||
<?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="west"/>
|
||||
<a name="fanout" val="3"/>
|
||||
<a name="incoming" val="3"/>
|
||||
</tool>
|
||||
<tool name="Pin">
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="pull" val="down"/>
|
||||
<a name="label" val="View"/>
|
||||
</tool>
|
||||
<tool name="Probe">
|
||||
<a name="radix" val="16"/>
|
||||
<a name="label" val="out"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</tool>
|
||||
<tool name="Tunnel">
|
||||
<a name="label" val="riv"/>
|
||||
</tool>
|
||||
<tool name="Pull Resistor">
|
||||
<a name="facing" val="north"/>
|
||||
</tool>
|
||||
<tool name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</tool>
|
||||
</lib>
|
||||
<lib desc="#Gates" name="1"/>
|
||||
<lib desc="#Plexers" name="2">
|
||||
<tool name="Multiplexer">
|
||||
<a name="facing" val="west"/>
|
||||
</tool>
|
||||
</lib>
|
||||
<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="width" val="4"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="in"/>
|
||||
</tool>
|
||||
<tool lib="0" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="zero"/>
|
||||
<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">
|
||||
<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="(130,330)" to="(130,650)"/>
|
||||
<wire from="(920,240)" to="(930,240)"/>
|
||||
<wire from="(520,470)" to="(550,470)"/>
|
||||
<wire from="(170,140)" to="(490,140)"/>
|
||||
<wire from="(1020,220)" to="(1030,220)"/>
|
||||
<wire from="(830,230)" to="(830,300)"/>
|
||||
<wire from="(830,230)" to="(860,230)"/>
|
||||
<wire from="(450,610)" to="(480,610)"/>
|
||||
<wire from="(430,480)" to="(430,650)"/>
|
||||
<wire from="(1060,240)" to="(1060,310)"/>
|
||||
<wire from="(920,180)" to="(930,180)"/>
|
||||
<wire from="(530,170)" to="(530,190)"/>
|
||||
<wire from="(530,570)" to="(670,570)"/>
|
||||
<wire from="(790,430)" to="(880,430)"/>
|
||||
<wire from="(540,580)" to="(540,620)"/>
|
||||
<wire from="(530,410)" to="(550,410)"/>
|
||||
<wire from="(510,650)" to="(550,650)"/>
|
||||
<wire from="(550,600)" to="(550,650)"/>
|
||||
<wire from="(820,360)" to="(820,400)"/>
|
||||
<wire from="(160,290)" to="(210,290)"/>
|
||||
<wire from="(950,210)" to="(950,220)"/>
|
||||
<wire from="(240,250)" to="(240,330)"/>
|
||||
<wire from="(160,270)" to="(160,290)"/>
|
||||
<wire from="(570,240)" to="(590,240)"/>
|
||||
<wire from="(890,180)" to="(920,180)"/>
|
||||
<wire from="(620,240)" to="(630,240)"/>
|
||||
<wire from="(580,500)" to="(790,500)"/>
|
||||
<wire from="(310,320)" to="(310,540)"/>
|
||||
<wire from="(580,370)" to="(620,370)"/>
|
||||
<wire from="(610,300)" to="(670,300)"/>
|
||||
<wire from="(770,220)" to="(770,230)"/>
|
||||
<wire from="(900,200)" to="(930,200)"/>
|
||||
<wire from="(800,450)" to="(900,450)"/>
|
||||
<wire from="(150,160)" to="(150,180)"/>
|
||||
<wire from="(760,580)" to="(760,690)"/>
|
||||
<wire from="(520,550)" to="(670,550)"/>
|
||||
<wire from="(400,230)" to="(400,240)"/>
|
||||
<wire from="(310,540)" to="(340,540)"/>
|
||||
<wire from="(340,520)" to="(340,540)"/>
|
||||
<wire from="(210,210)" to="(230,210)"/>
|
||||
<wire from="(460,600)" to="(470,600)"/>
|
||||
<wire from="(890,180)" to="(890,200)"/>
|
||||
<wire from="(470,570)" to="(470,600)"/>
|
||||
<wire from="(210,310)" to="(220,310)"/>
|
||||
<wire from="(700,210)" to="(760,210)"/>
|
||||
<wire from="(820,240)" to="(820,310)"/>
|
||||
<wire from="(510,490)" to="(550,490)"/>
|
||||
<wire from="(150,180)" to="(190,180)"/>
|
||||
<wire from="(980,230)" to="(980,250)"/>
|
||||
<wire from="(780,340)" to="(1000,340)"/>
|
||||
<wire from="(470,630)" to="(470,660)"/>
|
||||
<wire from="(390,240)" to="(400,240)"/>
|
||||
<wire from="(700,580)" to="(700,590)"/>
|
||||
<wire from="(850,470)" to="(1090,470)"/>
|
||||
<wire from="(500,410)" to="(500,510)"/>
|
||||
<wire from="(820,240)" to="(870,240)"/>
|
||||
<wire from="(500,210)" to="(540,210)"/>
|
||||
<wire from="(220,190)" to="(310,190)"/>
|
||||
<wire from="(790,330)" to="(1030,330)"/>
|
||||
<wire from="(900,200)" to="(900,260)"/>
|
||||
<wire from="(860,220)" to="(860,230)"/>
|
||||
<wire from="(810,200)" to="(850,200)"/>
|
||||
<wire from="(900,440)" to="(900,450)"/>
|
||||
<wire from="(890,440)" to="(890,460)"/>
|
||||
<wire from="(970,190)" to="(980,190)"/>
|
||||
<wire from="(800,270)" to="(800,280)"/>
|
||||
<wire from="(510,590)" to="(530,590)"/>
|
||||
<wire from="(580,420)" to="(630,420)"/>
|
||||
<wire from="(380,260)" to="(610,260)"/>
|
||||
<wire from="(900,380)" to="(900,390)"/>
|
||||
<wire from="(970,250)" to="(980,250)"/>
|
||||
<wire from="(470,670)" to="(950,670)"/>
|
||||
<wire from="(980,190)" to="(980,210)"/>
|
||||
<wire from="(340,230)" to="(340,240)"/>
|
||||
<wire from="(910,370)" to="(930,370)"/>
|
||||
<wire from="(250,160)" to="(250,690)"/>
|
||||
<wire from="(500,520)" to="(780,520)"/>
|
||||
<wire from="(1030,230)" to="(1030,330)"/>
|
||||
<wire from="(820,310)" to="(870,310)"/>
|
||||
<wire from="(680,190)" to="(760,190)"/>
|
||||
<wire from="(860,290)" to="(860,300)"/>
|
||||
<wire from="(130,330)" to="(240,330)"/>
|
||||
<wire from="(900,260)" to="(930,260)"/>
|
||||
<wire from="(850,410)" to="(850,470)"/>
|
||||
<wire from="(200,260)" to="(380,260)"/>
|
||||
<wire from="(540,380)" to="(550,380)"/>
|
||||
<wire from="(930,320)" to="(930,370)"/>
|
||||
<wire from="(220,310)" to="(800,310)"/>
|
||||
<wire from="(950,270)" to="(950,320)"/>
|
||||
<wire from="(670,300)" to="(830,300)"/>
|
||||
<wire from="(360,380)" to="(540,380)"/>
|
||||
<wire from="(630,270)" to="(630,420)"/>
|
||||
<wire from="(870,220)" to="(870,240)"/>
|
||||
<wire from="(650,260)" to="(650,460)"/>
|
||||
<wire from="(900,390)" to="(1000,390)"/>
|
||||
<wire from="(880,200)" to="(890,200)"/>
|
||||
<wire from="(980,210)" to="(990,210)"/>
|
||||
<wire from="(150,180)" to="(150,200)"/>
|
||||
<wire from="(670,300)" to="(670,460)"/>
|
||||
<wire from="(180,200)" to="(190,200)"/>
|
||||
<wire from="(510,560)" to="(520,560)"/>
|
||||
<wire from="(520,430)" to="(520,470)"/>
|
||||
<wire from="(1000,340)" to="(1000,390)"/>
|
||||
<wire from="(480,430)" to="(480,540)"/>
|
||||
<wire from="(1000,240)" to="(1000,340)"/>
|
||||
<wire from="(360,430)" to="(480,430)"/>
|
||||
<wire from="(950,410)" to="(950,670)"/>
|
||||
<wire from="(490,140)" to="(490,170)"/>
|
||||
<wire from="(470,180)" to="(470,320)"/>
|
||||
<wire from="(490,420)" to="(490,530)"/>
|
||||
<wire from="(200,210)" to="(200,260)"/>
|
||||
<wire from="(360,440)" to="(470,440)"/>
|
||||
<wire from="(700,140)" to="(700,210)"/>
|
||||
<wire from="(360,450)" to="(460,450)"/>
|
||||
<wire from="(800,280)" to="(850,280)"/>
|
||||
<wire from="(360,460)" to="(450,460)"/>
|
||||
<wire from="(720,590)" to="(730,590)"/>
|
||||
<wire from="(1080,120)" to="(1080,220)"/>
|
||||
<wire from="(870,290)" to="(870,310)"/>
|
||||
<wire from="(450,460)" to="(450,610)"/>
|
||||
<wire from="(590,240)" to="(590,530)"/>
|
||||
<wire from="(800,310)" to="(800,450)"/>
|
||||
<wire from="(360,470)" to="(440,470)"/>
|
||||
<wire from="(520,550)" to="(520,560)"/>
|
||||
<wire from="(220,240)" to="(220,310)"/>
|
||||
<wire from="(960,400)" to="(960,680)"/>
|
||||
<wire from="(610,230)" to="(610,260)"/>
|
||||
<wire from="(800,210)" to="(850,210)"/>
|
||||
<wire from="(800,310)" to="(820,310)"/>
|
||||
<wire from="(360,480)" to="(430,480)"/>
|
||||
<wire from="(460,600)" to="(460,680)"/>
|
||||
<wire from="(470,440)" to="(470,550)"/>
|
||||
<wire from="(830,300)" to="(860,300)"/>
|
||||
<wire from="(360,360)" to="(550,360)"/>
|
||||
<wire from="(980,230)" to="(990,230)"/>
|
||||
<wire from="(860,300)" to="(1050,300)"/>
|
||||
<wire from="(620,250)" to="(800,250)"/>
|
||||
<wire from="(130,280)" to="(130,330)"/>
|
||||
<wire from="(790,200)" to="(810,200)"/>
|
||||
<wire from="(470,630)" to="(480,630)"/>
|
||||
<wire from="(170,190)" to="(190,190)"/>
|
||||
<wire from="(170,140)" to="(170,190)"/>
|
||||
<wire from="(470,570)" to="(480,570)"/>
|
||||
<wire from="(900,260)" to="(900,270)"/>
|
||||
<wire from="(1030,220)" to="(1040,220)"/>
|
||||
<wire from="(520,430)" to="(550,430)"/>
|
||||
<wire from="(930,320)" to="(950,320)"/>
|
||||
<wire from="(700,560)" to="(730,560)"/>
|
||||
<wire from="(360,390)" to="(520,390)"/>
|
||||
<wire from="(500,120)" to="(1080,120)"/>
|
||||
<wire from="(580,460)" to="(650,460)"/>
|
||||
<wire from="(340,240)" to="(360,240)"/>
|
||||
<wire from="(360,400)" to="(510,400)"/>
|
||||
<wire from="(380,230)" to="(380,260)"/>
|
||||
<wire from="(780,340)" to="(780,520)"/>
|
||||
<wire from="(790,430)" to="(790,500)"/>
|
||||
<wire from="(510,620)" to="(540,620)"/>
|
||||
<wire from="(920,180)" to="(920,240)"/>
|
||||
<wire from="(910,220)" to="(910,350)"/>
|
||||
<wire from="(360,410)" to="(500,410)"/>
|
||||
<wire from="(1090,170)" to="(1090,470)"/>
|
||||
<wire from="(880,270)" to="(900,270)"/>
|
||||
<wire from="(540,580)" to="(670,580)"/>
|
||||
<wire from="(360,420)" to="(490,420)"/>
|
||||
<wire from="(1060,170)" to="(1090,170)"/>
|
||||
<wire from="(130,650)" to="(430,650)"/>
|
||||
<wire from="(520,390)" to="(520,430)"/>
|
||||
<wire from="(930,410)" to="(950,410)"/>
|
||||
<wire from="(490,530)" to="(590,530)"/>
|
||||
<wire from="(630,270)" to="(800,270)"/>
|
||||
<wire from="(700,580)" to="(730,580)"/>
|
||||
<wire from="(500,510)" to="(500,520)"/>
|
||||
<wire from="(530,370)" to="(530,410)"/>
|
||||
<wire from="(460,580)" to="(480,580)"/>
|
||||
<wire from="(610,260)" to="(610,300)"/>
|
||||
<wire from="(440,470)" to="(440,640)"/>
|
||||
<wire from="(930,400)" to="(960,400)"/>
|
||||
<wire from="(620,250)" to="(620,370)"/>
|
||||
<wire from="(1070,220)" to="(1080,220)"/>
|
||||
<wire from="(440,640)" to="(480,640)"/>
|
||||
<wire from="(470,660)" to="(470,670)"/>
|
||||
<wire from="(870,310)" to="(1060,310)"/>
|
||||
<wire from="(460,450)" to="(460,580)"/>
|
||||
<wire from="(510,400)" to="(510,490)"/>
|
||||
<wire from="(490,140)" to="(700,140)"/>
|
||||
<wire from="(210,290)" to="(210,310)"/>
|
||||
<wire from="(570,230)" to="(570,240)"/>
|
||||
<wire from="(800,210)" to="(800,250)"/>
|
||||
<wire from="(470,550)" to="(480,550)"/>
|
||||
<wire from="(630,230)" to="(630,240)"/>
|
||||
<wire from="(810,200)" to="(810,270)"/>
|
||||
<wire from="(540,380)" to="(540,450)"/>
|
||||
<wire from="(700,230)" to="(770,230)"/>
|
||||
<wire from="(670,460)" to="(890,460)"/>
|
||||
<wire from="(360,370)" to="(530,370)"/>
|
||||
<wire from="(470,170)" to="(490,170)"/>
|
||||
<wire from="(700,230)" to="(700,260)"/>
|
||||
<wire from="(720,540)" to="(720,590)"/>
|
||||
<wire from="(1050,240)" to="(1050,300)"/>
|
||||
<wire from="(530,570)" to="(530,590)"/>
|
||||
<wire from="(1030,170)" to="(1030,220)"/>
|
||||
<wire from="(810,270)" to="(850,270)"/>
|
||||
<wire from="(820,400)" to="(860,400)"/>
|
||||
<wire from="(550,600)" to="(670,600)"/>
|
||||
<wire from="(490,170)" to="(530,170)"/>
|
||||
<wire from="(460,680)" to="(960,680)"/>
|
||||
<wire from="(820,360)" to="(880,360)"/>
|
||||
<wire from="(150,160)" to="(250,160)"/>
|
||||
<wire from="(530,190)" to="(540,190)"/>
|
||||
<wire from="(500,120)" to="(500,210)"/>
|
||||
<wire from="(850,410)" to="(860,410)"/>
|
||||
<wire from="(540,450)" to="(550,450)"/>
|
||||
<wire from="(480,540)" to="(720,540)"/>
|
||||
<wire from="(500,510)" to="(550,510)"/>
|
||||
<wire from="(910,220)" to="(950,220)"/>
|
||||
<wire from="(250,690)" to="(760,690)"/>
|
||||
<wire from="(650,260)" to="(700,260)"/>
|
||||
<wire from="(310,320)" to="(470,320)"/>
|
||||
<wire from="(1030,230)" to="(1040,230)"/>
|
||||
<wire from="(790,330)" to="(790,430)"/>
|
||||
<wire from="(730,560)" to="(730,570)"/>
|
||||
<comp lib="0" loc="(880,420)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="appear" val="right"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(760,580)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="3"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(220,190)" name="Counter">
|
||||
<a name="width" val="4"/>
|
||||
<a name="max" val="0xf"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(450,190)" name="Splitter">
|
||||
<a name="incoming" val="8"/>
|
||||
<a name="bit1" val="0"/>
|
||||
<a name="bit2" val="0"/>
|
||||
<a name="bit3" val="0"/>
|
||||
<a name="bit4" val="1"/>
|
||||
<a name="bit5" val="1"/>
|
||||
<a name="bit6" val="1"/>
|
||||
<a name="bit7" val="1"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(790,200)" name="Multiplexer">
|
||||
<a name="width" val="4"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(230,210)" name="AND Gate">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(450,190)" name="RAM">
|
||||
<a name="addrWidth" val="4"/>
|
||||
<a name="bus" val="separate"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(340,520)" name="Decoder">
|
||||
<a name="select" val="4"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(700,590)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(160,270)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(700,560)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(880,200)" name="Register">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp loc="(1060,170)" name="zero?"/>
|
||||
<comp lib="1" loc="(580,460)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(910,420)" name="Splitter"/>
|
||||
<comp lib="4" loc="(910,420)" name="Register">
|
||||
<a name="width" val="2"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(1070,220)" name="Register">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(580,500)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(510,590)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(1020,220)" name="Multiplexer">
|
||||
<a name="width" val="4"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(580,420)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(970,190)" name="Adder">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(390,240)" name="NOT Gate"/>
|
||||
<comp lib="1" loc="(510,620)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="5" loc="(130,260)" name="Button"/>
|
||||
<comp lib="4" loc="(880,270)" name="Register">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(340,240)" name="Constant">
|
||||
<a name="value" val="0x0"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(970,250)" name="Subtractor">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(880,360)" name="Multiplexer">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(200,260)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(170,250)" name="Clock"/>
|
||||
<comp lib="1" loc="(510,560)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(310,210)" name="Constant">
|
||||
<a name="width" val="8"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(620,240)" name="NOT Gate"/>
|
||||
<comp lib="1" loc="(180,200)" name="NOT Gate"/>
|
||||
<comp lib="4" loc="(680,190)" name="RAM">
|
||||
<a name="addrWidth" val="4"/>
|
||||
<a name="dataWidth" val="4"/>
|
||||
<a name="bus" val="separate"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(580,370)" name="OR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(510,650)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
<circuit name="zero?">
|
||||
<a name="circuit" val="zero?"/>
|
||||
<a name="clabel" val="Z"/>
|
||||
<a name="clabelup" val="north"/>
|
||||
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||
<appear>
|
||||
<path d="M61,62 Q65,72 69,62" fill="none" stroke="#808080" stroke-width="2"/>
|
||||
<rect fill="none" height="21" stroke="#000000" stroke-width="2" width="32" x="49" y="60"/>
|
||||
<circ-port height="8" pin="160,270" width="8" x="46" y="66"/>
|
||||
<circ-port height="10" pin="250,250" width="10" x="75" y="65"/>
|
||||
<circ-anchor facing="east" height="6" width="6" x="77" y="67"/>
|
||||
</appear>
|
||||
<wire from="(180,230)" to="(210,230)"/>
|
||||
<wire from="(190,270)" to="(210,270)"/>
|
||||
<wire from="(200,250)" to="(200,260)"/>
|
||||
<wire from="(190,260)" to="(190,270)"/>
|
||||
<wire from="(180,250)" to="(200,250)"/>
|
||||
<wire from="(180,240)" to="(210,240)"/>
|
||||
<wire from="(180,260)" to="(190,260)"/>
|
||||
<wire from="(200,260)" to="(210,260)"/>
|
||||
<comp lib="1" loc="(250,250)" name="NOR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(160,270)" name="Splitter">
|
||||
<a name="fanout" val="4"/>
|
||||
<a name="incoming" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(250,250)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="zero"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(160,270)" name="Pin">
|
||||
<a name="width" val="4"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="in"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
</project>
|
7
cpu/inc.asm
Normal file
7
cpu/inc.asm
Normal file
@ -0,0 +1,7 @@
|
||||
lda 0
|
||||
ldb 1
|
||||
add
|
||||
jmpc 6
|
||||
str 0
|
||||
jmp 0
|
||||
hlt
|
8
cpu/inc.code
Normal file
8
cpu/inc.code
Normal file
@ -0,0 +1,8 @@
|
||||
v2.0 raw
|
||||
00
|
||||
11
|
||||
40
|
||||
86
|
||||
60
|
||||
70
|
||||
c0
|
2
mcode cpu/adder PFR
Normal file
2
mcode cpu/adder PFR
Normal file
@ -0,0 +1,2 @@
|
||||
v2.0 raw
|
||||
0 1 2 10000
|
2
mcode cpu/adder PR.txt
Normal file
2
mcode cpu/adder PR.txt
Normal file
@ -0,0 +1,2 @@
|
||||
v2.0 raw
|
||||
10000 20001 30002
|
6
mcode cpu/mcode cpu ins set.txt
Normal file
6
mcode cpu/mcode cpu ins set.txt
Normal file
@ -0,0 +1,6 @@
|
||||
1-ldx
|
||||
2-ldy
|
||||
3-add
|
||||
4-sub
|
||||
5-immload
|
||||
6-halt
|
654
mcode cpu/mcode cpu.circ
Normal file
654
mcode cpu/mcode cpu.circ
Normal file
@ -0,0 +1,654 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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="west"/>
|
||||
<a name="fanout" val="3"/>
|
||||
<a name="incoming" val="3"/>
|
||||
</tool>
|
||||
<tool name="Pin">
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="pull" val="down"/>
|
||||
<a name="label" val="View"/>
|
||||
</tool>
|
||||
<tool name="Probe">
|
||||
<a name="radix" val="16"/>
|
||||
<a name="label" val="out"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</tool>
|
||||
<tool name="Tunnel">
|
||||
<a name="label" val="riv"/>
|
||||
</tool>
|
||||
<tool name="Pull Resistor">
|
||||
<a name="facing" val="north"/>
|
||||
</tool>
|
||||
<tool name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</tool>
|
||||
</lib>
|
||||
<lib desc="#Gates" name="1">
|
||||
<tool name="NAND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</tool>
|
||||
</lib>
|
||||
<lib desc="#Plexers" name="2">
|
||||
<tool name="Multiplexer">
|
||||
<a name="select" val="2"/>
|
||||
<a name="width" val="8"/>
|
||||
</tool>
|
||||
</lib>
|
||||
<lib desc="#Arithmetic" name="3"/>
|
||||
<lib desc="#Memory" name="4">
|
||||
<tool name="ROM">
|
||||
<a name="dataWidth" val="16"/>
|
||||
<a name="contents">addr/data: 8 16
|
||||
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="Ctrl Button1" name="Menu Tool"/>
|
||||
<tool lib="6" map="Button3" name="Menu Tool"/>
|
||||
<tool lib="6" map="Button2" 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="execute"/>
|
||||
<a name="labelloc" val="south"/>
|
||||
</tool>
|
||||
<tool lib="0" name="Pin">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="LAR1"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</tool>
|
||||
<tool lib="1" name="NOT Gate">
|
||||
<a name="facing" val="north"/>
|
||||
</tool>
|
||||
<tool lib="1" name="AND Gate">
|
||||
<a name="facing" val="west"/>
|
||||
<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="main">
|
||||
<a name="circuit" val="main"/>
|
||||
<a name="clabel" val=""/>
|
||||
<a name="clabelup" val="east"/>
|
||||
<a name="clabelfont" val="SansSerif plain 12"/>
|
||||
<wire from="(790,430)" to="(790,490)"/>
|
||||
<wire from="(90,770)" to="(660,770)"/>
|
||||
<wire from="(630,710)" to="(650,710)"/>
|
||||
<wire from="(880,520)" to="(900,520)"/>
|
||||
<wire from="(930,600)" to="(940,600)"/>
|
||||
<wire from="(880,600)" to="(900,600)"/>
|
||||
<wire from="(440,430)" to="(450,430)"/>
|
||||
<wire from="(910,180)" to="(910,260)"/>
|
||||
<wire from="(690,180)" to="(690,320)"/>
|
||||
<wire from="(870,630)" to="(910,630)"/>
|
||||
<wire from="(150,260)" to="(150,440)"/>
|
||||
<wire from="(1030,530)" to="(1030,560)"/>
|
||||
<wire from="(830,460)" to="(830,560)"/>
|
||||
<wire from="(970,270)" to="(1020,270)"/>
|
||||
<wire from="(890,610)" to="(900,610)"/>
|
||||
<wire from="(840,550)" to="(890,550)"/>
|
||||
<wire from="(30,460)" to="(30,490)"/>
|
||||
<wire from="(810,410)" to="(820,410)"/>
|
||||
<wire from="(120,440)" to="(130,440)"/>
|
||||
<wire from="(850,430)" to="(1040,430)"/>
|
||||
<wire from="(90,450)" to="(90,560)"/>
|
||||
<wire from="(220,590)" to="(240,590)"/>
|
||||
<wire from="(890,530)" to="(900,530)"/>
|
||||
<wire from="(240,560)" to="(830,560)"/>
|
||||
<wire from="(90,580)" to="(90,770)"/>
|
||||
<wire from="(970,270)" to="(970,440)"/>
|
||||
<wire from="(700,660)" to="(1090,660)"/>
|
||||
<wire from="(680,740)" to="(820,740)"/>
|
||||
<wire from="(80,450)" to="(90,450)"/>
|
||||
<wire from="(820,610)" to="(880,610)"/>
|
||||
<wire from="(880,520)" to="(880,600)"/>
|
||||
<wire from="(700,400)" to="(700,660)"/>
|
||||
<wire from="(630,650)" to="(630,710)"/>
|
||||
<wire from="(730,150)" to="(730,340)"/>
|
||||
<wire from="(680,360)" to="(690,360)"/>
|
||||
<wire from="(450,470)" to="(470,470)"/>
|
||||
<wire from="(70,490)" to="(180,490)"/>
|
||||
<wire from="(40,370)" to="(40,440)"/>
|
||||
<wire from="(700,390)" to="(710,390)"/>
|
||||
<wire from="(730,150)" to="(1140,150)"/>
|
||||
<wire from="(680,400)" to="(700,400)"/>
|
||||
<wire from="(760,380)" to="(760,410)"/>
|
||||
<wire from="(680,280)" to="(680,320)"/>
|
||||
<wire from="(40,370)" to="(120,370)"/>
|
||||
<wire from="(190,440)" to="(280,440)"/>
|
||||
<wire from="(880,650)" to="(1050,650)"/>
|
||||
<wire from="(320,490)" to="(790,490)"/>
|
||||
<wire from="(1090,570)" to="(1090,660)"/>
|
||||
<wire from="(680,380)" to="(680,400)"/>
|
||||
<wire from="(320,490)" to="(320,720)"/>
|
||||
<wire from="(470,470)" to="(470,540)"/>
|
||||
<wire from="(1030,580)" to="(1040,580)"/>
|
||||
<wire from="(660,750)" to="(660,770)"/>
|
||||
<wire from="(950,520)" to="(950,600)"/>
|
||||
<wire from="(1000,530)" to="(1030,530)"/>
|
||||
<wire from="(710,390)" to="(710,690)"/>
|
||||
<wire from="(1040,280)" to="(1040,430)"/>
|
||||
<wire from="(1000,610)" to="(1030,610)"/>
|
||||
<wire from="(760,410)" to="(780,410)"/>
|
||||
<wire from="(130,430)" to="(130,440)"/>
|
||||
<wire from="(920,620)" to="(920,640)"/>
|
||||
<wire from="(870,570)" to="(870,600)"/>
|
||||
<wire from="(30,490)" to="(40,490)"/>
|
||||
<wire from="(910,260)" to="(1020,260)"/>
|
||||
<wire from="(850,640)" to="(920,640)"/>
|
||||
<wire from="(680,320)" to="(690,320)"/>
|
||||
<wire from="(930,520)" to="(950,520)"/>
|
||||
<wire from="(180,780)" to="(670,780)"/>
|
||||
<wire from="(1070,570)" to="(1090,570)"/>
|
||||
<wire from="(910,620)" to="(910,630)"/>
|
||||
<wire from="(30,400)" to="(30,460)"/>
|
||||
<wire from="(860,580)" to="(890,580)"/>
|
||||
<wire from="(830,460)" to="(1030,460)"/>
|
||||
<wire from="(670,750)" to="(670,780)"/>
|
||||
<wire from="(840,550)" to="(840,720)"/>
|
||||
<wire from="(680,720)" to="(840,720)"/>
|
||||
<wire from="(480,430)" to="(490,430)"/>
|
||||
<wire from="(150,450)" to="(150,570)"/>
|
||||
<wire from="(820,610)" to="(820,740)"/>
|
||||
<wire from="(490,440)" to="(500,440)"/>
|
||||
<wire from="(690,180)" to="(910,180)"/>
|
||||
<wire from="(680,700)" to="(760,700)"/>
|
||||
<wire from="(490,430)" to="(490,440)"/>
|
||||
<wire from="(790,430)" to="(850,430)"/>
|
||||
<wire from="(180,490)" to="(320,490)"/>
|
||||
<wire from="(420,440)" to="(420,450)"/>
|
||||
<wire from="(870,570)" to="(910,570)"/>
|
||||
<wire from="(680,710)" to="(800,710)"/>
|
||||
<wire from="(170,560)" to="(240,560)"/>
|
||||
<wire from="(880,340)" to="(880,520)"/>
|
||||
<wire from="(870,600)" to="(870,630)"/>
|
||||
<wire from="(130,540)" to="(470,540)"/>
|
||||
<wire from="(130,440)" to="(130,540)"/>
|
||||
<wire from="(680,440)" to="(680,650)"/>
|
||||
<wire from="(240,560)" to="(240,590)"/>
|
||||
<wire from="(460,260)" to="(460,430)"/>
|
||||
<wire from="(820,380)" to="(820,410)"/>
|
||||
<wire from="(150,260)" to="(460,260)"/>
|
||||
<wire from="(450,430)" to="(450,470)"/>
|
||||
<wire from="(630,650)" to="(680,650)"/>
|
||||
<wire from="(850,560)" to="(850,640)"/>
|
||||
<wire from="(1030,560)" to="(1040,560)"/>
|
||||
<wire from="(940,540)" to="(960,540)"/>
|
||||
<wire from="(870,340)" to="(880,340)"/>
|
||||
<wire from="(800,440)" to="(970,440)"/>
|
||||
<wire from="(680,380)" to="(690,380)"/>
|
||||
<wire from="(830,560)" to="(830,600)"/>
|
||||
<wire from="(130,430)" to="(160,430)"/>
|
||||
<wire from="(940,540)" to="(940,600)"/>
|
||||
<wire from="(880,610)" to="(880,650)"/>
|
||||
<wire from="(470,460)" to="(470,470)"/>
|
||||
<wire from="(680,730)" to="(860,730)"/>
|
||||
<wire from="(720,360)" to="(730,360)"/>
|
||||
<wire from="(920,540)" to="(920,560)"/>
|
||||
<wire from="(940,620)" to="(960,620)"/>
|
||||
<wire from="(180,600)" to="(180,780)"/>
|
||||
<wire from="(1050,260)" to="(1140,260)"/>
|
||||
<wire from="(760,410)" to="(760,700)"/>
|
||||
<wire from="(850,430)" to="(850,560)"/>
|
||||
<wire from="(20,400)" to="(30,400)"/>
|
||||
<wire from="(120,370)" to="(120,440)"/>
|
||||
<wire from="(320,720)" to="(650,720)"/>
|
||||
<wire from="(1030,580)" to="(1030,610)"/>
|
||||
<wire from="(850,560)" to="(920,560)"/>
|
||||
<wire from="(950,520)" to="(960,520)"/>
|
||||
<wire from="(950,600)" to="(960,600)"/>
|
||||
<wire from="(830,600)" to="(870,600)"/>
|
||||
<wire from="(170,460)" to="(170,560)"/>
|
||||
<wire from="(120,570)" to="(150,570)"/>
|
||||
<wire from="(890,530)" to="(890,550)"/>
|
||||
<wire from="(860,580)" to="(860,730)"/>
|
||||
<wire from="(800,440)" to="(800,710)"/>
|
||||
<wire from="(1050,590)" to="(1050,650)"/>
|
||||
<wire from="(150,440)" to="(160,440)"/>
|
||||
<wire from="(910,540)" to="(910,570)"/>
|
||||
<wire from="(150,450)" to="(160,450)"/>
|
||||
<wire from="(1140,150)" to="(1140,260)"/>
|
||||
<wire from="(180,460)" to="(180,490)"/>
|
||||
<wire from="(940,600)" to="(940,620)"/>
|
||||
<wire from="(1030,280)" to="(1030,460)"/>
|
||||
<wire from="(720,360)" to="(720,370)"/>
|
||||
<wire from="(890,580)" to="(890,610)"/>
|
||||
<wire from="(680,690)" to="(710,690)"/>
|
||||
<comp lib="3" loc="(1000,610)" name="Subtractor"/>
|
||||
<comp loc="(680,690)" name="Ins dec"/>
|
||||
<comp lib="0" loc="(680,280)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="fanout" val="8"/>
|
||||
<a name="incoming" val="8"/>
|
||||
<a name="appear" val="right"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(1050,260)" name="Register"/>
|
||||
<comp lib="1" loc="(120,570)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(680,360)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="fanout" val="8"/>
|
||||
<a name="incoming" val="8"/>
|
||||
<a name="appear" val="right"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(1070,570)" name="Multiplexer">
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(460,430)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="fanout" val="16"/>
|
||||
<a name="incoming" val="16"/>
|
||||
<a name="appear" val="right"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(640,440)" name="RAM">
|
||||
<a name="addrWidth" val="16"/>
|
||||
<a name="dataWidth" val="24"/>
|
||||
<a name="bus" val="separate"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(190,440)" name="Counter">
|
||||
<a name="width" val="16"/>
|
||||
<a name="max" val="0xffff"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(80,450)" name="NOR Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(20,400)" name="Pin">
|
||||
<a name="tristate" val="false"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(930,520)" name="Register"/>
|
||||
<comp lib="0" loc="(370,480)" name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(720,370)" name="Multiplexer">
|
||||
<a name="width" val="8"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(220,590)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(70,490)" name="NOT Gate"/>
|
||||
<comp lib="4" loc="(420,440)" name="RAM">
|
||||
<a name="addrWidth" val="16"/>
|
||||
<a name="dataWidth" val="17"/>
|
||||
<a name="bus" val="separate"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(640,440)" name="Splitter">
|
||||
<a name="fanout" val="24"/>
|
||||
<a name="incoming" val="24"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(420,440)" name="Splitter">
|
||||
<a name="fanout" val="17"/>
|
||||
<a name="incoming" val="17"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(930,600)" name="Register"/>
|
||||
<comp lib="3" loc="(1000,530)" name="Adder"/>
|
||||
<comp lib="0" loc="(530,480)" name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(310,480)" name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(470,440)" name="NOT Gate">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="size" val="20"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(800,380)" name="Clock">
|
||||
<a name="facing" val="north"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(480,430)" name="Controlled Buffer">
|
||||
<a name="width" val="16"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(810,410)" name="NOT Gate"/>
|
||||
<comp lib="0" loc="(680,440)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="fanout" val="8"/>
|
||||
<a name="incoming" val="8"/>
|
||||
<a name="appear" val="right"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(190,580)" name="Clock"/>
|
||||
<comp lib="0" loc="(480,430)" name="Pull Resistor"/>
|
||||
<comp lib="4" loc="(870,340)" name="RAM">
|
||||
<a name="bus" val="separate"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(590,480)" name="Constant">
|
||||
<a name="facing" val="north"/>
|
||||
</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="(580,340)" to="(580,630)"/>
|
||||
<wire from="(560,360)" to="(560,680)"/>
|
||||
<wire from="(190,360)" to="(190,380)"/>
|
||||
<wire from="(190,360)" to="(220,360)"/>
|
||||
<wire from="(830,130)" to="(830,190)"/>
|
||||
<wire from="(610,130)" to="(720,130)"/>
|
||||
<wire from="(320,560)" to="(330,560)"/>
|
||||
<wire from="(520,300)" to="(620,300)"/>
|
||||
<wire from="(780,200)" to="(790,200)"/>
|
||||
<wire from="(220,440)" to="(270,440)"/>
|
||||
<wire from="(150,600)" to="(420,600)"/>
|
||||
<wire from="(200,450)" to="(200,470)"/>
|
||||
<wire from="(670,200)" to="(680,200)"/>
|
||||
<wire from="(890,170)" to="(890,200)"/>
|
||||
<wire from="(910,180)" to="(910,210)"/>
|
||||
<wire from="(490,90)" to="(920,90)"/>
|
||||
<wire from="(270,380)" to="(290,380)"/>
|
||||
<wire from="(540,240)" to="(560,240)"/>
|
||||
<wire from="(540,440)" to="(540,700)"/>
|
||||
<wire from="(920,90)" to="(920,120)"/>
|
||||
<wire from="(120,100)" to="(460,100)"/>
|
||||
<wire from="(300,390)" to="(300,470)"/>
|
||||
<wire from="(1060,220)" to="(1060,350)"/>
|
||||
<wire from="(490,680)" to="(490,690)"/>
|
||||
<wire from="(520,360)" to="(560,360)"/>
|
||||
<wire from="(470,680)" to="(490,680)"/>
|
||||
<wire from="(980,180)" to="(980,230)"/>
|
||||
<wire from="(610,540)" to="(660,540)"/>
|
||||
<wire from="(620,510)" to="(660,510)"/>
|
||||
<wire from="(200,370)" to="(220,370)"/>
|
||||
<wire from="(1040,220)" to="(1060,220)"/>
|
||||
<wire from="(630,480)" to="(660,480)"/>
|
||||
<wire from="(210,500)" to="(310,500)"/>
|
||||
<wire from="(40,240)" to="(220,240)"/>
|
||||
<wire from="(930,260)" to="(1010,260)"/>
|
||||
<wire from="(170,410)" to="(200,410)"/>
|
||||
<wire from="(340,330)" to="(340,370)"/>
|
||||
<wire from="(520,340)" to="(580,340)"/>
|
||||
<wire from="(140,330)" to="(140,370)"/>
|
||||
<wire from="(900,120)" to="(920,120)"/>
|
||||
<wire from="(340,370)" to="(360,370)"/>
|
||||
<wire from="(580,630)" to="(660,630)"/>
|
||||
<wire from="(260,560)" to="(280,560)"/>
|
||||
<wire from="(330,510)" to="(330,560)"/>
|
||||
<wire from="(670,350)" to="(670,440)"/>
|
||||
<wire from="(630,290)" to="(630,480)"/>
|
||||
<wire from="(140,370)" to="(150,370)"/>
|
||||
<wire from="(930,120)" to="(930,260)"/>
|
||||
<wire from="(140,330)" to="(340,330)"/>
|
||||
<wire from="(240,390)" to="(240,460)"/>
|
||||
<wire from="(590,330)" to="(590,600)"/>
|
||||
<wire from="(220,240)" to="(220,260)"/>
|
||||
<wire from="(610,190)" to="(630,190)"/>
|
||||
<wire from="(530,700)" to="(540,700)"/>
|
||||
<wire from="(270,440)" to="(540,440)"/>
|
||||
<wire from="(800,120)" to="(800,140)"/>
|
||||
<wire from="(830,190)" to="(840,190)"/>
|
||||
<wire from="(620,300)" to="(620,510)"/>
|
||||
<wire from="(310,500)" to="(420,500)"/>
|
||||
<wire from="(270,380)" to="(270,440)"/>
|
||||
<wire from="(420,500)" to="(420,600)"/>
|
||||
<wire from="(610,310)" to="(610,540)"/>
|
||||
<wire from="(560,190)" to="(560,240)"/>
|
||||
<wire from="(200,370)" to="(200,410)"/>
|
||||
<wire from="(520,330)" to="(590,330)"/>
|
||||
<wire from="(680,170)" to="(680,200)"/>
|
||||
<wire from="(120,100)" to="(120,110)"/>
|
||||
<wire from="(720,130)" to="(830,130)"/>
|
||||
<wire from="(120,120)" to="(800,120)"/>
|
||||
<wire from="(520,680)" to="(560,680)"/>
|
||||
<wire from="(900,120)" to="(900,140)"/>
|
||||
<wire from="(100,460)" to="(240,460)"/>
|
||||
<wire from="(40,470)" to="(200,470)"/>
|
||||
<wire from="(570,660)" to="(660,660)"/>
|
||||
<wire from="(810,180)" to="(810,210)"/>
|
||||
<wire from="(210,450)" to="(210,500)"/>
|
||||
<wire from="(560,190)" to="(610,190)"/>
|
||||
<wire from="(1060,180)" to="(1060,220)"/>
|
||||
<wire from="(520,310)" to="(610,310)"/>
|
||||
<wire from="(170,510)" to="(330,510)"/>
|
||||
<wire from="(470,680)" to="(470,690)"/>
|
||||
<wire from="(1030,250)" to="(1030,420)"/>
|
||||
<wire from="(720,190)" to="(740,190)"/>
|
||||
<wire from="(980,180)" to="(1060,180)"/>
|
||||
<wire from="(880,210)" to="(910,210)"/>
|
||||
<wire from="(690,110)" to="(690,140)"/>
|
||||
<wire from="(200,470)" to="(300,470)"/>
|
||||
<wire from="(310,390)" to="(310,500)"/>
|
||||
<wire from="(670,210)" to="(700,210)"/>
|
||||
<wire from="(1010,250)" to="(1010,260)"/>
|
||||
<wire from="(790,170)" to="(790,200)"/>
|
||||
<wire from="(780,210)" to="(810,210)"/>
|
||||
<wire from="(520,350)" to="(570,350)"/>
|
||||
<wire from="(600,320)" to="(600,570)"/>
|
||||
<wire from="(700,180)" to="(700,210)"/>
|
||||
<wire from="(920,120)" to="(930,120)"/>
|
||||
<wire from="(420,420)" to="(420,500)"/>
|
||||
<wire from="(420,420)" to="(1030,420)"/>
|
||||
<wire from="(100,130)" to="(100,460)"/>
|
||||
<wire from="(720,130)" to="(720,190)"/>
|
||||
<wire from="(600,570)" to="(660,570)"/>
|
||||
<wire from="(670,350)" to="(1060,350)"/>
|
||||
<wire from="(490,110)" to="(690,110)"/>
|
||||
<wire from="(610,130)" to="(610,190)"/>
|
||||
<wire from="(180,230)" to="(180,270)"/>
|
||||
<wire from="(570,350)" to="(570,660)"/>
|
||||
<wire from="(40,240)" to="(40,470)"/>
|
||||
<wire from="(170,410)" to="(170,510)"/>
|
||||
<wire from="(260,370)" to="(290,370)"/>
|
||||
<wire from="(520,290)" to="(630,290)"/>
|
||||
<wire from="(880,200)" to="(890,200)"/>
|
||||
<wire from="(520,320)" to="(600,320)"/>
|
||||
<wire from="(180,230)" to="(980,230)"/>
|
||||
<wire from="(590,600)" to="(660,600)"/>
|
||||
<wire from="(320,370)" to="(340,370)"/>
|
||||
<comp lib="0" loc="(660,510)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="Store"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(190,380)" name="Adder">
|
||||
<a name="width" val="16"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(500,370)" name="ROM">
|
||||
<a name="addrWidth" val="16"/>
|
||||
<a name="dataWidth" val="12"/>
|
||||
<a name="contents">addr/data: 16 12
|
||||
2 0 0 0 41 900 0 0
|
||||
41 a00 0 0 41 830 0 0
|
||||
41 c30 0 0 41 820 0 0
|
||||
3
|
||||
</a>
|
||||
</comp>
|
||||
<comp lib="1" loc="(900,140)" name="AND Gate">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(470,690)" name="Pin">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="cnt"/>
|
||||
<a name="labelloc" val="south"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(660,600)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="LXR"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(490,690)" name="AND Gate">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(1040,220)" name="D Flip-Flop"/>
|
||||
<comp lib="3" loc="(880,200)" name="Comparator">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(670,200)" name="Comparator">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(320,560)" name="Bit Extender"/>
|
||||
<comp lib="1" loc="(690,140)" name="AND Gate">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(320,370)" name="Register">
|
||||
<a name="width" val="16"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(220,550)" name="Constant">
|
||||
<a name="width" val="8"/>
|
||||
<a name="value" val="0x4"/>
|
||||
</comp>
|
||||
<comp lib="2" loc="(260,370)" name="Multiplexer">
|
||||
<a name="select" val="2"/>
|
||||
<a name="width" val="16"/>
|
||||
<a name="disabled" val="0"/>
|
||||
<a name="enable" val="false"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(460,100)" name="OR Gate">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(630,210)" name="Constant">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(660,480)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="Data in sel"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(150,600)" name="Pin">
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="execute"/>
|
||||
</comp>
|
||||
<comp lib="3" loc="(260,560)" name="Multiplier"/>
|
||||
<comp lib="0" loc="(220,350)" name="Constant">
|
||||
<a name="width" val="16"/>
|
||||
<a name="value" val="0x0"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(100,130)" name="Splitter"/>
|
||||
<comp lib="3" loc="(780,200)" name="Comparator">
|
||||
<a name="width" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(540,240)" name="Splitter">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="fanout" val="4"/>
|
||||
<a name="incoming" val="4"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(150,390)" name="Constant">
|
||||
<a name="width" val="16"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(660,630)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="LYR"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="4" loc="(220,430)" name="Counter">
|
||||
<a name="width" val="2"/>
|
||||
<a name="max" val="0x1"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(800,140)" name="AND Gate">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(670,440)" name="Pin">
|
||||
<a name="facing" val="north"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="HLT"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="6" loc="(139,714)" name="Text">
|
||||
<a name="text" val="Nibble 1-jdest nibbles 2-3 contsignals"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(500,370)" name="Splitter">
|
||||
<a name="fanout" val="12"/>
|
||||
<a name="incoming" val="12"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(660,570)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="ARS"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(220,570)" name="Pin">
|
||||
<a name="width" val="8"/>
|
||||
<a name="tristate" val="false"/>
|
||||
<a name="label" val="ins"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(660,660)" name="Pin">
|
||||
<a name="facing" val="west"/>
|
||||
<a name="output" val="true"/>
|
||||
<a name="label" val="A/SS"/>
|
||||
<a name="labelloc" val="east"/>
|
||||
</comp>
|
||||
<comp lib="1" loc="(220,260)" name="AND Gate">
|
||||
<a name="size" val="30"/>
|
||||
<a name="inputs" val="2"/>
|
||||
<a name="negate1" val="true"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(740,210)" name="Constant">
|
||||
<a name="width" val="4"/>
|
||||
<a name="value" val="0x2"/>
|
||||
</comp>
|
||||
<comp lib="0" loc="(190,250)" name="Clock"/>
|
||||
<comp lib="0" loc="(840,210)" name="Constant">
|
||||
<a name="width" val="4"/>
|
||||
<a name="value" val="0x3"/>
|
||||
</comp>
|
||||
</circuit>
|
||||
</project>
|
Loading…
x
Reference in New Issue
Block a user