update ALU + DecodeIR

This commit is contained in:
2024-12-07 12:08:30 +01:00
parent dcac1ec7cf
commit e1d55fd769

View File

@@ -775,7 +775,7 @@
<circ-port dir="in" pin="500,70" x="70" y="50"/> <circ-port dir="in" pin="500,70" x="70" y="50"/>
<circ-port dir="in" pin="590,70" x="110" y="50"/> <circ-port dir="in" pin="590,70" x="110" y="50"/>
<circ-port dir="in" pin="680,70" x="50" y="90"/> <circ-port dir="in" pin="680,70" x="50" y="90"/>
<circ-port dir="in" pin="760,50" x="50" y="100"/> <circ-port dir="in" pin="780,50" x="50" y="100"/>
<circ-port dir="out" pin="610,340" x="170" y="110"/> <circ-port dir="out" pin="610,340" x="170" y="110"/>
</appear> </appear>
<comp lib="0" loc="(490,310)" name="Pin"> <comp lib="0" loc="(490,310)" name="Pin">
@@ -789,9 +789,6 @@
<a name="label" val="Input1"/> <a name="label" val="Input1"/>
<a name="width" val="16"/> <a name="width" val="16"/>
</comp> </comp>
<comp lib="0" loc="(540,330)" name="Constant">
<a name="facing" val="north"/>
</comp>
<comp lib="0" loc="(590,70)" name="Pin"> <comp lib="0" loc="(590,70)" name="Pin">
<a name="appearance" val="classic"/> <a name="appearance" val="classic"/>
<a name="facing" val="south"/> <a name="facing" val="south"/>
@@ -811,31 +808,30 @@
<a name="label" val="Cst"/> <a name="label" val="Cst"/>
<a name="width" val="16"/> <a name="width" val="16"/>
</comp> </comp>
<comp lib="0" loc="(760,50)" name="Pin"> <comp lib="0" loc="(780,50)" name="Pin">
<a name="appearance" val="classic"/> <a name="appearance" val="classic"/>
<a name="facing" val="south"/> <a name="facing" val="south"/>
<a name="label" val="Imm"/> <a name="label" val="Imm"/>
</comp> </comp>
<comp lib="0" loc="(790,50)" name="Constant">
<a name="facing" val="south"/>
</comp>
<comp lib="0" loc="(840,160)" name="Splitter"> <comp lib="0" loc="(840,160)" name="Splitter">
<a name="appear" val="right"/> <a name="appear" val="right"/>
<a name="bit0" val="1"/> <a name="bit0" val="none"/>
<a name="bit10" val="1"/> <a name="bit1" val="none"/>
<a name="bit11" val="1"/> <a name="bit10" val="none"/>
<a name="bit11" val="none"/>
<a name="bit12" val="0"/> <a name="bit12" val="0"/>
<a name="bit13" val="0"/> <a name="bit13" val="0"/>
<a name="bit14" val="0"/> <a name="bit14" val="0"/>
<a name="bit15" val="0"/> <a name="bit15" val="0"/>
<a name="bit2" val="1"/> <a name="bit2" val="none"/>
<a name="bit3" val="1"/> <a name="bit3" val="none"/>
<a name="bit4" val="1"/> <a name="bit4" val="none"/>
<a name="bit5" val="1"/> <a name="bit5" val="none"/>
<a name="bit6" val="1"/> <a name="bit6" val="none"/>
<a name="bit7" val="1"/> <a name="bit7" val="none"/>
<a name="bit8" val="1"/> <a name="bit8" val="none"/>
<a name="bit9" val="1"/> <a name="bit9" val="none"/>
<a name="fanout" val="1"/>
<a name="incoming" val="16"/> <a name="incoming" val="16"/>
</comp> </comp>
<comp lib="1" loc="(710,190)" name="AND Gate"> <comp lib="1" loc="(710,190)" name="AND Gate">
@@ -854,13 +850,11 @@
<a name="width" val="16"/> <a name="width" val="16"/>
</comp> </comp>
<comp lib="2" loc="(610,330)" name="Multiplexer"> <comp lib="2" loc="(610,330)" name="Multiplexer">
<a name="enable" val="true"/>
<a name="facing" val="south"/> <a name="facing" val="south"/>
<a name="select" val="3"/> <a name="select" val="3"/>
<a name="width" val="16"/> <a name="width" val="16"/>
</comp> </comp>
<comp lib="2" loc="(800,100)" name="Multiplexer"> <comp lib="2" loc="(800,100)" name="Multiplexer">
<a name="enable" val="true"/>
<a name="selloc" val="tr"/> <a name="selloc" val="tr"/>
<a name="width" val="16"/> <a name="width" val="16"/>
</comp> </comp>
@@ -898,8 +892,6 @@
<wire from="(510,150)" to="(510,170)"/> <wire from="(510,150)" to="(510,170)"/>
<wire from="(510,150)" to="(600,150)"/> <wire from="(510,150)" to="(600,150)"/>
<wire from="(510,170)" to="(520,170)"/> <wire from="(510,170)" to="(520,170)"/>
<wire from="(540,320)" to="(540,330)"/>
<wire from="(540,320)" to="(570,320)"/>
<wire from="(560,180)" to="(570,180)"/> <wire from="(560,180)" to="(570,180)"/>
<wire from="(570,180)" to="(570,290)"/> <wire from="(570,180)" to="(570,290)"/>
<wire from="(580,210)" to="(580,290)"/> <wire from="(580,210)" to="(580,290)"/>
@@ -937,12 +929,9 @@
<wire from="(750,130)" to="(750,160)"/> <wire from="(750,130)" to="(750,160)"/>
<wire from="(750,130)" to="(800,130)"/> <wire from="(750,130)" to="(800,130)"/>
<wire from="(760,190)" to="(760,230)"/> <wire from="(760,190)" to="(760,230)"/>
<wire from="(760,50)" to="(760,70)"/>
<wire from="(760,70)" to="(780,70)"/>
<wire from="(770,150)" to="(770,160)"/> <wire from="(770,150)" to="(770,160)"/>
<wire from="(770,150)" to="(820,150)"/> <wire from="(770,150)" to="(820,150)"/>
<wire from="(780,70)" to="(780,80)"/> <wire from="(780,50)" to="(780,80)"/>
<wire from="(790,50)" to="(790,80)"/>
<wire from="(800,100)" to="(1070,100)"/> <wire from="(800,100)" to="(1070,100)"/>
<wire from="(800,130)" to="(800,160)"/> <wire from="(800,130)" to="(800,160)"/>
<wire from="(800,130)" to="(880,130)"/> <wire from="(800,130)" to="(880,130)"/>
@@ -975,7 +964,6 @@
<a name="simulationFrequency" val="1.0"/> <a name="simulationFrequency" val="1.0"/>
<appear> <appear>
<rect fill="#ffffff" height="101" stroke="#ff0000" stroke-width="2" width="120" x="40" y="39"/> <rect fill="#ffffff" height="101" stroke="#ff0000" stroke-width="2" width="120" x="40" y="39"/>
<polyline fill="none" points="161,55 171,60 161,65" stroke="#000000"/>
<polyline fill="none" points="161,95 171,100 161,105" stroke="#000000"/> <polyline fill="none" points="161,95 171,100 161,105" stroke="#000000"/>
<polyline fill="none" points="40,55 30,60 40,65" stroke="#000000"/> <polyline fill="none" points="40,55 30,60 40,65" stroke="#000000"/>
<polyline fill="none" points="40,75 30,80 40,85" stroke="#000000"/> <polyline fill="none" points="40,75 30,80 40,85" stroke="#000000"/>
@@ -989,14 +977,15 @@
<text dominant-baseline="central" font-family="SansSerif" font-size="10" text-anchor="end" x="159" y="104">JMP Address</text> <text dominant-baseline="central" font-family="SansSerif" font-size="10" text-anchor="end" x="159" y="104">JMP Address</text>
<polyline fill="none" points="95,140 100,130 105,140" stroke="#000000"/> <polyline fill="none" points="95,140 100,130 105,140" stroke="#000000"/>
<text dominant-baseline="central" font-family="SansSerif" font-size="10" text-anchor="end" x="160" y="65">WriteReg</text> <text dominant-baseline="central" font-family="SansSerif" font-size="10" text-anchor="end" x="160" y="65">WriteReg</text>
<polyline fill="none" points="161,55 171,60 161,65" stroke="#000000"/>
<circ-anchor facing="east" x="40" y="40"/> <circ-anchor facing="east" x="40" y="40"/>
<circ-port dir="in" pin="110,110" x="100" y="140"/> <circ-port dir="in" pin="110,110" x="100" y="140"/>
<circ-port dir="out" pin="390,110" x="170" y="60"/> <circ-port dir="out" pin="490,270" x="30" y="120"/>
<circ-port dir="out" pin="390,130" x="30" y="80"/> <circ-port dir="out" pin="490,310" x="170" y="60"/>
<circ-port dir="out" pin="390,150" x="30" y="60"/> <circ-port dir="out" pin="490,340" x="30" y="80"/>
<circ-port dir="out" pin="390,220" x="30" y="70"/> <circ-port dir="out" pin="490,370" x="30" y="60"/>
<circ-port dir="out" pin="390,260" x="170" y="100"/> <circ-port dir="out" pin="490,420" x="30" y="100"/>
<circ-port dir="out" pin="390,60" x="30" y="120"/> <circ-port dir="out" pin="490,460" x="170" y="100"/>
</appear> </appear>
<comp lib="0" loc="(110,110)" name="Pin"> <comp lib="0" loc="(110,110)" name="Pin">
<a name="appearance" val="classic"/> <a name="appearance" val="classic"/>
@@ -1005,18 +994,18 @@
</comp> </comp>
<comp lib="0" loc="(130,110)" name="Splitter"> <comp lib="0" loc="(130,110)" name="Splitter">
<a name="appear" val="center"/> <a name="appear" val="center"/>
<a name="bit0" val="2"/> <a name="bit0" val="1"/>
<a name="bit1" val="2"/> <a name="bit10" val="1"/>
<a name="bit10" val="2"/> <a name="bit11" val="1"/>
<a name="bit11" val="2"/> <a name="bit12" val="1"/>
<a name="bit12" val="2"/> <a name="bit13" val="1"/>
<a name="bit13" val="2"/> <a name="bit14" val="1"/>
<a name="bit14" val="2"/> <a name="bit15" val="1"/>
<a name="bit15" val="2"/>
<a name="bit16" val="none"/> <a name="bit16" val="none"/>
<a name="bit17" val="none"/> <a name="bit17" val="none"/>
<a name="bit18" val="none"/> <a name="bit18" val="none"/>
<a name="bit19" val="none"/> <a name="bit19" val="none"/>
<a name="bit2" val="1"/>
<a name="bit20" val="none"/> <a name="bit20" val="none"/>
<a name="bit21" val="none"/> <a name="bit21" val="none"/>
<a name="bit22" val="none"/> <a name="bit22" val="none"/>
@@ -1027,115 +1016,95 @@
<a name="bit27" val="0"/> <a name="bit27" val="0"/>
<a name="bit28" val="0"/> <a name="bit28" val="0"/>
<a name="bit29" val="0"/> <a name="bit29" val="0"/>
<a name="bit3" val="2"/> <a name="bit3" val="1"/>
<a name="bit30" val="1"/> <a name="bit30" val="2"/>
<a name="bit31" val="1"/> <a name="bit31" val="2"/>
<a name="bit4" val="2"/> <a name="bit4" val="1"/>
<a name="bit5" val="2"/> <a name="bit5" val="1"/>
<a name="bit6" val="2"/> <a name="bit6" val="1"/>
<a name="bit7" val="2"/> <a name="bit7" val="1"/>
<a name="bit8" val="2"/> <a name="bit8" val="1"/>
<a name="bit9" val="2"/> <a name="bit9" val="1"/>
<a name="fanout" val="3"/> <a name="fanout" val="3"/>
<a name="incoming" val="32"/> <a name="incoming" val="32"/>
<a name="spacing" val="2"/> <a name="spacing" val="2"/>
</comp> </comp>
<comp lib="0" loc="(260,50)" name="Constant"> <comp lib="0" loc="(490,270)" name="Pin">
<a name="value" val="0x0"/>
<a name="width" val="3"/>
</comp>
<comp lib="0" loc="(320,250)" name="Constant">
<a name="value" val="0x0"/>
<a name="width" val="16"/>
</comp>
<comp lib="0" loc="(390,110)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="WriteReg"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(390,130)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="Store"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(390,150)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="Load"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(390,220)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="CTRL"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(390,260)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="JMPAddress"/>
<a name="output" val="true"/>
<a name="width" val="16"/>
</comp>
<comp lib="0" loc="(390,60)" name="Pin">
<a name="appearance" val="classic"/> <a name="appearance" val="classic"/>
<a name="facing" val="west"/> <a name="facing" val="west"/>
<a name="label" val="GetOp"/> <a name="label" val="GetOp"/>
<a name="output" val="true"/> <a name="output" val="true"/>
<a name="width" val="3"/> <a name="width" val="3"/>
</comp> </comp>
<comp lib="1" loc="(330,110)" name="OR Gate"> <comp lib="0" loc="(490,310)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="WriteReg"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(490,340)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="Store"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(490,370)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="Load"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(490,420)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="CTRL"/>
<a name="output" val="true"/>
</comp>
<comp lib="0" loc="(490,460)" name="Pin">
<a name="appearance" val="classic"/>
<a name="facing" val="west"/>
<a name="label" val="JMPAddress"/>
<a name="output" val="true"/>
<a name="width" val="16"/>
</comp>
<comp lib="1" loc="(390,310)" name="OR Gate">
<a name="size" val="30"/> <a name="size" val="30"/>
</comp> </comp>
<comp lib="2" loc="(180,110)" name="Decoder"> <comp lib="2" loc="(170,130)" name="Decoder">
<a name="enable" val="false"/> <a name="enable" val="false"/>
<a name="select" val="2"/> <a name="select" val="2"/>
<a name="selloc" val="tr"/> <a name="selloc" val="tr"/>
</comp> </comp>
<comp lib="2" loc="(250,120)" name="Decoder"> <comp lib="2" loc="(260,320)" name="Decoder">
<a name="select" val="3"/> <a name="select" val="3"/>
<a name="selloc" val="tr"/> <a name="selloc" val="tr"/>
</comp> </comp>
<comp lib="2" loc="(310,60)" name="Multiplexer">
<a name="width" val="3"/>
</comp>
<comp lib="2" loc="(370,260)" name="Multiplexer">
<a name="selloc" val="tr"/>
<a name="width" val="16"/>
</comp>
<wire from="(110,110)" to="(130,110)"/> <wire from="(110,110)" to="(130,110)"/>
<wire from="(150,110)" to="(180,110)"/> <wire from="(150,110)" to="(210,110)"/>
<wire from="(150,130)" to="(150,270)"/> <wire from="(150,130)" to="(170,130)"/>
<wire from="(150,270)" to="(340,270)"/> <wire from="(150,90)" to="(260,90)"/>
<wire from="(150,90)" to="(250,90)"/> <wire from="(190,130)" to="(280,130)"/>
<wire from="(200,110)" to="(210,110)"/> <wire from="(190,140)" to="(250,140)"/>
<wire from="(200,120)" to="(240,120)"/> <wire from="(190,160)" to="(230,160)"/>
<wire from="(200,140)" to="(210,140)"/> <wire from="(210,110)" to="(210,460)"/>
<wire from="(210,100)" to="(210,110)"/> <wire from="(210,460)" to="(490,460)"/>
<wire from="(210,100)" to="(290,100)"/> <wire from="(230,160)" to="(230,420)"/>
<wire from="(210,140)" to="(210,220)"/> <wire from="(230,420)" to="(490,420)"/>
<wire from="(210,220)" to="(350,220)"/> <wire from="(250,140)" to="(250,320)"/>
<wire from="(250,70)" to="(250,90)"/> <wire from="(260,90)" to="(260,320)"/>
<wire from="(250,70)" to="(280,70)"/> <wire from="(260,90)" to="(330,90)"/>
<wire from="(250,90)" to="(250,120)"/> <wire from="(280,130)" to="(280,300)"/>
<wire from="(260,50)" to="(280,50)"/> <wire from="(280,300)" to="(360,300)"/>
<wire from="(270,120)" to="(290,120)"/> <wire from="(280,320)" to="(350,320)"/>
<wire from="(270,130)" to="(280,130)"/> <wire from="(280,330)" to="(330,330)"/>
<wire from="(280,130)" to="(280,150)"/> <wire from="(330,270)" to="(490,270)"/>
<wire from="(280,150)" to="(390,150)"/> <wire from="(330,330)" to="(330,370)"/>
<wire from="(290,100)" to="(300,100)"/> <wire from="(330,370)" to="(490,370)"/>
<wire from="(290,120)" to="(290,130)"/> <wire from="(330,90)" to="(330,270)"/>
<wire from="(290,120)" to="(300,120)"/> <wire from="(350,320)" to="(350,340)"/>
<wire from="(290,130)" to="(390,130)"/> <wire from="(350,320)" to="(360,320)"/>
<wire from="(290,80)" to="(290,100)"/> <wire from="(350,340)" to="(490,340)"/>
<wire from="(310,60)" to="(390,60)"/> <wire from="(390,310)" to="(490,310)"/>
<wire from="(320,250)" to="(340,250)"/>
<wire from="(330,110)" to="(390,110)"/>
<wire from="(350,220)" to="(350,240)"/>
<wire from="(350,220)" to="(390,220)"/>
<wire from="(370,260)" to="(390,260)"/>
</circuit> </circuit>
<circuit name="GetAddr"> <circuit name="GetAddr">
<a name="appearance" val="custom"/> <a name="appearance" val="custom"/>