Fix bug on memory initialisation

This commit is contained in:
Yannick Reiß 2023-09-20 16:17:09 +02:00
parent 2991588cc8
commit edf9421cd6
No known key found for this signature in database
GPG Key ID: 5A3AF456F0A0338C
1 changed files with 171 additions and 80 deletions

View File

@ -5,23 +5,36 @@
<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="appearance" val="classic"/>
</tool>
<tool name="Tunnel">
<a name="facing" val="south"/>
<a name="facing" val="north"/>
</tool>
<tool name="Constant">
<a name="facing" val="west"/>
<a name="value" val="0x0"/>
</tool>
</lib>
<lib desc="#Gates" name="1">
<tool name="OR Gate">
<a name="inputs" val="4"/>
<a name="facing" val="south"/>
</tool>
<tool name="NOR Gate">
<a name="facing" val="south"/>
<a name="inputs" val="8"/>
</tool>
</lib>
<lib desc="#Plexers" name="2">
<tool name="Multiplexer">
<a name="facing" val="west"/>
<a name="selloc" val="tr"/>
<a name="size" val="20"/>
</tool>
</lib>
<lib desc="#Plexers" name="2"/>
<lib desc="#Arithmetic" name="3"/>
<lib desc="#Memory" name="4"/>
<lib desc="#I/O" name="5"/>
@ -97,7 +110,16 @@
<comp lib="0" loc="(1460,480)" name="Splitter">
<a name="facing" val="west"/>
</comp>
<comp lib="0" loc="(1510,180)" name="Constant">
<a name="facing" val="west"/>
<a name="value" val="0x0"/>
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(1520,320)" name="Constant"/>
<comp lib="0" loc="(1530,70)" name="Tunnel">
<a name="facing" val="south"/>
<a name="label" val="BUG_PROG"/>
</comp>
<comp lib="0" loc="(1550,250)" name="Tunnel">
<a name="facing" val="south"/>
<a name="label" val="cells"/>
@ -107,6 +129,14 @@
<a name="facing" val="east"/>
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(160,420)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(1620,70)" name="Tunnel">
<a name="facing" val="south"/>
<a name="label" val="JMP"/>
</comp>
<comp lib="0" loc="(1640,880)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="CLK"/>
@ -155,43 +185,49 @@
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(210,780)" name="Constant"/>
<comp lib="0" loc="(260,1080)" name="Constant">
<a name="value" val="0xaa"/>
<a name="width" val="8"/>
<comp lib="0" loc="(260,480)" name="Tunnel">
<a name="facing" val="north"/>
<a name="label" val="SAVE"/>
</comp>
<comp lib="0" loc="(260,800)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(280,1220)" name="Tunnel">
<comp lib="0" loc="(290,1010)" name="Clock"/>
<comp lib="0" loc="(290,430)" name="Constant"/>
<comp lib="0" loc="(320,1010)" name="Tunnel">
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(320,1080)" name="Tunnel">
<a name="label" val="RST"/>
</comp>
<comp lib="0" loc="(390,760)" name="Splitter">
<a name="facing" val="south"/>
<a name="fanout" val="8"/>
<a name="incoming" val="8"/>
</comp>
<comp lib="0" loc="(440,1010)" name="Constant">
<a name="value" val="0xf"/>
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(440,890)" name="Tunnel">
<a name="facing" val="north"/>
<a name="label" val="BUG_PROG"/>
</comp>
<comp lib="0" loc="(460,1150)" name="Tunnel">
<a name="facing" val="north"/>
<a name="label" val="H"/>
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(290,1080)" name="Tunnel">
<comp lib="0" loc="(470,1010)" name="Tunnel">
<a name="label" val="Eingabe"/>
<a name="width" val="8"/>
</comp>
<comp lib="0" loc="(290,930)" name="Clock"/>
<comp lib="0" loc="(320,1000)" name="Tunnel">
<a name="label" val="RST"/>
</comp>
<comp lib="0" loc="(320,930)" name="Tunnel">
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(330,1220)" name="Tunnel">
<comp lib="0" loc="(510,1150)" name="Tunnel">
<a name="facing" val="north"/>
<a name="label" val="L"/>
<a name="width" val="4"/>
</comp>
<comp lib="0" loc="(380,440)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="SAVE"/>
</comp>
<comp lib="0" loc="(430,460)" name="Tunnel">
<a name="facing" val="east"/>
<a name="label" val="CLK"/>
</comp>
<comp lib="0" loc="(660,620)" name="Tunnel">
<a name="facing" val="north"/>
<a name="label" val="SAVE"/>
@ -238,9 +274,16 @@
<a name="size" val="30"/>
</comp>
<comp lib="1" loc="(1440,580)" name="NOT Gate"/>
<comp lib="1" loc="(1580,150)" name="OR Gate">
<a name="facing" val="south"/>
</comp>
<comp lib="1" loc="(1970,200)" name="OR Gate">
<a name="inputs" val="8"/>
</comp>
<comp lib="1" loc="(440,880)" name="OR Gate">
<a name="facing" val="south"/>
<a name="inputs" val="8"/>
</comp>
<comp lib="1" loc="(640,510)" name="NOT Gate">
<a name="facing" val="south"/>
</comp>
@ -267,6 +310,12 @@
<a name="select" val="2"/>
<a name="width" val="15"/>
</comp>
<comp lib="2" loc="(1470,190)" name="Multiplexer">
<a name="facing" val="west"/>
<a name="selloc" val="tr"/>
<a name="size" val="20"/>
<a name="width" val="8"/>
</comp>
<comp lib="2" loc="(1480,350)" name="Multiplexer">
<a name="select" val="2"/>
<a name="width" val="8"/>
@ -292,28 +341,31 @@
<a name="appearance" val="logisim_evolution"/>
<a name="width" val="15"/>
</comp>
<comp lib="4" loc="(170,130)" name="ROM">
<comp lib="4" loc="(170,70)" name="ROM">
<a name="appearance" val="logisim_evolution"/>
<a name="contents">addr/data: 8 3
2 3 2 6 5 3 7 25*0
4 2 2 6 5 3 7 25*0
6 15*0 7 15*0 7
</a>
<a name="dataWidth" val="3"/>
</comp>
<comp lib="4" loc="(180,350)" name="Register">
<a name="appearance" val="logisim_evolution"/>
</comp>
<comp lib="4" loc="(1940,320)" name="Register">
<a name="appearance" val="logisim_evolution"/>
</comp>
<comp lib="4" loc="(300,370)" name="RAM">
<a name="appearance" val="logisim_evolution"/>
</comp>
<comp lib="4" loc="(300,730)" name="Register">
<a name="appearance" val="logisim_evolution"/>
</comp>
<comp lib="4" loc="(450,390)" name="Register">
<a name="appearance" val="logisim_evolution"/>
</comp>
<comp lib="5" loc="(280,1200)" name="Hex Digit Display"/>
<comp lib="5" loc="(300,1000)" name="Button">
<comp lib="5" loc="(300,1080)" name="Button">
<a name="label" val="RST"/>
</comp>
<comp lib="5" loc="(330,1200)" name="Hex Digit Display">
<comp lib="5" loc="(460,1130)" name="Hex Digit Display"/>
<comp lib="5" loc="(510,1130)" name="Hex Digit Display">
<a name="labelvisible" val="true"/>
</comp>
<comp lib="8" loc="(1090,510)" name="Text">
@ -335,48 +387,45 @@
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="ALU"/>
</comp>
<comp lib="8" loc="(1235,97)" name="Text">
<a name="font" val="SansSerif bold 28"/>
<a name="text" val="Brainfuck Logik"/>
</comp>
<comp lib="8" loc="(1575,37)" name="Text">
<a name="font" val="SansSerif bolditalic 10"/>
<a name="text" val="hässlicher Bugfix"/>
</comp>
<comp lib="8" loc="(1675,785)" name="Text">
<a name="text" val="pointer register"/>
</comp>
<comp lib="8" loc="(1685,760)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Brainfuck Logik"/>
</comp>
<comp lib="8" loc="(1695,225)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Zellenblock"/>
</comp>
<comp lib="8" loc="(270,630)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Prozessorlogik"/>
</comp>
<comp lib="8" loc="(275,655)" name="Text">
<a name="text" val="Instruction Pointer"/>
</comp>
<comp lib="8" loc="(285,90)" name="Text">
<comp lib="8" loc="(294,52)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Programmspeicher"/>
</comp>
<comp lib="8" loc="(295,875)" name="Text">
<comp lib="8" loc="(298,700)" name="Text">
<a name="text" val="Instruction Pointer"/>
</comp>
<comp lib="8" loc="(305,1050)" name="Text">
<a name="text" val="RESET"/>
</comp>
<comp lib="8" loc="(305,954)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="I/O Anschlüsse"/>
</comp>
<comp lib="8" loc="(305,1040)" name="Text">
<a name="text" val="Eingabevektor"/>
</comp>
<comp lib="8" loc="(305,970)" name="Text">
<a name="text" val="RESET"/>
</comp>
<comp lib="8" loc="(310,1125)" name="Text">
<a name="text" val="Ausgabevektor"/>
</comp>
<comp lib="8" loc="(310,905)" name="Text">
<comp lib="8" loc="(310,985)" name="Text">
<a name="text" val="Procssor clock"/>
</comp>
<comp lib="8" loc="(450,330)" name="Text">
<a name="text" val="Load address"/>
<comp lib="8" loc="(476,980)" name="Text">
<a name="text" val="Eingabevektor"/>
</comp>
<comp lib="8" loc="(560,310)" name="Text">
<comp lib="8" loc="(478,1054)" name="Text">
<a name="text" val="Ausgabevektor"/>
</comp>
<comp lib="8" loc="(479,214)" name="Text">
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Branch"/>
</comp>
@ -384,16 +433,14 @@
<a name="font" val="SansSerif bold 23"/>
<a name="text" val="Decoder"/>
</comp>
<wire from="(100,140)" to="(100,420)"/>
<wire from="(100,140)" to="(170,140)"/>
<wire from="(100,420)" to="(100,490)"/>
<wire from="(100,420)" to="(450,420)"/>
<wire from="(100,490)" to="(100,580)"/>
<wire from="(100,490)" to="(390,490)"/>
<wire from="(100,560)" to="(100,580)"/>
<wire from="(100,560)" to="(180,560)"/>
<wire from="(100,580)" to="(110,580)"/>
<wire from="(100,620)" to="(100,690)"/>
<wire from="(100,620)" to="(160,620)"/>
<wire from="(100,690)" to="(150,690)"/>
<wire from="(100,80)" to="(100,560)"/>
<wire from="(100,80)" to="(170,80)"/>
<wire from="(1060,240)" to="(1120,240)"/>
<wire from="(1140,440)" to="(1160,440)"/>
<wire from="(1150,550)" to="(1250,550)"/>
@ -407,7 +454,7 @@
<wire from="(1190,330)" to="(1190,450)"/>
<wire from="(1190,450)" to="(1210,450)"/>
<wire from="(120,670)" to="(120,700)"/>
<wire from="(120,670)" to="(530,670)"/>
<wire from="(120,670)" to="(540,670)"/>
<wire from="(120,700)" to="(150,700)"/>
<wire from="(120,720)" to="(140,720)"/>
<wire from="(120,820)" to="(120,830)"/>
@ -443,8 +490,8 @@
<wire from="(1320,690)" to="(1320,720)"/>
<wire from="(1320,690)" to="(1540,690)"/>
<wire from="(1320,720)" to="(1330,720)"/>
<wire from="(1330,200)" to="(1330,320)"/>
<wire from="(1330,200)" to="(1430,200)"/>
<wire from="(1330,190)" to="(1330,320)"/>
<wire from="(1330,190)" to="(1430,190)"/>
<wire from="(1330,320)" to="(1330,370)"/>
<wire from="(1330,320)" to="(1350,320)"/>
<wire from="(1330,370)" to="(1340,370)"/>
@ -461,6 +508,9 @@
<wire from="(1390,730)" to="(1390,820)"/>
<wire from="(1390,730)" to="(1540,730)"/>
<wire from="(1390,820)" to="(1400,820)"/>
<wire from="(140,340)" to="(140,380)"/>
<wire from="(140,340)" to="(260,340)"/>
<wire from="(140,380)" to="(180,380)"/>
<wire from="(140,710)" to="(140,720)"/>
<wire from="(140,710)" to="(150,710)"/>
<wire from="(140,720)" to="(150,720)"/>
@ -469,32 +519,48 @@
<wire from="(1420,350)" to="(1420,380)"/>
<wire from="(1420,350)" to="(1440,350)"/>
<wire from="(1420,860)" to="(1420,890)"/>
<wire from="(1430,200)" to="(1430,330)"/>
<wire from="(1430,200)" to="(1850,200)"/>
<wire from="(1430,190)" to="(1430,330)"/>
<wire from="(1430,190)" to="(1470,190)"/>
<wire from="(1430,330)" to="(1440,330)"/>
<wire from="(1430,360)" to="(1430,440)"/>
<wire from="(1430,360)" to="(1440,360)"/>
<wire from="(1440,580)" to="(1450,580)"/>
<wire from="(1440,840)" to="(1650,840)"/>
<wire from="(1460,370)" to="(1460,480)"/>
<wire from="(1480,160)" to="(1580,160)"/>
<wire from="(1480,350)" to="(1610,350)"/>
<wire from="(1490,180)" to="(1510,180)"/>
<wire from="(1490,200)" to="(1850,200)"/>
<wire from="(150,590)" to="(160,590)"/>
<wire from="(150,700)" to="(160,700)"/>
<wire from="(150,720)" to="(160,720)"/>
<wire from="(1520,320)" to="(1610,320)"/>
<wire from="(1530,70)" to="(1530,80)"/>
<wire from="(1530,80)" to="(1560,80)"/>
<wire from="(1540,270)" to="(1540,690)"/>
<wire from="(1540,270)" to="(1610,270)"/>
<wire from="(1540,690)" to="(1540,730)"/>
<wire from="(1540,730)" to="(1810,730)"/>
<wire from="(1550,250)" to="(1550,310)"/>
<wire from="(1550,310)" to="(1610,310)"/>
<wire from="(1560,80)" to="(1560,100)"/>
<wire from="(1580,150)" to="(1580,160)"/>
<wire from="(1580,860)" to="(1650,860)"/>
<wire from="(1590,330)" to="(1610,330)"/>
<wire from="(160,420)" to="(170,420)"/>
<wire from="(160,590)" to="(160,620)"/>
<wire from="(1600,80)" to="(1600,100)"/>
<wire from="(1600,80)" to="(1620,80)"/>
<wire from="(1620,70)" to="(1620,80)"/>
<wire from="(1640,880)" to="(1650,880)"/>
<wire from="(170,420)" to="(170,450)"/>
<wire from="(170,420)" to="(180,420)"/>
<wire from="(170,450)" to="(290,450)"/>
<wire from="(170,830)" to="(170,840)"/>
<wire from="(170,830)" to="(190,830)"/>
<wire from="(1710,840)" to="(1810,840)"/>
<wire from="(180,560)" to="(180,650)"/>
<wire from="(180,650)" to="(300,650)"/>
<wire from="(180,750)" to="(180,820)"/>
<wire from="(1810,730)" to="(1810,840)"/>
<wire from="(1850,200)" to="(1850,250)"/>
@ -530,21 +596,45 @@
<wire from="(2070,380)" to="(2080,380)"/>
<wire from="(2080,380)" to="(2080,390)"/>
<wire from="(210,780)" to="(300,780)"/>
<wire from="(240,380)" to="(260,380)"/>
<wire from="(240,710)" to="(240,760)"/>
<wire from="(240,760)" to="(300,760)"/>
<wire from="(260,1080)" to="(290,1080)"/>
<wire from="(260,340)" to="(260,380)"/>
<wire from="(260,380)" to="(300,380)"/>
<wire from="(260,420)" to="(260,480)"/>
<wire from="(260,420)" to="(300,420)"/>
<wire from="(260,800)" to="(300,800)"/>
<wire from="(280,1200)" to="(280,1220)"/>
<wire from="(290,930)" to="(320,930)"/>
<wire from="(300,1000)" to="(320,1000)"/>
<wire from="(330,1200)" to="(330,1220)"/>
<wire from="(290,1010)" to="(320,1010)"/>
<wire from="(290,430)" to="(300,430)"/>
<wire from="(290,440)" to="(290,450)"/>
<wire from="(290,440)" to="(300,440)"/>
<wire from="(300,1080)" to="(320,1080)"/>
<wire from="(300,460)" to="(300,650)"/>
<wire from="(300,650)" to="(390,650)"/>
<wire from="(360,760)" to="(390,760)"/>
<wire from="(380,440)" to="(450,440)"/>
<wire from="(390,490)" to="(390,760)"/>
<wire from="(410,190)" to="(840,190)"/>
<wire from="(430,460)" to="(450,460)"/>
<wire from="(510,420)" to="(530,420)"/>
<wire from="(530,420)" to="(530,670)"/>
<wire from="(390,650)" to="(390,760)"/>
<wire from="(400,780)" to="(400,830)"/>
<wire from="(410,130)" to="(840,130)"/>
<wire from="(410,780)" to="(410,830)"/>
<wire from="(420,780)" to="(420,830)"/>
<wire from="(430,780)" to="(430,830)"/>
<wire from="(440,1010)" to="(470,1010)"/>
<wire from="(440,780)" to="(440,820)"/>
<wire from="(440,820)" to="(450,820)"/>
<wire from="(440,880)" to="(440,890)"/>
<wire from="(450,780)" to="(450,810)"/>
<wire from="(450,810)" to="(460,810)"/>
<wire from="(450,820)" to="(450,830)"/>
<wire from="(460,1130)" to="(460,1150)"/>
<wire from="(460,780)" to="(460,800)"/>
<wire from="(460,800)" to="(470,800)"/>
<wire from="(460,810)" to="(460,830)"/>
<wire from="(470,780)" to="(470,790)"/>
<wire from="(470,790)" to="(480,790)"/>
<wire from="(470,800)" to="(470,830)"/>
<wire from="(480,790)" to="(480,830)"/>
<wire from="(510,1130)" to="(510,1150)"/>
<wire from="(540,460)" to="(540,670)"/>
<wire from="(640,380)" to="(640,480)"/>
<wire from="(640,380)" to="(870,380)"/>
<wire from="(640,510)" to="(640,550)"/>
@ -562,6 +652,7 @@
<wire from="(770,510)" to="(860,510)"/>
<wire from="(780,530)" to="(780,550)"/>
<wire from="(780,530)" to="(850,530)"/>
<wire from="(840,130)" to="(840,190)"/>
<wire from="(850,210)" to="(850,260)"/>
<wire from="(850,260)" to="(1120,260)"/>
<wire from="(850,260)" to="(850,350)"/>