aboutsummaryrefslogtreecommitdiffstats
path: root/digital
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-04-09 18:26:25 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-04-09 18:28:28 +0300
commit5b6637fb92c54b8f367ec8751f53f6f238d8dbed (patch)
tree11f1e11690504606db9879b7d282f5955f1ea225 /digital
parent5ab9865fa6ed343ae0cffefb81b20af2e533e36f (diff)
Remake ALU
Diffstat (limited to 'digital')
-rw-r--r--digital/atk16.dig1024
-rw-r--r--digital/atk16_alu.dig2100
-rw-r--r--digital/atk16_alu_fo.dig494
-rw-r--r--digital/atk16_alu_fz.dig192
-rw-r--r--digital/atk16_alu_inputs.dig237
-rw-r--r--digital/atk16_decoder.dig306
-rw-r--r--digital/atk16_jump_unit.dig216
-rw-r--r--digital/atk16_mem.dig17
-rw-r--r--digital/atk16_regbank.dig262
-rw-r--r--digital/tests_alu.dig26
10 files changed, 2647 insertions, 2227 deletions
diff --git a/digital/atk16.dig b/digital/atk16.dig
index 15912d7..2716409 100644
--- a/digital/atk16.dig
+++ b/digital/atk16.dig
@@ -3,6 +3,12 @@
<version>2</version>
<attributes>
<entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
<string>view1</string>
<transform>
<matrix>
@@ -41,6 +47,10 @@
</matrix>
</transform>
</entry>
+ <entry>
+ <string>showDataTable</string>
+ <boolean>true</boolean>
+ </entry>
</attributes>
<visualElements>
<visualElement>
@@ -146,36 +156,6 @@
<pos x="-40" y="-200"/>
</visualElement>
<visualElement>
- <elementName>EEPROM</elementName>
- <elementAttributes>
- <entry>
- <string>AddrBits</string>
- <int>8</int>
- </entry>
- <entry>
- <string>Label</string>
- <string>UCODE</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- <entry>
- <string>Data</string>
- <data>c,221,3040,8000,4*0,c,221,3040,8000,4*0,c,221,3040,8000,4*0,c
-,221,3040,8000,4*0,c,221,88,60,8000,0,0,0,c,221,88,60,8000,0,0,0
-,c,221,88,110,8000,0,0,0,c,221,88,110,8000,0,0,0,c,221,440,8000
-,4*0,c,221,440,8000,4*0,c,221,82,8000,4*0,c,221,82,8000,4*0,c
-,221,8000,5*0,c,221,102,8000,4*0,c,221,8000,5*0,c,221,8000,5*0
-,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c
-,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221
-,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000
-,5*0,c,221,8000,5*0,c,221,4000,5*0,c,221,4000</data>
- </entry>
- </elementAttributes>
- <pos x="620" y="280"/>
- </visualElement>
- <visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
@@ -186,16 +166,6 @@
<pos x="540" y="280"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- </elementAttributes>
- <pos x="600" y="300"/>
- </visualElement>
- <visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
@@ -210,16 +180,6 @@
<pos x="540" y="320"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- </elementAttributes>
- <pos x="600" y="340"/>
- </visualElement>
- <visualElement>
<elementName>BitSelector</elementName>
<elementAttributes>
<entry>
@@ -262,34 +222,6 @@
<pos x="420" y="360"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- </elementAttributes>
- <pos x="580" y="360"/>
- </visualElement>
- <visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>mirror</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>16</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>1*16</string>
- </entry>
- </elementAttributes>
- <pos x="700" y="320"/>
- </visualElement>
- <visualElement>
<elementName>CounterPreset</elementName>
<elementAttributes>
<entry>
@@ -326,7 +258,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[19]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[14]/elementAttributes/entry/rotation"/>
</entry>
</elementAttributes>
<pos x="0" y="-180"/>
@@ -346,162 +278,183 @@
<pos x="-40" y="-280"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Clock</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>PC_CO</string>
+ <string>small</string>
+ <boolean>true</boolean>
</entry>
- </elementAttributes>
- <pos x="740" y="320"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>PC_IE</string>
+ <string>runRealTime</string>
+ <boolean>true</boolean>
</entry>
- </elementAttributes>
- <pos x="740" y="300"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>PC_OE</string>
+ <string>Frequency</string>
+ <int>10</int>
</entry>
</elementAttributes>
- <pos x="740" y="280"/>
+ <pos x="-320" y="-360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>MAR_IE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="740" y="260"/>
+ <pos x="-300" y="-360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>MEM_IE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="740" y="240"/>
+ <pos x="400" y="-220"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>MEM_OE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="740" y="220"/>
+ <pos x="0" y="-260"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>R1_OE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="740" y="180"/>
+ <pos x="280" y="300"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Probe</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>R2_OE</string>
+ <string>Label</string>
+ <string>Bus</string>
</entry>
</elementAttributes>
- <pos x="740" y="160"/>
+ <pos x="200" y="-280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_mem.dig</elementName>
+ <elementAttributes/>
+ <pos x="580" y="-220"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>IR_IE</string>
+ <string>MEM_IE</string>
</entry>
</elementAttributes>
- <pos x="740" y="140"/>
+ <pos x="580" y="-180"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>JA_OE</string>
+ <string>MEM_OE</string>
</entry>
</elementAttributes>
- <pos x="740" y="120"/>
+ <pos x="580" y="-160"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Break</elementName>
+ <elementAttributes/>
+ <pos x="-300" y="-400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_decoder.dig</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>ALU_OE</string>
+ <string>shapeType</string>
+ <shapeType>CUSTOM</shapeType>
</entry>
</elementAttributes>
- <pos x="740" y="80"/>
+ <pos x="-40" y="-80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>US_RS</string>
+ <string>RW_IE</string>
</entry>
</elementAttributes>
- <pos x="740" y="20"/>
+ <pos x="280" y="-60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>FR_IE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="740" y="60"/>
+ <pos x="260" y="-20"/>
</visualElement>
<visualElement>
- <elementName>Clock</elementName>
+ <elementName>atk16_regbank.dig</elementName>
+ <elementAttributes/>
+ <pos x="280" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Counter</elementName>
<elementAttributes>
<entry>
- <string>small</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>runRealTime</string>
+ <string>valueIsProbe</string>
<boolean>true</boolean>
</entry>
<entry>
- <string>Frequency</string>
- <int>10</int>
+ <string>Label</string>
+ <string>Microsequencer</string>
</entry>
- </elementAttributes>
- <pos x="-320" y="-360"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>CLK</string>
+ <string>Bits</string>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="-300" y="-360"/>
+ <pos x="60" y="240"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -512,24 +465,25 @@
</entry>
<entry>
<string>NetName</string>
- <string>CLK</string>
+ <string>US_RS</string>
</entry>
</elementAttributes>
- <pos x="400" y="-220"/>
+ <pos x="-80" y="280"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>VDD</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>CLK</string>
+ <rotation rotation="1"/>
</entry>
</elementAttributes>
- <pos x="0" y="-260"/>
+ <pos x="40" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes/>
+ <pos x="0" y="260"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -543,89 +497,76 @@
<string>CLK</string>
</entry>
</elementAttributes>
- <pos x="280" y="300"/>
+ <pos x="-40" y="260"/>
</visualElement>
<visualElement>
- <elementName>Probe</elementName>
+ <elementName>Reset</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>Bus</string>
+ <string>invertOutput</string>
+ <boolean>false</boolean>
</entry>
</elementAttributes>
- <pos x="200" y="-280"/>
+ <pos x="-60" y="320"/>
</visualElement>
<visualElement>
- <elementName>atk16_mem.dig</elementName>
+ <elementName>Or</elementName>
<elementAttributes/>
- <pos x="580" y="-220"/>
+ <pos x="-20" y="280"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>MEM_IE</string>
+ <string>FLAG_EQ</string>
</entry>
</elementAttributes>
- <pos x="580" y="-180"/>
+ <pos x="100" y="-100"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Description</string>
+ <string>Dummy output</string>
</entry>
<entry>
- <string>NetName</string>
- <string>MEM_OE</string>
+ <string>Label</string>
+ <string>OUT</string>
</entry>
</elementAttributes>
- <pos x="580" y="-160"/>
- </visualElement>
- <visualElement>
- <elementName>Break</elementName>
- <elementAttributes/>
- <pos x="-300" y="-400"/>
+ <pos x="960" y="-140"/>
</visualElement>
<visualElement>
- <elementName>atk16_decoder.dig</elementName>
+ <elementName>Ground</elementName>
<elementAttributes>
<entry>
- <string>shapeType</string>
- <shapeType>SIMPLE</shapeType>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
</elementAttributes>
- <pos x="0" y="-80"/>
+ <pos x="940" y="-140"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>OPCODE</string>
+ <string>Label</string>
+ <string>IN</string>
</entry>
</elementAttributes>
- <pos x="80" y="60"/>
+ <pos x="960" y="-200"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Ground</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>JA_OE</string>
+ <rotation reference="../../../../visualElement[40]/elementAttributes/entry/rotation"/>
</entry>
</elementAttributes>
- <pos x="-20" y="-20"/>
+ <pos x="980" y="-200"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -639,7 +580,7 @@
<string>IR_IE</string>
</entry>
</elementAttributes>
- <pos x="-20" y="-60"/>
+ <pos x="-60" y="-60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -653,178 +594,230 @@
<string>CLK</string>
</entry>
</elementAttributes>
- <pos x="0" y="-40"/>
+ <pos x="-40" y="-40"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>RW_IE</string>
+ <string>OPCODE</string>
</entry>
</elementAttributes>
- <pos x="740" y="200"/>
+ <pos x="100" y="-80"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>mirror</string>
+ <boolean>true</boolean>
</entry>
<entry>
- <string>NetName</string>
- <string>RW_IE</string>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1*16</string>
</entry>
</elementAttributes>
- <pos x="280" y="-60"/>
+ <pos x="880" y="320"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>CLK</string>
+ <string>PC_CO</string>
</entry>
</elementAttributes>
- <pos x="260" y="-20"/>
+ <pos x="920" y="320"/>
</visualElement>
<visualElement>
- <elementName>atk16_regbank.dig</elementName>
- <elementAttributes/>
- <pos x="280" y="-80"/>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PC_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="300"/>
</visualElement>
<visualElement>
- <elementName>atk16_alu.dig</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>shapeType</string>
- <shapeType>SIMPLE</shapeType>
+ <string>NetName</string>
+ <string>PC_OE</string>
</entry>
+ </elementAttributes>
+ <pos x="920" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
<entry>
- <string>Label</string>
- <string>ALU</string>
+ <string>NetName</string>
+ <string>MAR_IE</string>
</entry>
</elementAttributes>
- <pos x="480" y="20"/>
+ <pos x="920" y="260"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>NetName</string>
+ <string>MEM_IE</string>
</entry>
+ </elementAttributes>
+ <pos x="920" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
<entry>
- <string>flipSelPos</string>
- <boolean>true</boolean>
+ <string>NetName</string>
+ <string>MEM_OE</string>
</entry>
</elementAttributes>
- <pos x="460" y="-100"/>
+ <pos x="920" y="220"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>NetName</string>
+ <string>R1_OE</string>
</entry>
+ </elementAttributes>
+ <pos x="920" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
<entry>
- <string>flipSelPos</string>
- <boolean>true</boolean>
+ <string>NetName</string>
+ <string>R2_OE</string>
</entry>
</elementAttributes>
- <pos x="480" y="-60"/>
+ <pos x="920" y="160"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>R2_OE</string>
+ <string>IR_IE</string>
</entry>
</elementAttributes>
- <pos x="500" y="-40"/>
+ <pos x="920" y="140"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>NetName</string>
+ <string>ALU_OE</string>
</entry>
</elementAttributes>
- <pos x="600" y="20"/>
+ <pos x="920" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="1"/>
+ <string>NetName</string>
+ <string>US_RS</string>
</entry>
+ </elementAttributes>
+ <pos x="920" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
<entry>
<string>NetName</string>
- <string>ALU_OE</string>
+ <string>FR_IE</string>
</entry>
</elementAttributes>
- <pos x="600" y="0"/>
+ <pos x="920" y="60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>R1_OE</string>
+ <string>RW_IE</string>
</entry>
</elementAttributes>
- <pos x="480" y="-80"/>
+ <pos x="920" y="200"/>
</visualElement>
<visualElement>
- <elementName>Probe</elementName>
+ <elementName>Stop</elementName>
+ <elementAttributes/>
+ <pos x="1000" y="40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>ALU</string>
+ <string>NetName</string>
+ <string>LI_OE</string>
</entry>
</elementAttributes>
- <pos x="680" y="-40"/>
+ <pos x="920" y="100"/>
</visualElement>
<visualElement>
- <elementName>Counter</elementName>
+ <elementName>EEPROM</elementName>
<elementAttributes>
<entry>
- <string>valueIsProbe</string>
- <boolean>true</boolean>
+ <string>AddrBits</string>
+ <int>8</int>
</entry>
<entry>
<string>Label</string>
- <string>Microsequencer</string>
+ <string>UCODE</string>
</entry>
<entry>
<string>Bits</string>
- <int>3</int>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>Data</string>
+ <data>c,221,3040,8000,4*0,c,221,3040,8000,4*0,c,221,3040,8000,4*0,c
+,221,3040,8000,4*0,c,221,88,60,8000,0,0,0,c,221,88,60,8000,0,0,0
+,c,221,88,90,8000,0,0,0,c,221,88,90,8000,0,0,0,c,221,840,8000
+,4*0,c,221,840,8000,4*0,c,221,82,8000,4*0,c,221,82,8000,4*0,c
+,221,802,8000,4*0,c,221,802,8000,4*0,c,221,8000,5*0,c,221,82,8000
+,4*0,c,221,8000,5*0,c,221,802,8000,4*0,c,221,8000,5*0,c,221,8000
+,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0
+,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c,221,8000,5*0,c
+,221,8000,5*0,c,221,8000,5*0,c,221,4000,5*0,c,221,4000</data>
</entry>
</elementAttributes>
- <pos x="60" y="240"/>
+ <pos x="780" y="280"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>VDD</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
+ </elementAttributes>
+ <pos x="760" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
<entry>
- <string>NetName</string>
- <string>US_RS</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
</elementAttributes>
- <pos x="-80" y="280"/>
+ <pos x="760" y="340"/>
</visualElement>
<visualElement>
<elementName>VDD</elementName>
@@ -834,12 +827,7 @@
<rotation rotation="1"/>
</entry>
</elementAttributes>
- <pos x="40" y="240"/>
- </visualElement>
- <visualElement>
- <elementName>Not</elementName>
- <elementAttributes/>
- <pos x="0" y="260"/>
+ <pos x="740" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -850,58 +838,101 @@
</entry>
<entry>
<string>NetName</string>
- <string>CLK</string>
+ <string>LI_OE</string>
</entry>
</elementAttributes>
- <pos x="-40" y="260"/>
+ <pos x="-60" y="-20"/>
</visualElement>
<visualElement>
- <elementName>Reset</elementName>
+ <elementName>atk16_alu.dig</elementName>
<elementAttributes>
<entry>
- <string>invertOutput</string>
- <boolean>false</boolean>
+ <string>shapeType</string>
+ <shapeType>SIMPLE</shapeType>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>ALU</string>
</entry>
</elementAttributes>
- <pos x="-60" y="320"/>
+ <pos x="740" y="-40"/>
</visualElement>
<visualElement>
- <elementName>Or</elementName>
+ <elementName>atk16_alu_inputs.dig</elementName>
<elementAttributes/>
- <pos x="-20" y="280"/>
+ <pos x="580" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="880" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="440" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="460" y="-60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>FLAG_EQ</string>
+ <string>R1_OE</string>
</entry>
</elementAttributes>
- <pos x="100" y="-100"/>
+ <pos x="460" y="-80"/>
</visualElement>
<visualElement>
- <elementName>Stop</elementName>
- <elementAttributes/>
- <pos x="820" y="40"/>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>R2_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="460" y="-40"/>
</visualElement>
<visualElement>
- <elementName>Probe</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
<entry>
- <string>Label</string>
+ <string>NetName</string>
<string>OPCODE</string>
</entry>
- <entry>
- <string>intFormat</string>
- <intFormat>bin</intFormat>
- </entry>
</elementAttributes>
- <pos x="60" y="60"/>
+ <pos x="540" y="60"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
@@ -921,51 +952,74 @@ program(0x4051, 0x40a2, 0x029b)
</testData>
</entry>
</elementAttributes>
- <pos x="-340" y="-240"/>
+ <pos x="-60" y="-460"/>
</visualElement>
<visualElement>
- <elementName>Out</elementName>
+ <elementName>atk16_jump_unit.dig</elementName>
+ <elementAttributes/>
+ <pos x="-220" y="-240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>OUT</string>
+ <string>rotation</string>
+ <rotation rotation="2"/>
</entry>
<entry>
- <string>Description</string>
- <string>Dummy output</string>
+ <string>NetName</string>
+ <string>OPCODE</string>
</entry>
</elementAttributes>
- <pos x="960" y="-140"/>
+ <pos x="-240" y="-200"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="1"/>
</entry>
+ <entry>
+ <string>NetName</string>
+ <string>ALU_OE</string>
+ </entry>
</elementAttributes>
- <pos x="940" y="-140"/>
+ <pos x="880" y="-60"/>
</visualElement>
<visualElement>
- <elementName>In</elementName>
+ <elementName>Probe</elementName>
<elementAttributes>
<entry>
<string>Label</string>
- <string>IN</string>
+ <string>PC</string>
</entry>
</elementAttributes>
- <pos x="960" y="-200"/>
+ <pos x="240" y="-380"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[74]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>OPCODE</string>
</entry>
</elementAttributes>
- <pos x="980" y="-200"/>
+ <pos x="240" y="-440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Probe</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>OPCODE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="-440"/>
</visualElement>
</visualElements>
<wires>
@@ -974,32 +1028,40 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="300" y="320"/>
</wire>
<wire>
- <p1 x="680" y="320"/>
- <p2 x="700" y="320"/>
+ <p1 x="-60" y="320"/>
+ <p2 x="-20" y="320"/>
</wire>
<wire>
- <p1 x="720" y="320"/>
- <p2 x="740" y="320"/>
+ <p1 x="900" y="320"/>
+ <p2 x="920" y="320"/>
</wire>
<wire>
- <p1 x="-60" y="320"/>
- <p2 x="-20" y="320"/>
+ <p1 x="840" y="320"/>
+ <p2 x="880" y="320"/>
</wire>
<wire>
<p1 x="60" y="0"/>
- <p2 x="80" y="0"/>
+ <p2 x="160" y="0"/>
</wire>
<wire>
- <p1 x="160" y="0"/>
+ <p1 x="180" y="0"/>
<p2 x="280" y="0"/>
</wire>
<wire>
- <p1 x="0" y="-260"/>
- <p2 x="20" y="-260"/>
+ <p1 x="720" y="0"/>
+ <p2 x="740" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="0"/>
+ <p2 x="520" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="0"/>
+ <p2 x="580" y="0"/>
</wire>
<wire>
- <p1 x="720" y="260"/>
- <p2 x="740" y="260"/>
+ <p1 x="0" y="-260"/>
+ <p2 x="20" y="-260"/>
</wire>
<wire>
<p1 x="40" y="260"/>
@@ -1010,6 +1072,10 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="0" y="260"/>
</wire>
<wire>
+ <p1 x="900" y="260"/>
+ <p2 x="920" y="260"/>
+ </wire>
+ <wire>
<p1 x="380" y="-200"/>
<p2 x="400" y="-200"/>
</wire>
@@ -1026,60 +1092,64 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="980" y="-200"/>
</wire>
<wire>
- <p1 x="720" y="200"/>
- <p2 x="740" y="200"/>
+ <p1 x="-240" y="-200"/>
+ <p2 x="-220" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="900" y="200"/>
+ <p2 x="920" y="200"/>
</wire>
<wire>
<p1 x="280" y="200"/>
- <p2 x="580" y="200"/>
+ <p2 x="860" y="200"/>
</wire>
<wire>
<p1 x="940" y="-140"/>
<p2 x="960" y="-140"/>
</wire>
<wire>
- <p1 x="-20" y="-140"/>
- <p2 x="200" y="-140"/>
- </wire>
- <wire>
- <p1 x="480" y="-140"/>
- <p2 x="520" y="-140"/>
+ <p1 x="-280" y="-140"/>
+ <p2 x="-60" y="-140"/>
</wire>
<wire>
<p1 x="200" y="-140"/>
<p2 x="480" y="-140"/>
</wire>
<wire>
- <p1 x="720" y="140"/>
- <p2 x="740" y="140"/>
+ <p1 x="-60" y="-140"/>
+ <p2 x="200" y="-140"/>
</wire>
<wire>
- <p1 x="-20" y="-80"/>
- <p2 x="0" y="-80"/>
+ <p1 x="900" y="140"/>
+ <p2 x="920" y="140"/>
</wire>
<wire>
<p1 x="200" y="-80"/>
<p2 x="280" y="-80"/>
</wire>
<wire>
+ <p1 x="-60" y="-80"/>
+ <p2 x="-40" y="-80"/>
+ </wire>
+ <wire>
<p1 x="60" y="-80"/>
- <p2 x="180" y="-80"/>
+ <p2 x="100" y="-80"/>
</wire>
<wire>
- <p1 x="460" y="-80"/>
- <p2 x="480" y="-80"/>
+ <p1 x="440" y="-80"/>
+ <p2 x="460" y="-80"/>
</wire>
<wire>
- <p1 x="340" y="-80"/>
+ <p1 x="380" y="-80"/>
<p2 x="400" y="-80"/>
</wire>
<wire>
- <p1 x="720" y="80"/>
- <p2 x="740" y="80"/>
+ <p1 x="900" y="80"/>
+ <p2 x="920" y="80"/>
</wire>
<wire>
- <p1 x="-20" y="-20"/>
- <p2 x="0" y="-20"/>
+ <p1 x="200" y="80"/>
+ <p2 x="720" y="80"/>
</wire>
<wire>
<p1 x="260" y="-20"/>
@@ -1087,51 +1157,63 @@ program(0x4051, 0x40a2, 0x029b)
</wire>
<wire>
<p1 x="60" y="-20"/>
- <p2 x="120" y="-20"/>
+ <p2 x="180" y="-20"/>
</wire>
<wire>
- <p1 x="600" y="340"/>
- <p2 x="620" y="340"/>
+ <p1 x="-60" y="-20"/>
+ <p2 x="-40" y="-20"/>
</wire>
<wire>
- <p1 x="720" y="20"/>
- <p2 x="740" y="20"/>
+ <p1 x="680" y="-20"/>
+ <p2 x="740" y="-20"/>
</wire>
<wire>
- <p1 x="140" y="20"/>
- <p2 x="280" y="20"/>
+ <p1 x="840" y="-20"/>
+ <p2 x="860" y="-20"/>
</wire>
<wire>
- <p1 x="620" y="20"/>
- <p2 x="640" y="20"/>
+ <p1 x="400" y="-20"/>
+ <p2 x="500" y="-20"/>
</wire>
<wire>
- <p1 x="440" y="20"/>
- <p2 x="480" y="20"/>
+ <p1 x="520" y="-20"/>
+ <p2 x="580" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="-340"/>
+ <p2 x="100" y="-340"/>
</wire>
<wire>
- <p1 x="540" y="20"/>
- <p2 x="560" y="20"/>
+ <p1 x="160" y="20"/>
+ <p2 x="220" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="900" y="20"/>
+ <p2 x="920" y="20"/>
</wire>
<wire>
<p1 x="560" y="20"/>
<p2 x="580" y="20"/>
</wire>
<wire>
- <p1 x="80" y="-280"/>
- <p2 x="100" y="-280"/>
+ <p1 x="440" y="20"/>
+ <p2 x="540" y="20"/>
</wire>
<wire>
- <p1 x="-40" y="-280"/>
- <p2 x="20" y="-280"/>
+ <p1 x="220" y="20"/>
+ <p2 x="280" y="20"/>
</wire>
<wire>
- <p1 x="560" y="280"/>
- <p2 x="620" y="280"/>
+ <p1 x="760" y="340"/>
+ <p2 x="780" y="340"/>
</wire>
<wire>
- <p1 x="720" y="280"/>
- <p2 x="740" y="280"/>
+ <p1 x="80" y="-280"/>
+ <p2 x="100" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-280"/>
+ <p2 x="20" y="-280"/>
</wire>
<wire>
<p1 x="40" y="280"/>
@@ -1150,94 +1232,94 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="300" y="280"/>
</wire>
<wire>
- <p1 x="-20" y="-220"/>
- <p2 x="20" y="-220"/>
+ <p1 x="900" y="280"/>
+ <p2 x="920" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="280"/>
+ <p2 x="780" y="280"/>
</wire>
<wire>
<p1 x="460" y="-220"/>
<p2 x="580" y="-220"/>
</wire>
<wire>
- <p1 x="720" y="220"/>
- <p2 x="740" y="220"/>
+ <p1 x="-240" y="-220"/>
+ <p2 x="-220" y="-220"/>
</wire>
<wire>
- <p1 x="720" y="160"/>
- <p2 x="740" y="160"/>
+ <p1 x="-120" y="-220"/>
+ <p2 x="20" y="-220"/>
</wire>
<wire>
- <p1 x="480" y="-100"/>
- <p2 x="520" y="-100"/>
+ <p1 x="900" y="220"/>
+ <p2 x="920" y="220"/>
</wire>
<wire>
- <p1 x="400" y="-100"/>
- <p2 x="440" y="-100"/>
+ <p1 x="900" y="160"/>
+ <p2 x="920" y="160"/>
</wire>
<wire>
<p1 x="80" y="-100"/>
<p2 x="100" y="-100"/>
</wire>
<wire>
- <p1 x="520" y="-100"/>
- <p2 x="640" y="-100"/>
+ <p1 x="460" y="-100"/>
+ <p2 x="500" y="-100"/>
</wire>
<wire>
- <p1 x="-320" y="-360"/>
- <p2 x="-300" y="-360"/>
+ <p1 x="400" y="-100"/>
+ <p2 x="420" y="-100"/>
</wire>
<wire>
- <p1 x="180" y="-40"/>
- <p2 x="280" y="-40"/>
+ <p1 x="900" y="100"/>
+ <p2 x="920" y="100"/>
</wire>
<wire>
- <p1 x="60" y="-40"/>
- <p2 x="140" y="-40"/>
+ <p1 x="-320" y="-360"/>
+ <p2 x="-300" y="-360"/>
</wire>
<wire>
- <p1 x="560" y="-40"/>
- <p2 x="680" y="-40"/>
+ <p1 x="60" y="-40"/>
+ <p2 x="200" y="-40"/>
</wire>
<wire>
- <p1 x="400" y="-40"/>
- <p2 x="440" y="-40"/>
+ <p1 x="220" y="-40"/>
+ <p2 x="280" y="-40"/>
</wire>
<wire>
- <p1 x="480" y="-40"/>
- <p2 x="500" y="-40"/>
+ <p1 x="680" y="-40"/>
+ <p2 x="740" y="-40"/>
</wire>
<wire>
- <p1 x="580" y="360"/>
- <p2 x="620" y="360"/>
+ <p1 x="840" y="-40"/>
+ <p2 x="860" y="-40"/>
</wire>
<wire>
- <p1 x="400" y="360"/>
- <p2 x="420" y="360"/>
+ <p1 x="900" y="-40"/>
+ <p2 x="920" y="-40"/>
</wire>
<wire>
- <p1 x="420" y="40"/>
- <p2 x="480" y="40"/>
+ <p1 x="500" y="-40"/>
+ <p2 x="580" y="-40"/>
</wire>
<wire>
- <p1 x="120" y="40"/>
- <p2 x="180" y="40"/>
+ <p1 x="400" y="360"/>
+ <p2 x="420" y="360"/>
</wire>
<wire>
- <p1 x="540" y="40"/>
- <p2 x="580" y="40"/>
+ <p1 x="740" y="360"/>
+ <p2 x="780" y="360"/>
</wire>
<wire>
- <p1 x="720" y="40"/>
- <p2 x="820" y="40"/>
+ <p1 x="900" y="40"/>
+ <p2 x="1000" y="40"/>
</wire>
<wire>
<p1 x="280" y="300"/>
<p2 x="300" y="300"/>
</wire>
<wire>
- <p1 x="600" y="300"/>
- <p2 x="620" y="300"/>
- </wire>
- <wire>
<p1 x="360" y="300"/>
<p2 x="400" y="300"/>
</wire>
@@ -1246,8 +1328,12 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="540" y="300"/>
</wire>
<wire>
- <p1 x="720" y="300"/>
- <p2 x="740" y="300"/>
+ <p1 x="900" y="300"/>
+ <p2 x="920" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="300"/>
+ <p2 x="780" y="300"/>
</wire>
<wire>
<p1 x="100" y="-240"/>
@@ -1262,12 +1348,12 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="200" y="-240"/>
</wire>
<wire>
- <p1 x="200" y="-240"/>
- <p2 x="400" y="-240"/>
+ <p1 x="-280" y="-240"/>
+ <p2 x="-220" y="-240"/>
</wire>
<wire>
- <p1 x="720" y="240"/>
- <p2 x="740" y="240"/>
+ <p1 x="200" y="-240"/>
+ <p2 x="400" y="-240"/>
</wire>
<wire>
<p1 x="40" y="240"/>
@@ -1278,68 +1364,76 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="500" y="240"/>
</wire>
<wire>
+ <p1 x="900" y="240"/>
+ <p2 x="920" y="240"/>
+ </wire>
+ <wire>
<p1 x="0" y="-180"/>
<p2 x="20" y="-180"/>
</wire>
<wire>
- <p1 x="720" y="180"/>
- <p2 x="740" y="180"/>
+ <p1 x="900" y="180"/>
+ <p2 x="920" y="180"/>
</wire>
<wire>
- <p1 x="720" y="120"/>
- <p2 x="740" y="120"/>
+ <p1 x="480" y="-120"/>
+ <p2 x="500" y="-120"/>
</wire>
<wire>
- <p1 x="-20" y="-60"/>
- <p2 x="0" y="-60"/>
+ <p1 x="500" y="-120"/>
+ <p2 x="920" y="-120"/>
</wire>
<wire>
<p1 x="60" y="-60"/>
<p2 x="80" y="-60"/>
</wire>
<wire>
- <p1 x="340" y="-60"/>
- <p2 x="420" y="-60"/>
+ <p1 x="-60" y="-60"/>
+ <p2 x="-40" y="-60"/>
</wire>
<wire>
- <p1 x="500" y="-60"/>
- <p2 x="640" y="-60"/>
+ <p1 x="480" y="-60"/>
+ <p2 x="500" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="-60"/>
+ <p2 x="420" y="-60"/>
</wire>
<wire>
<p1 x="420" y="-60"/>
- <p2 x="460" y="-60"/>
+ <p2 x="440" y="-60"/>
</wire>
<wire>
<p1 x="80" y="-60"/>
- <p2 x="160" y="-60"/>
+ <p2 x="220" y="-60"/>
</wire>
<wire>
- <p1 x="720" y="60"/>
- <p2 x="740" y="60"/>
+ <p1 x="100" y="-380"/>
+ <p2 x="240" y="-380"/>
</wire>
<wire>
- <p1 x="180" y="60"/>
- <p2 x="480" y="60"/>
+ <p1 x="900" y="60"/>
+ <p2 x="920" y="60"/>
</wire>
<wire>
- <p1 x="60" y="60"/>
- <p2 x="80" y="60"/>
+ <p1 x="540" y="60"/>
+ <p2 x="560" y="60"/>
</wire>
<wire>
- <p1 x="480" y="-200"/>
- <p2 x="480" y="-140"/>
+ <p1 x="220" y="60"/>
+ <p2 x="440" y="60"/>
</wire>
<wire>
- <p1 x="160" y="-60"/>
- <p2 x="160" y="0"/>
+ <p1 x="480" y="-200"/>
+ <p2 x="480" y="-140"/>
</wire>
<wire>
- <p1 x="640" y="-100"/>
- <p2 x="640" y="-60"/>
+ <p1 x="480" y="-140"/>
+ <p2 x="480" y="-120"/>
</wire>
<wire>
- <p1 x="640" y="-60"/>
- <p2 x="640" y="20"/>
+ <p1 x="160" y="0"/>
+ <p2 x="160" y="20"/>
</wire>
<wire>
<p1 x="420" y="320"/>
@@ -1347,21 +1441,29 @@ program(0x4051, 0x40a2, 0x029b)
</wire>
<wire>
<p1 x="420" y="-60"/>
- <p2 x="420" y="40"/>
+ <p2 x="420" y="0"/>
</wire>
<wire>
- <p1 x="100" y="-280"/>
- <p2 x="100" y="-240"/>
+ <p1 x="100" y="-380"/>
+ <p2 x="100" y="-340"/>
</wire>
<wire>
- <p1 x="580" y="40"/>
- <p2 x="580" y="200"/>
+ <p1 x="100" y="-340"/>
+ <p2 x="100" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="-280"/>
+ <p2 x="100" y="-240"/>
</wire>
<wire>
<p1 x="200" y="-280"/>
<p2 x="200" y="-240"/>
</wire>
<wire>
+ <p1 x="200" y="-40"/>
+ <p2 x="200" y="80"/>
+ </wire>
+ <wire>
<p1 x="200" y="-240"/>
<p2 x="200" y="-140"/>
</wire>
@@ -1374,56 +1476,60 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="40" y="300"/>
</wire>
<wire>
- <p1 x="520" y="-140"/>
- <p2 x="520" y="-100"/>
+ <p1 x="520" y="-20"/>
+ <p2 x="520" y="0"/>
</wire>
<wire>
<p1 x="-300" y="-400"/>
<p2 x="-300" y="-360"/>
</wire>
<wire>
- <p1 x="140" y="-40"/>
- <p2 x="140" y="20"/>
- </wire>
- <wire>
- <p1 x="80" y="0"/>
- <p2 x="80" y="60"/>
+ <p1 x="-240" y="-340"/>
+ <p2 x="-240" y="-220"/>
</wire>
<wire>
<p1 x="80" y="-100"/>
<p2 x="80" y="-60"/>
</wire>
<wire>
+ <p1 x="720" y="0"/>
+ <p2 x="720" y="80"/>
+ </wire>
+ <wire>
<p1 x="400" y="-100"/>
<p2 x="400" y="-80"/>
</wire>
<wire>
<p1 x="400" y="-80"/>
- <p2 x="400" y="-40"/>
+ <p2 x="400" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="20"/>
+ <p2 x="560" y="60"/>
</wire>
<wire>
- <p1 x="560" y="-40"/>
- <p2 x="560" y="20"/>
+ <p1 x="500" y="240"/>
+ <p2 x="500" y="280"/>
</wire>
<wire>
- <p1 x="-20" y="-220"/>
- <p2 x="-20" y="-140"/>
+ <p1 x="500" y="-120"/>
+ <p2 x="500" y="-100"/>
</wire>
<wire>
- <p1 x="-20" y="-140"/>
- <p2 x="-20" y="-80"/>
+ <p1 x="500" y="-40"/>
+ <p2 x="500" y="-20"/>
</wire>
<wire>
- <p1 x="180" y="-80"/>
- <p2 x="180" y="-40"/>
+ <p1 x="500" y="-100"/>
+ <p2 x="500" y="-60"/>
</wire>
<wire>
- <p1 x="180" y="40"/>
- <p2 x="180" y="60"/>
+ <p1 x="180" y="-20"/>
+ <p2 x="180" y="0"/>
</wire>
<wire>
- <p1 x="500" y="240"/>
- <p2 x="500" y="280"/>
+ <p1 x="-280" y="-240"/>
+ <p2 x="-280" y="-140"/>
</wire>
<wire>
<p1 x="280" y="320"/>
@@ -1434,17 +1540,37 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="280" y="280"/>
</wire>
<wire>
- <p1 x="440" y="-40"/>
- <p2 x="440" y="20"/>
+ <p1 x="920" y="-120"/>
+ <p2 x="920" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="20"/>
+ <p2 x="440" y="60"/>
</wire>
<wire>
- <p1 x="120" y="-20"/>
- <p2 x="120" y="40"/>
+ <p1 x="-60" y="-140"/>
+ <p2 x="-60" y="-80"/>
</wire>
<wire>
<p1 x="380" y="-200"/>
<p2 x="380" y="-180"/>
</wire>
+ <wire>
+ <p1 x="220" y="-60"/>
+ <p2 x="220" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="20"/>
+ <p2 x="220" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="860" y="-20"/>
+ <p2 x="860" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="0"/>
+ <p2 x="540" y="20"/>
+ </wire>
</wires>
<measurementOrdering/>
</circuit> \ No newline at end of file
diff --git a/digital/atk16_alu.dig b/digital/atk16_alu.dig
index d456fee..0f40f94 100644
--- a/digital/atk16_alu.dig
+++ b/digital/atk16_alu.dig
@@ -1,737 +1,526 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>2</version>
- <attributes/>
+ <attributes>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
<visualElements>
<visualElement>
- <elementName>74382.dig</elementName>
- <elementAttributes/>
- <pos x="-100" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>74382.dig</elementName>
- <elementAttributes/>
- <pos x="220" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>74382.dig</elementName>
- <elementAttributes/>
- <pos x="560" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>74382.dig</elementName>
- <elementAttributes/>
- <pos x="920" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>VDD</elementName>
+ <elementName>Add</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="3"/>
+ <string>Label</string>
+ <string>PLUS</string>
</entry>
- </elementAttributes>
- <pos x="60" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>VDD</elementName>
- <elementAttributes>
<entry>
- <string>rotation</string>
- <rotation reference="../../../../visualElement[5]/elementAttributes/entry/rotation"/>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="380" y="160"/>
+ <pos x="60" y="0"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[5]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
</entry>
- </elementAttributes>
- <pos x="720" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>VDD</elementName>
- <elementAttributes>
<entry>
- <string>rotation</string>
- <rotation reference="../../../../visualElement[5]/elementAttributes/entry/rotation"/>
- </entry>
- </elementAttributes>
- <pos x="1080" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
+ <string>NetName</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="-120" y="520"/>
+ <pos x="40" y="0"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[9]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
</entry>
- </elementAttributes>
- <pos x="200" y="520"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
<entry>
- <string>rotation</string>
- <rotation reference="../../../../visualElement[9]/elementAttributes/entry/rotation"/>
+ <string>NetName</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="540" y="520"/>
+ <pos x="40" y="20"/>
</visualElement>
<visualElement>
<elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation reference="../../../../visualElement[9]/elementAttributes/entry/rotation"/>
- </entry>
- </elementAttributes>
- <pos x="900" y="520"/>
- </visualElement>
- <visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>mirror</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>16</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>1*16</string>
- </entry>
- </elementAttributes>
- <pos x="-440" y="220"/>
- </visualElement>
- <visualElement>
- <elementName>In</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>LHS of binary ALU operation</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>A</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="-480" y="220"/>
- </visualElement>
- <visualElement>
- <elementName>In</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>RHS of binary ALU operation</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>B</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="-480" y="360"/>
+ <elementAttributes/>
+ <pos x="40" y="60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>A0</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="-380" y="220"/>
+ <pos x="240" y="0"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>A1</string>
+ <string>FC</string>
</entry>
</elementAttributes>
- <pos x="-380" y="200"/>
+ <pos x="240" y="20"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A2</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-380" y="180"/>
+ <pos x="160" y="0"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A3</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
- </elementAttributes>
- <pos x="-380" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>A4</string>
+ <string>S0</string>
</entry>
</elementAttributes>
- <pos x="-380" y="140"/>
+ <pos x="160" y="-20"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>A5</string>
- </entry>
- </elementAttributes>
- <pos x="-380" y="120"/>
+ <elementName>Driver</elementName>
+ <elementAttributes/>
+ <pos x="200" y="40"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A6</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
- </elementAttributes>
- <pos x="-380" y="100"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>A7</string>
+ <string>S0</string>
</entry>
</elementAttributes>
- <pos x="-380" y="80"/>
+ <pos x="200" y="20"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>atk16_alu_fo.dig</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A8</string>
+ <string>Label</string>
+ <string>Overflow flag</string>
</entry>
</elementAttributes>
- <pos x="-380" y="60"/>
+ <pos x="620" y="0"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A9</string>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
- </elementAttributes>
- <pos x="-380" y="40"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>A10</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="-380" y="20"/>
+ <pos x="200" y="120"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A11</string>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[3]/elementAttributes/entry/rotation"/>
</entry>
- </elementAttributes>
- <pos x="-380" y="0"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>A12</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="-380" y="-20"/>
+ <pos x="200" y="140"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>A13</string>
- </entry>
- </elementAttributes>
- <pos x="-380" y="-40"/>
+ <elementName>Ground</elementName>
+ <elementAttributes/>
+ <pos x="200" y="180"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>A14</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="-380" y="-60"/>
+ <pos x="400" y="120"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>A15</string>
+ <string>FC</string>
</entry>
</elementAttributes>
- <pos x="-380" y="-80"/>
+ <pos x="400" y="140"/>
</visualElement>
<visualElement>
- <elementName>In</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>Description</string>
- <string>ALU operation code</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>S</string>
- </entry>
- <entry>
<string>Bits</string>
- <int>4</int>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-500" y="600"/>
+ <pos x="320" y="120"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Input Splitting</string>
- <string>4</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
<entry>
- <string>Output Splitting</string>
- <string>1*4</string>
+ <string>NetName</string>
+ <string>S1</string>
</entry>
</elementAttributes>
- <pos x="-420" y="600"/>
+ <pos x="320" y="100"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>mirror</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>16</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>1*16</string>
- </entry>
- </elementAttributes>
- <pos x="-320" y="360"/>
+ <elementName>Driver</elementName>
+ <elementAttributes/>
+ <pos x="360" y="160"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B0</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
- </elementAttributes>
- <pos x="-260" y="360"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>B1</string>
+ <string>S1</string>
</entry>
</elementAttributes>
- <pos x="-260" y="340"/>
+ <pos x="360" y="140"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Sub</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B2</string>
+ <string>Label</string>
+ <string>MINUS</string>
</entry>
- </elementAttributes>
- <pos x="-260" y="320"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>B3</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-260" y="300"/>
+ <pos x="220" y="120"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>And</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B4</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-260" y="280"/>
+ <pos x="60" y="240"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Text</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B5</string>
+ <string>Description</string>
+ <string>AND</string>
</entry>
</elementAttributes>
- <pos x="-260" y="260"/>
+ <pos x="60" y="200"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B6</string>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
- </elementAttributes>
- <pos x="-260" y="240"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>B7</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="-260" y="220"/>
+ <pos x="40" y="240"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B8</string>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[3]/elementAttributes/entry/rotation"/>
</entry>
- </elementAttributes>
- <pos x="-260" y="200"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>B9</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="-260" y="180"/>
+ <pos x="40" y="260"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B10</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-260" y="160"/>
+ <pos x="160" y="260"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B11</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
- </elementAttributes>
- <pos x="-260" y="140"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>B12</string>
+ <string>S2</string>
</entry>
</elementAttributes>
- <pos x="-260" y="120"/>
+ <pos x="160" y="240"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>B13</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="-260" y="100"/>
+ <pos x="240" y="260"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Or</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B14</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="-260" y="80"/>
+ <pos x="220" y="360"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Text</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B15</string>
+ <string>Description</string>
+ <string>OR</string>
</entry>
</elementAttributes>
- <pos x="-260" y="60"/>
+ <pos x="220" y="320"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>A0</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="-100" y="240"/>
+ <pos x="200" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[3]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>A1</string>
- </entry>
- </elementAttributes>
- <pos x="-100" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>A2</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="40" y="200"/>
+ <pos x="200" y="380"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A3</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="40" y="280"/>
+ <pos x="320" y="380"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>NetName</string>
- <string>B0</string>
+ <string>S3</string>
</entry>
</elementAttributes>
- <pos x="-100" y="280"/>
+ <pos x="320" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>B1</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="-100" y="200"/>
+ <pos x="400" y="380"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>XOr</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B2</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="40" y="240"/>
+ <pos x="60" y="480"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Text</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B3</string>
+ <string>Description</string>
+ <string>XOR</string>
</entry>
</elementAttributes>
- <pos x="40" y="320"/>
+ <pos x="60" y="440"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>Y0</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="-100" y="440"/>
+ <pos x="40" y="480"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>Y1</string>
+ <rotation reference="../../../../visualElement[3]/elementAttributes/entry/rotation"/>
</entry>
- </elementAttributes>
- <pos x="-100" y="480"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>Y2</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="40" y="520"/>
+ <pos x="40" y="500"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y3</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="40" y="480"/>
+ <pos x="160" y="500"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>NetName</string>
- <string>Y4</string>
+ <string>S4</string>
</entry>
</elementAttributes>
- <pos x="220" y="440"/>
+ <pos x="160" y="480"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y5</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="220" y="480"/>
+ <pos x="240" y="500"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>BarrelShifter</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y6</string>
+ <string>Label</string>
+ <string>LOG SHIFT RIGHT</string>
</entry>
- </elementAttributes>
- <pos x="360" y="520"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y7</string>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>direction</string>
+ <direction>right</direction>
</entry>
</elementAttributes>
- <pos x="360" y="480"/>
+ <pos x="220" y="620"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>Y8</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="560" y="440"/>
+ <pos x="200" y="620"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -742,222 +531,176 @@
</entry>
<entry>
<string>NetName</string>
- <string>Y9</string>
- </entry>
- </elementAttributes>
- <pos x="560" y="480"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>Y10</string>
+ <string>B_L5</string>
</entry>
</elementAttributes>
- <pos x="700" y="520"/>
+ <pos x="200" y="640"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y11</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="700" y="480"/>
+ <pos x="380" y="640"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>NetName</string>
- <string>Y12</string>
+ <string>S5</string>
</entry>
</elementAttributes>
- <pos x="920" y="440"/>
+ <pos x="380" y="620"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y13</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="920" y="480"/>
+ <pos x="420" y="640"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>BarrelShifter</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y14</string>
+ <string>Label</string>
+ <string>ARI SHIFT RIGHT</string>
</entry>
- </elementAttributes>
- <pos x="1060" y="520"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>Y15</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
- </elementAttributes>
- <pos x="1060" y="480"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>barrelShifterMode</string>
+ <barrelShifterMode>arithmetic</barrelShifterMode>
</entry>
<entry>
- <string>NetName</string>
- <string>A4</string>
+ <string>direction</string>
+ <direction>right</direction>
</entry>
</elementAttributes>
- <pos x="220" y="240"/>
+ <pos x="80" y="760"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>A5</string>
- </entry>
- </elementAttributes>
- <pos x="220" y="160"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>A6</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="360" y="200"/>
+ <pos x="60" y="760"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A7</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="360" y="280"/>
+ <pos x="240" y="780"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>NetName</string>
- <string>A8</string>
+ <string>S6</string>
</entry>
</elementAttributes>
- <pos x="560" y="240"/>
+ <pos x="240" y="760"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>A9</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="560" y="160"/>
+ <pos x="280" y="780"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>BarrelShifter</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>A10</string>
+ <string>Label</string>
+ <string>LOG SHIFT LEFT</string>
</entry>
- </elementAttributes>
- <pos x="700" y="200"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>NetName</string>
- <string>A11</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="700" y="280"/>
+ <pos x="220" y="920"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation reference="../../../../visualElement[2]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
- <string>A12</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="920" y="240"/>
+ <pos x="200" y="920"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>A13</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="920" y="160"/>
+ <pos x="380" y="940"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
<string>NetName</string>
- <string>A14</string>
+ <string>S7</string>
</entry>
</elementAttributes>
- <pos x="1060" y="200"/>
+ <pos x="380" y="920"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>A15</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="1060" y="280"/>
+ <pos x="420" y="940"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -968,10 +711,10 @@
</entry>
<entry>
<string>NetName</string>
- <string>B4</string>
+ <string>B_L5</string>
</entry>
</elementAttributes>
- <pos x="220" y="280"/>
+ <pos x="60" y="780"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -982,30 +725,24 @@
</entry>
<entry>
<string>NetName</string>
- <string>B5</string>
+ <string>B_L5</string>
</entry>
</elementAttributes>
- <pos x="220" y="200"/>
+ <pos x="200" y="940"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>B6</string>
+ <string>rotation</string>
+ <rotation rotation="2"/>
</entry>
- </elementAttributes>
- <pos x="360" y="240"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
<string>NetName</string>
- <string>B7</string>
+ <string>B15</string>
</entry>
</elementAttributes>
- <pos x="360" y="320"/>
+ <pos x="600" y="60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1016,10 +753,10 @@
</entry>
<entry>
<string>NetName</string>
- <string>B8</string>
+ <string>Y15</string>
</entry>
</elementAttributes>
- <pos x="560" y="280"/>
+ <pos x="600" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1030,44 +767,30 @@
</entry>
<entry>
<string>NetName</string>
- <string>B9</string>
- </entry>
- </elementAttributes>
- <pos x="560" y="200"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>B10</string>
+ <string>A15</string>
</entry>
</elementAttributes>
- <pos x="700" y="240"/>
+ <pos x="600" y="20"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>B11</string>
+ <string>FO</string>
</entry>
</elementAttributes>
- <pos x="700" y="320"/>
+ <pos x="720" y="40"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Text</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>B12</string>
+ <string>Description</string>
+ <string>Sign flag</string>
</entry>
</elementAttributes>
- <pos x="920" y="280"/>
+ <pos x="820" y="-40"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1078,108 +801,54 @@
</entry>
<entry>
<string>NetName</string>
- <string>B13</string>
- </entry>
- </elementAttributes>
- <pos x="920" y="200"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>B14</string>
+ <string>Y15</string>
</entry>
</elementAttributes>
- <pos x="1060" y="240"/>
+ <pos x="860" y="0"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>B15</string>
- </entry>
- </elementAttributes>
- <pos x="1060" y="320"/>
- </visualElement>
- <visualElement>
- <elementName>Out</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>ALU output</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>Y</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
+ <string>FS</string>
</entry>
</elementAttributes>
- <pos x="960" y="720"/>
+ <pos x="900" y="0"/>
</visualElement>
<visualElement>
- <elementName>BarrelShifter</elementName>
+ <elementName>atk16_alu_fz.dig</elementName>
<elementAttributes>
<entry>
<string>Label</string>
- <string>SRL</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- <entry>
- <string>direction</string>
- <direction>right</direction>
- </entry>
- </elementAttributes>
- <pos x="20" y="780"/>
- </visualElement>
- <visualElement>
- <elementName>Demultiplexer</elementName>
- <elementAttributes>
- <entry>
- <string>Selector Bits</string>
- <int>3</int>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
+ <string>Zero flag</string>
</entry>
</elementAttributes>
- <pos x="-220" y="780"/>
+ <pos x="840" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="3"/>
+ <rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
- <string>A</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="-460" y="260"/>
+ <pos x="820" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="3"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>B</string>
+ <string>FZ</string>
</entry>
</elementAttributes>
- <pos x="-460" y="420"/>
+ <pos x="920" y="80"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1190,441 +859,330 @@
</entry>
<entry>
<string>NetName</string>
- <string>A</string>
+ <string>S1</string>
</entry>
</elementAttributes>
- <pos x="-220" y="860"/>
+ <pos x="600" y="0"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Testcase</elementName>
<elementAttributes>
<entry>
- <string>Input Splitting</string>
- <string>16</string>
+ <string>Label</string>
+ <string>PLUS test</string>
</entry>
<entry>
- <string>Output Splitting</string>
- <string>5,</string>
+ <string>Testdata</string>
+ <testData>
+ <dataString>A B S FLAGS Y
+0x1 0x2 0 0b0000 0x3
+0xff 0x1 0 0b0000 0x100
+0x1 0xffff 0 0b0101 0x0
+0x4000 0x4000 0 0b1010 0x8000</dataString>
+ </testData>
</entry>
</elementAttributes>
- <pos x="-200" y="1040"/>
+ <pos x="700" y="620"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Testcase</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Label</string>
+ <string>MINUS test</string>
</entry>
<entry>
- <string>NetName</string>
- <string>B</string>
+ <string>Testdata</string>
+ <testData>
+ <dataString>A B S FLAGS Y
+0x10 0x1 1 0b0000 0xF
+0x1 0x0 1 0b0000 0x1
+0x0 0x1 1 0b1001 0xFFFF
+0x8000 0x1 1 0b0010 0x7FFF</dataString>
+ </testData>
</entry>
</elementAttributes>
- <pos x="-220" y="1040"/>
+ <pos x="700" y="700"/>
</visualElement>
<visualElement>
- <elementName>BarrelShifter</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>SRA</string>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- <entry>
- <string>barrelShifterMode</string>
- <barrelShifterMode>arithmetic</barrelShifterMode>
+ <string>Description</string>
+ <string>LHS of binary ALU operation</string>
</entry>
<entry>
- <string>direction</string>
- <direction>right</direction>
- </entry>
- </elementAttributes>
- <pos x="140" y="940"/>
- </visualElement>
- <visualElement>
- <elementName>BarrelShifter</elementName>
- <elementAttributes>
- <entry>
<string>Label</string>
- <string>SLL</string>
+ <string>A</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
- <pos x="40" y="1120"/>
+ <pos x="-300" y="40"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>Input Splitting</string>
- <string>1*4</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>4</string>
+ <string>Description</string>
+ <string>RHS of binary ALU operation</string>
</entry>
- </elementAttributes>
- <pos x="1220" y="400"/>
- </visualElement>
- <visualElement>
- <elementName>Out</elementName>
- <elementAttributes>
<entry>
<string>Label</string>
- <string>FLAGS</string>
+ <string>B</string>
</entry>
<entry>
<string>Bits</string>
- <int>4</int>
- </entry>
- </elementAttributes>
- <pos x="1300" y="400"/>
- </visualElement>
- <visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>splitterSpreading</string>
- <int>2</int>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>16</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>8*2</string>
- </entry>
- </elementAttributes>
- <pos x="960" y="820"/>
- </visualElement>
- <visualElement>
- <elementName>BitSelector</elementName>
- <elementAttributes>
- <entry>
- <string>Selector Bits</string>
- <int>4</int>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="1000" y="960"/>
+ <pos x="-300" y="180"/>
</visualElement>
<visualElement>
- <elementName>Const</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="1"/>
+ <string>Description</string>
+ <string>ALU operation code</string>
</entry>
<entry>
- <string>Value</string>
- <long>15</long>
+ <string>Label</string>
+ <string>S</string>
</entry>
<entry>
<string>Bits</string>
- <int>4</int>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="1020" y="980"/>
+ <pos x="-320" y="420"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Text</elementName>
<elementAttributes>
<entry>
- <string>splitterSpreading</string>
- <int>2</int>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>8</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>4*2</string>
+ <string>Description</string>
+ <string>S Y
+0 A + B
+1 A - B
+2 A and B
+3 A or B
+4 A xor B
+5 A &gt;&gt; B # logical
+6 A &gt;&gt;&gt; B # arithmetic
+7 A &lt;&lt; B</string>
</entry>
</elementAttributes>
- <pos x="1040" y="820"/>
+ <pos x="-380" y="640"/>
</visualElement>
<visualElement>
- <elementName>Testcase</elementName>
+ <elementName>Decoder</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>Add test 1</string>
+ <string>Selector Bits</string>
+ <int>3</int>
</entry>
<entry>
- <string>Testdata</string>
- <testData>
- <dataString>A B S FLAGS Y
-0x1 0x2 3 0b0000 0x3
-0xff 0x1 3 0b0000 0x100
-0x1 0xffff 3 0b0101 0x0</dataString>
- </testData>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
</entry>
</elementAttributes>
- <pos x="480" y="1260"/>
+ <pos x="-260" y="420"/>
</visualElement>
<visualElement>
- <elementName>Or</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>8</int>
+ <string>NetName</string>
+ <string>S0</string>
</entry>
</elementAttributes>
- <pos x="980" y="820"/>
+ <pos x="-200" y="420"/>
</visualElement>
<visualElement>
- <elementName>Or</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>4</int>
+ <string>NetName</string>
+ <string>S1</string>
</entry>
</elementAttributes>
- <pos x="1060" y="820"/>
+ <pos x="-200" y="440"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>splitterSpreading</string>
- <int>2</int>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>2</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>1*2</string>
+ <string>NetName</string>
+ <string>S2</string>
</entry>
</elementAttributes>
- <pos x="1200" y="820"/>
+ <pos x="-200" y="460"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>splitterSpreading</string>
- <int>2</int>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>4</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>2*2</string>
+ <string>NetName</string>
+ <string>S3</string>
</entry>
</elementAttributes>
- <pos x="1120" y="820"/>
+ <pos x="-200" y="480"/>
</visualElement>
<visualElement>
- <elementName>Or</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>2</int>
+ <string>NetName</string>
+ <string>S4</string>
</entry>
</elementAttributes>
- <pos x="1140" y="820"/>
- </visualElement>
- <visualElement>
- <elementName>NOr</elementName>
- <elementAttributes/>
- <pos x="1220" y="820"/>
+ <pos x="-200" y="500"/>
</visualElement>
<visualElement>
- <elementName>Testcase</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>Sub test 1</string>
- </entry>
- <entry>
- <string>Testdata</string>
- <testData>
- <dataString>A B S FLAGS Y
-0x10 0x1 2 0b0001 0xF
-0x1 0x0 1 0b1000 0xFFFF</dataString>
- </testData>
+ <string>NetName</string>
+ <string>S5</string>
</entry>
</elementAttributes>
- <pos x="660" y="1260"/>
- </visualElement>
- <visualElement>
- <elementName>atk16_alu_carryfix.dig</elementName>
- <elementAttributes/>
- <pos x="-60" y="-40"/>
+ <pos x="-200" y="520"/>
</visualElement>
<visualElement>
- <elementName>Multiplexer</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>flipSelPos</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- <entry>
- <string>Selector Bits</string>
- <int>2</int>
+ <string>NetName</string>
+ <string>S6</string>
</entry>
</elementAttributes>
- <pos x="340" y="800"/>
+ <pos x="-200" y="540"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
+ <string>NetName</string>
+ <string>S7</string>
</entry>
</elementAttributes>
- <pos x="320" y="860"/>
+ <pos x="-200" y="560"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="3"/>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>1,1</string>
+ <rotation rotation="1"/>
</entry>
<entry>
- <string>Output Splitting</string>
- <string>2</string>
+ <string>NetName</string>
+ <string>A</string>
</entry>
</elementAttributes>
- <pos x="360" y="740"/>
+ <pos x="-280" y="0"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
- <string>1*16</string>
+ <string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
- <string>16</string>
+ <string>15,1</string>
</entry>
</elementAttributes>
- <pos x="1260" y="0"/>
+ <pos x="-240" y="40"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>NetName</string>
- <string>Y0</string>
+ <string>B</string>
</entry>
</elementAttributes>
- <pos x="1240" y="0"/>
+ <pos x="-280" y="140"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Input Splitting</string>
+ <string>16</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y1</string>
+ <string>Output Splitting</string>
+ <string>15,1</string>
</entry>
</elementAttributes>
- <pos x="1240" y="20"/>
+ <pos x="-240" y="180"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Input Splitting</string>
+ <string>16</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y2</string>
+ <string>Output Splitting</string>
+ <string>5</string>
</entry>
</elementAttributes>
- <pos x="1240" y="40"/>
+ <pos x="-260" y="240"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y3</string>
+ <string>B_L5</string>
</entry>
</elementAttributes>
- <pos x="1240" y="60"/>
+ <pos x="-200" y="240"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y4</string>
+ <string>A15</string>
</entry>
</elementAttributes>
- <pos x="1240" y="80"/>
+ <pos x="-200" y="60"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y5</string>
+ <string>B15</string>
</entry>
</elementAttributes>
- <pos x="1240" y="100"/>
+ <pos x="-200" y="200"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Input Splitting</string>
+ <string>16</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y6</string>
+ <string>Output Splitting</string>
+ <string>15,1</string>
</entry>
</elementAttributes>
- <pos x="1240" y="120"/>
+ <pos x="700" y="220"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1635,80 +1193,66 @@
</entry>
<entry>
<string>NetName</string>
- <string>Y7</string>
+ <string>Y</string>
</entry>
</elementAttributes>
- <pos x="1240" y="140"/>
+ <pos x="660" y="220"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
<string>NetName</string>
- <string>Y8</string>
+ <string>Y15</string>
</entry>
</elementAttributes>
- <pos x="1240" y="160"/>
+ <pos x="760" y="240"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>Y9</string>
+ <string>Description</string>
+ <string>Output</string>
</entry>
- </elementAttributes>
- <pos x="1240" y="180"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Label</string>
+ <string>Y</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y10</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="1240" y="200"/>
+ <pos x="700" y="180"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Input Splitting</string>
+ <string>1*4</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y11</string>
+ <string>Output Splitting</string>
+ <string>4</string>
</entry>
</elementAttributes>
- <pos x="1240" y="220"/>
+ <pos x="720" y="360"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>Label</string>
+ <string>FLAGS</string>
</entry>
<entry>
- <string>NetName</string>
- <string>Y12</string>
+ <string>Bits</string>
+ <int>4</int>
</entry>
</elementAttributes>
- <pos x="1240" y="240"/>
+ <pos x="800" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1719,10 +1263,10 @@
</entry>
<entry>
<string>NetName</string>
- <string>Y13</string>
+ <string>FO</string>
</entry>
</elementAttributes>
- <pos x="1240" y="260"/>
+ <pos x="700" y="380"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1733,10 +1277,10 @@
</entry>
<entry>
<string>NetName</string>
- <string>Y14</string>
+ <string>FZ</string>
</entry>
</elementAttributes>
- <pos x="1240" y="280"/>
+ <pos x="700" y="400"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1747,44 +1291,10 @@
</entry>
<entry>
<string>NetName</string>
- <string>Y15</string>
+ <string>FS</string>
</entry>
</elementAttributes>
- <pos x="1240" y="300"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>ALU1</string>
- </entry>
- </elementAttributes>
- <pos x="1300" y="0"/>
- </visualElement>
- <visualElement>
- <elementName>Multiplexer</elementName>
- <elementAttributes>
- <entry>
- <string>flipSelPos</string>
- <boolean>true</boolean>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="740" y="800"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>NetName</string>
- <string>ALU2</string>
- </entry>
- </elementAttributes>
- <pos x="400" y="840"/>
+ <pos x="700" y="420"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1795,800 +1305,390 @@
</entry>
<entry>
<string>NetName</string>
- <string>ALU1</string>
+ <string>FC</string>
</entry>
</elementAttributes>
- <pos x="720" y="800"/>
+ <pos x="660" y="360"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>PullDown</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
<rotation rotation="2"/>
</entry>
- <entry>
- <string>NetName</string>
- <string>ALU2</string>
- </entry>
- </elementAttributes>
- <pos x="720" y="840"/>
- </visualElement>
- <visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="3"/>
- </entry>
- <entry>
- <string>Input Splitting</string>
- <string>1,1,1</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>3</string>
- </entry>
</elementAttributes>
- <pos x="-320" y="940"/>
+ <pos x="700" y="340"/>
</visualElement>
</visualElements>
<wires>
<wire>
- <p1 x="-420" y="0"/>
- <p2 x="-380" y="0"/>
- </wire>
- <wire>
- <p1 x="-200" y="0"/>
- <p2 x="-60" y="0"/>
- </wire>
- <wire>
- <p1 x="1240" y="0"/>
- <p2 x="1260" y="0"/>
- </wire>
- <wire>
- <p1 x="1280" y="0"/>
- <p2 x="1300" y="0"/>
+ <p1 x="40" y="0"/>
+ <p2 x="60" y="0"/>
</wire>
<wire>
- <p1 x="-400" y="640"/>
- <p2 x="-360" y="640"/>
+ <p1 x="120" y="0"/>
+ <p2 x="140" y="0"/>
</wire>
<wire>
- <p1 x="500" y="640"/>
- <p2 x="860" y="640"/>
+ <p1 x="180" y="0"/>
+ <p2 x="240" y="0"/>
</wire>
<wire>
- <p1 x="-360" y="640"/>
- <p2 x="-160" y="640"/>
+ <p1 x="860" y="0"/>
+ <p2 x="900" y="0"/>
</wire>
<wire>
- <p1 x="-160" y="640"/>
- <p2 x="160" y="640"/>
+ <p1 x="600" y="0"/>
+ <p2 x="620" y="0"/>
</wire>
<wire>
- <p1 x="160" y="640"/>
- <p2 x="500" y="640"/>
+ <p1 x="400" y="640"/>
+ <p2 x="420" y="640"/>
</wire>
<wire>
- <p1 x="-200" y="320"/>
- <p2 x="-100" y="320"/>
- </wire>
- <wire>
- <p1 x="120" y="320"/>
- <p2 x="220" y="320"/>
- </wire>
- <wire>
- <p1 x="460" y="320"/>
- <p2 x="560" y="320"/>
- </wire>
- <wire>
- <p1 x="820" y="320"/>
- <p2 x="920" y="320"/>
- </wire>
- <wire>
- <p1 x="-300" y="320"/>
- <p2 x="-260" y="320"/>
- </wire>
- <wire>
- <p1 x="-320" y="960"/>
- <p2 x="-200" y="960"/>
- </wire>
- <wire>
- <p1 x="940" y="960"/>
- <p2 x="1000" y="960"/>
- </wire>
- <wire>
- <p1 x="1040" y="960"/>
- <p2 x="1400" y="960"/>
+ <p1 x="280" y="640"/>
+ <p2 x="360" y="640"/>
</wire>
<wire>
<p1 x="200" y="960"/>
<p2 x="220" y="960"/>
</wire>
<wire>
- <p1 x="-300" y="260"/>
- <p2 x="-260" y="260"/>
- </wire>
- <wire>
- <p1 x="1240" y="260"/>
- <p2 x="1260" y="260"/>
- </wire>
- <wire>
- <p1 x="-120" y="520"/>
- <p2 x="-100" y="520"/>
- </wire>
- <wire>
- <p1 x="200" y="520"/>
- <p2 x="220" y="520"/>
- </wire>
- <wire>
- <p1 x="540" y="520"/>
- <p2 x="560" y="520"/>
- </wire>
- <wire>
- <p1 x="900" y="520"/>
- <p2 x="920" y="520"/>
- </wire>
- <wire>
- <p1 x="1140" y="520"/>
- <p2 x="1380" y="520"/>
- </wire>
- <wire>
- <p1 x="-60" y="1160"/>
- <p2 x="40" y="1160"/>
- </wire>
- <wire>
- <p1 x="720" y="840"/>
- <p2 x="740" y="840"/>
- </wire>
- <wire>
- <p1 x="1300" y="840"/>
- <p2 x="1380" y="840"/>
- </wire>
- <wire>
- <p1 x="240" y="840"/>
- <p2 x="340" y="840"/>
- </wire>
- <wire>
- <p1 x="380" y="840"/>
- <p2 x="400" y="840"/>
- </wire>
- <wire>
- <p1 x="-420" y="200"/>
- <p2 x="-380" y="200"/>
- </wire>
- <wire>
- <p1 x="-300" y="200"/>
- <p2 x="-260" y="200"/>
- </wire>
- <wire>
- <p1 x="1240" y="200"/>
- <p2 x="1260" y="200"/>
- </wire>
- <wire>
- <p1 x="-420" y="140"/>
- <p2 x="-380" y="140"/>
+ <p1 x="120" y="260"/>
+ <p2 x="140" y="260"/>
</wire>
<wire>
- <p1 x="-300" y="140"/>
- <p2 x="-260" y="140"/>
+ <p1 x="180" y="260"/>
+ <p2 x="240" y="260"/>
</wire>
<wire>
- <p1 x="1240" y="140"/>
- <p2 x="1260" y="140"/>
+ <p1 x="40" y="520"/>
+ <p2 x="60" y="520"/>
</wire>
<wire>
- <p1 x="-180" y="780"/>
- <p2 x="20" y="780"/>
+ <p1 x="-220" y="520"/>
+ <p2 x="-200" y="520"/>
</wire>
<wire>
- <p1 x="1200" y="460"/>
- <p2 x="1220" y="460"/>
+ <p1 x="-220" y="200"/>
+ <p2 x="-200" y="200"/>
</wire>
<wire>
- <p1 x="-420" y="-80"/>
- <p2 x="-380" y="-80"/>
+ <p1 x="200" y="140"/>
+ <p2 x="220" y="140"/>
</wire>
<wire>
- <p1 x="40" y="400"/>
- <p2 x="100" y="400"/>
+ <p1 x="280" y="140"/>
+ <p2 x="300" y="140"/>
</wire>
<wire>
- <p1 x="360" y="400"/>
- <p2 x="440" y="400"/>
+ <p1 x="260" y="780"/>
+ <p2 x="280" y="780"/>
</wire>
<wire>
- <p1 x="700" y="400"/>
- <p2 x="800" y="400"/>
+ <p1 x="140" y="780"/>
+ <p2 x="220" y="780"/>
</wire>
<wire>
- <p1 x="-160" y="400"/>
- <p2 x="-100" y="400"/>
+ <p1 x="-220" y="460"/>
+ <p2 x="-200" y="460"/>
</wire>
<wire>
- <p1 x="160" y="400"/>
+ <p1 x="200" y="400"/>
<p2 x="220" y="400"/>
</wire>
<wire>
- <p1 x="500" y="400"/>
- <p2 x="560" y="400"/>
- </wire>
- <wire>
- <p1 x="860" y="400"/>
- <p2 x="920" y="400"/>
- </wire>
- <wire>
- <p1 x="1060" y="400"/>
- <p2 x="1220" y="400"/>
- </wire>
- <wire>
- <p1 x="1240" y="400"/>
- <p2 x="1300" y="400"/>
- </wire>
- <wire>
- <p1 x="-220" y="1040"/>
- <p2 x="-200" y="1040"/>
- </wire>
- <wire>
- <p1 x="-180" y="1040"/>
- <p2 x="-60" y="1040"/>
- </wire>
- <wire>
- <p1 x="940" y="720"/>
- <p2 x="960" y="720"/>
- </wire>
- <wire>
- <p1 x="-420" y="80"/>
- <p2 x="-380" y="80"/>
- </wire>
- <wire>
- <p1 x="-300" y="80"/>
- <p2 x="-260" y="80"/>
- </wire>
- <wire>
- <p1 x="1240" y="80"/>
- <p2 x="1260" y="80"/>
- </wire>
- <wire>
- <p1 x="-420" y="-20"/>
- <p2 x="-380" y="-20"/>
- </wire>
- <wire>
- <p1 x="0" y="-20"/>
- <p2 x="80" y="-20"/>
- </wire>
- <wire>
- <p1 x="-180" y="-20"/>
- <p2 x="-60" y="-20"/>
- </wire>
- <wire>
- <p1 x="-420" y="20"/>
- <p2 x="-380" y="20"/>
- </wire>
- <wire>
- <p1 x="1240" y="20"/>
- <p2 x="1260" y="20"/>
- </wire>
- <wire>
- <p1 x="-300" y="340"/>
- <p2 x="-260" y="340"/>
- </wire>
- <wire>
- <p1 x="-60" y="980"/>
- <p2 x="140" y="980"/>
- </wire>
- <wire>
- <p1 x="-400" y="660"/>
- <p2 x="760" y="660"/>
- </wire>
- <wire>
- <p1 x="-300" y="280"/>
- <p2 x="-260" y="280"/>
- </wire>
- <wire>
- <p1 x="1240" y="280"/>
- <p2 x="1260" y="280"/>
- </wire>
- <wire>
- <p1 x="-500" y="600"/>
- <p2 x="-420" y="600"/>
- </wire>
- <wire>
- <p1 x="-400" y="600"/>
- <p2 x="-320" y="600"/>
- </wire>
- <wire>
- <p1 x="460" y="600"/>
- <p2 x="820" y="600"/>
- </wire>
- <wire>
- <p1 x="-200" y="600"/>
- <p2 x="120" y="600"/>
- </wire>
- <wire>
- <p1 x="120" y="600"/>
- <p2 x="360" y="600"/>
- </wire>
- <wire>
- <p1 x="-320" y="600"/>
- <p2 x="-200" y="600"/>
- </wire>
- <wire>
- <p1 x="360" y="600"/>
- <p2 x="460" y="600"/>
- </wire>
- <wire>
- <p1 x="-420" y="220"/>
- <p2 x="-380" y="220"/>
- </wire>
- <wire>
- <p1 x="-480" y="220"/>
- <p2 x="-460" y="220"/>
- </wire>
- <wire>
- <p1 x="-300" y="220"/>
- <p2 x="-260" y="220"/>
- </wire>
- <wire>
- <p1 x="1240" y="220"/>
- <p2 x="1260" y="220"/>
- </wire>
- <wire>
- <p1 x="-460" y="220"/>
- <p2 x="-440" y="220"/>
+ <p1 x="700" y="400"/>
+ <p2 x="720" y="400"/>
</wire>
<wire>
- <p1 x="320" y="860"/>
- <p2 x="340" y="860"/>
+ <p1 x="600" y="80"/>
+ <p2 x="620" y="80"/>
</wire>
<wire>
- <p1 x="40" y="160"/>
- <p2 x="60" y="160"/>
+ <p1 x="820" y="80"/>
+ <p2 x="840" y="80"/>
</wire>
<wire>
- <p1 x="360" y="160"/>
- <p2 x="380" y="160"/>
+ <p1 x="900" y="80"/>
+ <p2 x="920" y="80"/>
</wire>
<wire>
- <p1 x="700" y="160"/>
- <p2 x="720" y="160"/>
+ <p1 x="40" y="20"/>
+ <p2 x="60" y="20"/>
</wire>
<wire>
- <p1 x="1060" y="160"/>
- <p2 x="1080" y="160"/>
+ <p1 x="120" y="20"/>
+ <p2 x="140" y="20"/>
</wire>
<wire>
- <p1 x="-420" y="160"/>
- <p2 x="-380" y="160"/>
+ <p1 x="600" y="20"/>
+ <p2 x="620" y="20"/>
</wire>
<wire>
- <p1 x="-300" y="160"/>
- <p2 x="-260" y="160"/>
+ <p1 x="200" y="660"/>
+ <p2 x="220" y="660"/>
</wire>
<wire>
- <p1 x="1240" y="160"/>
- <p2 x="1260" y="160"/>
+ <p1 x="40" y="280"/>
+ <p2 x="60" y="280"/>
</wire>
<wire>
- <p1 x="-180" y="800"/>
- <p2 x="-80" y="800"/>
+ <p1 x="200" y="920"/>
+ <p2 x="220" y="920"/>
</wire>
<wire>
- <p1 x="80" y="800"/>
- <p2 x="340" y="800"/>
+ <p1 x="-220" y="540"/>
+ <p2 x="-200" y="540"/>
</wire>
<wire>
- <p1 x="720" y="800"/>
- <p2 x="740" y="800"/>
+ <p1 x="660" y="220"/>
+ <p2 x="680" y="220"/>
</wire>
<wire>
- <p1 x="-100" y="1120"/>
- <p2 x="40" y="1120"/>
+ <p1 x="680" y="220"/>
+ <p2 x="700" y="220"/>
</wire>
<wire>
- <p1 x="1100" y="420"/>
- <p2 x="1220" y="420"/>
+ <p1 x="380" y="160"/>
+ <p2 x="400" y="160"/>
</wire>
<wire>
- <p1 x="100" y="100"/>
- <p2 x="420" y="100"/>
+ <p1 x="300" y="160"/>
+ <p2 x="340" y="160"/>
</wire>
<wire>
- <p1 x="440" y="100"/>
- <p2 x="780" y="100"/>
+ <p1 x="200" y="160"/>
+ <p2 x="220" y="160"/>
</wire>
<wire>
- <p1 x="800" y="100"/>
- <p2 x="1140" y="100"/>
+ <p1 x="40" y="480"/>
+ <p2 x="60" y="480"/>
</wire>
<wire>
- <p1 x="-420" y="100"/>
- <p2 x="-380" y="100"/>
+ <p1 x="-220" y="480"/>
+ <p2 x="-200" y="480"/>
</wire>
<wire>
- <p1 x="-300" y="100"/>
- <p2 x="-260" y="100"/>
+ <p1 x="60" y="800"/>
+ <p2 x="80" y="800"/>
</wire>
<wire>
- <p1 x="1240" y="100"/>
- <p2 x="1260" y="100"/>
+ <p1 x="-320" y="420"/>
+ <p2 x="-240" y="420"/>
</wire>
<wire>
- <p1 x="-420" y="-40"/>
- <p2 x="-380" y="-40"/>
+ <p1 x="-220" y="420"/>
+ <p2 x="-200" y="420"/>
</wire>
<wire>
- <p1 x="-160" y="-40"/>
- <p2 x="-60" y="-40"/>
+ <p1 x="700" y="420"/>
+ <p2 x="720" y="420"/>
</wire>
<wire>
- <p1 x="-420" y="40"/>
- <p2 x="-380" y="40"/>
+ <p1 x="40" y="40"/>
+ <p2 x="60" y="40"/>
</wire>
<wire>
- <p1 x="1240" y="40"/>
- <p2 x="1260" y="40"/>
+ <p1 x="220" y="40"/>
+ <p2 x="240" y="40"/>
</wire>
<wire>
- <p1 x="360" y="360"/>
- <p2 x="420" y="360"/>
+ <p1 x="140" y="40"/>
+ <p2 x="180" y="40"/>
</wire>
<wire>
- <p1 x="700" y="360"/>
- <p2 x="780" y="360"/>
+ <p1 x="700" y="40"/>
+ <p2 x="720" y="40"/>
</wire>
<wire>
- <p1 x="1060" y="360"/>
- <p2 x="1140" y="360"/>
+ <p1 x="-300" y="40"/>
+ <p2 x="-280" y="40"/>
</wire>
<wire>
- <p1 x="-180" y="360"/>
- <p2 x="-100" y="360"/>
+ <p1 x="-280" y="40"/>
+ <p2 x="-240" y="40"/>
</wire>
<wire>
- <p1 x="140" y="360"/>
+ <p1 x="200" y="360"/>
<p2 x="220" y="360"/>
</wire>
<wire>
- <p1 x="480" y="360"/>
- <p2 x="560" y="360"/>
- </wire>
- <wire>
- <p1 x="840" y="360"/>
- <p2 x="920" y="360"/>
- </wire>
- <wire>
- <p1 x="-300" y="360"/>
- <p2 x="-260" y="360"/>
+ <p1 x="740" y="360"/>
+ <p2 x="800" y="360"/>
</wire>
<wire>
- <p1 x="-480" y="360"/>
- <p2 x="-460" y="360"/>
+ <p1 x="660" y="360"/>
+ <p2 x="700" y="360"/>
</wire>
<wire>
- <p1 x="40" y="360"/>
- <p2 x="80" y="360"/>
- </wire>
- <wire>
- <p1 x="-460" y="360"/>
- <p2 x="-320" y="360"/>
- </wire>
- <wire>
- <p1 x="-300" y="300"/>
- <p2 x="-260" y="300"/>
- </wire>
- <wire>
- <p1 x="1240" y="300"/>
- <p2 x="1260" y="300"/>
- </wire>
- <wire>
- <p1 x="-80" y="940"/>
- <p2 x="140" y="940"/>
- </wire>
- <wire>
- <p1 x="-400" y="620"/>
- <p2 x="-340" y="620"/>
+ <p1 x="700" y="360"/>
+ <p2 x="720" y="360"/>
</wire>
<wire>
- <p1 x="480" y="620"/>
- <p2 x="840" y="620"/>
+ <p1 x="200" y="620"/>
+ <p2 x="220" y="620"/>
</wire>
<wire>
- <p1 x="340" y="620"/>
- <p2 x="480" y="620"/>
+ <p1 x="400" y="940"/>
+ <p2 x="420" y="940"/>
</wire>
<wire>
- <p1 x="-340" y="620"/>
- <p2 x="-180" y="620"/>
+ <p1 x="280" y="940"/>
+ <p2 x="360" y="940"/>
</wire>
<wire>
- <p1 x="-180" y="620"/>
- <p2 x="140" y="620"/>
+ <p1 x="40" y="240"/>
+ <p2 x="60" y="240"/>
</wire>
<wire>
- <p1 x="140" y="620"/>
- <p2 x="340" y="620"/>
+ <p1 x="-240" y="240"/>
+ <p2 x="-200" y="240"/>
</wire>
<wire>
- <p1 x="-300" y="240"/>
+ <p1 x="-280" y="240"/>
<p2 x="-260" y="240"/>
</wire>
<wire>
- <p1 x="1240" y="240"/>
- <p2 x="1260" y="240"/>
- </wire>
- <wire>
- <p1 x="-60" y="820"/>
- <p2 x="20" y="820"/>
- </wire>
- <wire>
- <p1 x="-180" y="820"/>
- <p2 x="-100" y="820"/>
+ <p1 x="720" y="240"/>
+ <p2 x="760" y="240"/>
</wire>
<wire>
- <p1 x="220" y="820"/>
- <p2 x="340" y="820"/>
+ <p1 x="-220" y="560"/>
+ <p2 x="-200" y="560"/>
</wire>
<wire>
- <p1 x="780" y="820"/>
- <p2 x="940" y="820"/>
+ <p1 x="120" y="500"/>
+ <p2 x="140" y="500"/>
</wire>
<wire>
- <p1 x="940" y="820"/>
- <p2 x="960" y="820"/>
+ <p1 x="180" y="500"/>
+ <p2 x="240" y="500"/>
</wire>
<wire>
- <p1 x="-420" y="180"/>
- <p2 x="-380" y="180"/>
+ <p1 x="-220" y="500"/>
+ <p2 x="-200" y="500"/>
</wire>
<wire>
<p1 x="-300" y="180"/>
- <p2 x="-260" y="180"/>
- </wire>
- <wire>
- <p1 x="1240" y="180"/>
- <p2 x="1260" y="180"/>
- </wire>
- <wire>
- <p1 x="1200" y="500"/>
- <p2 x="1400" y="500"/>
- </wire>
- <wire>
- <p1 x="100" y="1140"/>
- <p2 x="240" y="1140"/>
- </wire>
- <wire>
- <p1 x="1060" y="440"/>
- <p2 x="1100" y="440"/>
- </wire>
- <wire>
- <p1 x="1140" y="440"/>
- <p2 x="1220" y="440"/>
- </wire>
- <wire>
- <p1 x="-420" y="120"/>
- <p2 x="-380" y="120"/>
- </wire>
- <wire>
- <p1 x="-300" y="120"/>
- <p2 x="-260" y="120"/>
- </wire>
- <wire>
- <p1 x="1240" y="120"/>
- <p2 x="1260" y="120"/>
- </wire>
- <wire>
- <p1 x="-420" y="-60"/>
- <p2 x="-380" y="-60"/>
- </wire>
- <wire>
- <p1 x="-420" y="60"/>
- <p2 x="-380" y="60"/>
- </wire>
- <wire>
- <p1 x="-300" y="60"/>
- <p2 x="-260" y="60"/>
- </wire>
- <wire>
- <p1 x="1240" y="60"/>
- <p2 x="1260" y="60"/>
- </wire>
- <wire>
- <p1 x="-200" y="0"/>
- <p2 x="-200" y="320"/>
- </wire>
- <wire>
- <p1 x="-200" y="940"/>
- <p2 x="-200" y="960"/>
- </wire>
- <wire>
- <p1 x="-200" y="320"/>
- <p2 x="-200" y="600"/>
- </wire>
- <wire>
- <p1 x="840" y="360"/>
- <p2 x="840" y="620"/>
- </wire>
- <wire>
- <p1 x="-460" y="220"/>
- <p2 x="-460" y="260"/>
- </wire>
- <wire>
- <p1 x="-460" y="360"/>
- <p2 x="-460" y="420"/>
- </wire>
- <wire>
- <p1 x="140" y="360"/>
- <p2 x="140" y="620"/>
- </wire>
- <wire>
- <p1 x="780" y="100"/>
- <p2 x="780" y="360"/>
- </wire>
- <wire>
- <p1 x="460" y="320"/>
- <p2 x="460" y="600"/>
- </wire>
- <wire>
- <p1 x="1100" y="420"/>
- <p2 x="1100" y="440"/>
- </wire>
- <wire>
- <p1 x="-80" y="800"/>
- <p2 x="-80" y="940"/>
- </wire>
- <wire>
- <p1 x="1040" y="820"/>
- <p2 x="1040" y="840"/>
- </wire>
- <wire>
- <p1 x="80" y="-20"/>
- <p2 x="80" y="360"/>
- </wire>
- <wire>
- <p1 x="-340" y="620"/>
- <p2 x="-340" y="940"/>
- </wire>
- <wire>
- <p1 x="340" y="620"/>
- <p2 x="340" y="740"/>
- </wire>
- <wire>
- <p1 x="860" y="400"/>
- <p2 x="860" y="640"/>
- </wire>
- <wire>
- <p1 x="220" y="820"/>
- <p2 x="220" y="960"/>
- </wire>
- <wire>
- <p1 x="-160" y="-40"/>
- <p2 x="-160" y="400"/>
- </wire>
- <wire>
- <p1 x="-160" y="400"/>
- <p2 x="-160" y="640"/>
- </wire>
- <wire>
- <p1 x="160" y="400"/>
- <p2 x="160" y="640"/>
+ <p2 x="-280" y="180"/>
</wire>
<wire>
- <p1 x="800" y="100"/>
- <p2 x="800" y="400"/>
+ <p1 x="680" y="180"/>
+ <p2 x="700" y="180"/>
</wire>
<wire>
- <p1 x="480" y="360"/>
- <p2 x="480" y="620"/>
+ <p1 x="-280" y="180"/>
+ <p2 x="-240" y="180"/>
</wire>
<wire>
- <p1 x="1120" y="820"/>
- <p2 x="1120" y="840"/>
+ <p1 x="340" y="120"/>
+ <p2 x="400" y="120"/>
</wire>
<wire>
- <p1 x="-100" y="820"/>
- <p2 x="-100" y="1120"/>
+ <p1 x="280" y="120"/>
+ <p2 x="300" y="120"/>
</wire>
<wire>
- <p1 x="100" y="100"/>
- <p2 x="100" y="400"/>
+ <p1 x="200" y="120"/>
+ <p2 x="220" y="120"/>
</wire>
<wire>
- <p1 x="420" y="100"/>
- <p2 x="420" y="360"/>
+ <p1 x="60" y="760"/>
+ <p2 x="80" y="760"/>
</wire>
<wire>
- <p1 x="1380" y="520"/>
- <p2 x="1380" y="840"/>
+ <p1 x="-220" y="440"/>
+ <p2 x="-200" y="440"/>
</wire>
<wire>
- <p1 x="-360" y="640"/>
- <p2 x="-360" y="940"/>
+ <p1 x="280" y="380"/>
+ <p2 x="300" y="380"/>
</wire>
<wire>
- <p1 x="360" y="760"/>
- <p2 x="360" y="800"/>
+ <p1 x="340" y="380"/>
+ <p2 x="400" y="380"/>
</wire>
<wire>
- <p1 x="360" y="600"/>
- <p2 x="360" y="740"/>
+ <p1 x="700" y="380"/>
+ <p2 x="720" y="380"/>
</wire>
<wire>
- <p1 x="940" y="720"/>
- <p2 x="940" y="820"/>
+ <p1 x="600" y="60"/>
+ <p2 x="620" y="60"/>
</wire>
<wire>
- <p1 x="940" y="820"/>
- <p2 x="940" y="960"/>
+ <p1 x="-220" y="60"/>
+ <p2 x="-200" y="60"/>
</wire>
<wire>
- <p1 x="1200" y="820"/>
- <p2 x="1200" y="840"/>
+ <p1 x="240" y="20"/>
+ <p2 x="240" y="40"/>
</wire>
<wire>
- <p1 x="1200" y="460"/>
- <p2 x="1200" y="500"/>
+ <p1 x="400" y="140"/>
+ <p2 x="400" y="160"/>
</wire>
<wire>
- <p1 x="240" y="840"/>
- <p2 x="240" y="1140"/>
+ <p1 x="-280" y="0"/>
+ <p2 x="-280" y="40"/>
</wire>
<wire>
- <p1 x="-180" y="-20"/>
- <p2 x="-180" y="360"/>
+ <p1 x="-280" y="140"/>
+ <p2 x="-280" y="180"/>
</wire>
<wire>
- <p1 x="-180" y="360"/>
- <p2 x="-180" y="620"/>
+ <p1 x="-280" y="180"/>
+ <p2 x="-280" y="240"/>
</wire>
<wire>
- <p1 x="1140" y="100"/>
- <p2 x="1140" y="360"/>
+ <p1 x="40" y="40"/>
+ <p2 x="40" y="60"/>
</wire>
<wire>
- <p1 x="1140" y="440"/>
- <p2 x="1140" y="520"/>
+ <p1 x="40" y="260"/>
+ <p2 x="40" y="280"/>
</wire>
<wire>
- <p1 x="500" y="400"/>
- <p2 x="500" y="640"/>
+ <p1 x="40" y="500"/>
+ <p2 x="40" y="520"/>
</wire>
<wire>
- <p1 x="820" y="320"/>
- <p2 x="820" y="600"/>
+ <p1 x="200" y="160"/>
+ <p2 x="200" y="180"/>
</wire>
<wire>
- <p1 x="440" y="100"/>
- <p2 x="440" y="400"/>
+ <p1 x="200" y="380"/>
+ <p2 x="200" y="400"/>
</wire>
<wire>
- <p1 x="120" y="320"/>
- <p2 x="120" y="600"/>
+ <p1 x="200" y="640"/>
+ <p2 x="200" y="660"/>
</wire>
<wire>
- <p1 x="1400" y="500"/>
- <p2 x="1400" y="960"/>
+ <p1 x="200" y="940"/>
+ <p2 x="200" y="960"/>
</wire>
<wire>
- <p1 x="760" y="660"/>
- <p2 x="760" y="800"/>
+ <p1 x="680" y="180"/>
+ <p2 x="680" y="220"/>
</wire>
<wire>
- <p1 x="-60" y="820"/>
- <p2 x="-60" y="980"/>
+ <p1 x="140" y="20"/>
+ <p2 x="140" y="40"/>
</wire>
<wire>
- <p1 x="-60" y="1040"/>
- <p2 x="-60" y="1160"/>
+ <p1 x="300" y="140"/>
+ <p2 x="300" y="160"/>
</wire>
<wire>
- <p1 x="-60" y="980"/>
- <p2 x="-60" y="1040"/>
+ <p1 x="60" y="780"/>
+ <p2 x="60" y="800"/>
</wire>
<wire>
- <p1 x="-320" y="600"/>
- <p2 x="-320" y="940"/>
+ <p1 x="700" y="340"/>
+ <p2 x="700" y="360"/>
</wire>
</wires>
<measurementOrdering/>
diff --git a/digital/atk16_alu_fo.dig b/digital/atk16_alu_fo.dig
new file mode 100644
index 0000000..ecf0021
--- /dev/null
+++ b/digital/atk16_alu_fo.dig
@@ -0,0 +1,494 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes>
+ <entry>
+ <string>Label</string>
+ <string>alu_fo</string>
+ </entry>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>4</int>
+ </entry>
+ </attributes>
+ <visualElements>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Testdata</string>
+ <testData>
+ <dataString>A15 B15 Y15 ~A/S FO
+0 0 0 0 0
+0 0 1 0 1
+0 1 0 0 0
+0 1 1 0 0
+1 0 0 0 0
+1 0 1 0 0
+1 1 0 0 1
+1 1 1 0 0
+0 0 0 1 0
+0 0 1 1 0
+0 1 0 1 0
+0 1 1 1 1
+1 0 0 1 1
+1 0 1 1 0
+1 1 0 1 0
+1 1 1 1 0
+</dataString>
+ </testData>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="740"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>FO</string>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>1</int>
+ </entry>
+ </elementAttributes>
+ <pos x="900" y="440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="800" y="400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="660" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="660" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="660" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="660" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>~A/S</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="440" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>A15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="500" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>B15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="540" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>Y15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="600" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="620" y="160"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="540" y="480"/>
+ <p2 x="660" y="480"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="480"/>
+ <p2 x="800" y="480"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="640"/>
+ <p2 x="660" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="260"/>
+ <p2 x="780" y="260"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="420"/>
+ <p2 x="660" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="420"/>
+ <p2 x="800" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="580"/>
+ <p2 x="660" y="580"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="360"/>
+ <p2 x="660" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="520"/>
+ <p2 x="660" y="520"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="140"/>
+ <p2 x="440" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="140"/>
+ <p2 x="500" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="140"/>
+ <p2 x="560" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="140"/>
+ <p2 x="620" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="300"/>
+ <p2 x="660" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="460"/>
+ <p2 x="660" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="460"/>
+ <p2 x="800" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="620"/>
+ <p2 x="780" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="240"/>
+ <p2 x="660" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="400"/>
+ <p2 x="800" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="400"/>
+ <p2 x="660" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="340"/>
+ <p2 x="660" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="500"/>
+ <p2 x="760" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="660"/>
+ <p2 x="660" y="660"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="280"/>
+ <p2 x="660" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="600"/>
+ <p2 x="660" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="880" y="440"/>
+ <p2 x="900" y="440"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="220"/>
+ <p2 x="660" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="380"/>
+ <p2 x="760" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="540"/>
+ <p2 x="660" y="540"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="120"/>
+ <p2 x="480" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="140"/>
+ <p2 x="480" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="580"/>
+ <p2 x="480" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="340"/>
+ <p2 x="480" y="580"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="140"/>
+ <p2 x="560" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="200"/>
+ <p2 x="560" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="600"/>
+ <p2 x="560" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="240"/>
+ <p2 x="560" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="120"/>
+ <p2 x="420" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="140"/>
+ <p2 x="420" y="540"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="660"/>
+ <p2 x="420" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="540"/>
+ <p2 x="420" y="660"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="140"/>
+ <p2 x="500" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="200"/>
+ <p2 x="500" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="460"/>
+ <p2 x="500" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="220"/>
+ <p2 x="500" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="140"/>
+ <p2 x="440" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="200"/>
+ <p2 x="440" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="420"/>
+ <p2 x="440" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="300"/>
+ <p2 x="440" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="120"/>
+ <p2 x="600" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="520"/>
+ <p2 x="600" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="140"/>
+ <p2 x="600" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="280"/>
+ <p2 x="600" y="520"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="380"/>
+ <p2 x="760" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="460"/>
+ <p2 x="760" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="120"/>
+ <p2 x="540" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="480"/>
+ <p2 x="540" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="360"/>
+ <p2 x="540" y="480"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="140"/>
+ <p2 x="540" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="140"/>
+ <p2 x="620" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="200"/>
+ <p2 x="620" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="640"/>
+ <p2 x="620" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="400"/>
+ <p2 x="620" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="260"/>
+ <p2 x="780" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="480"/>
+ <p2 x="780" y="620"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_alu_fz.dig b/digital/atk16_alu_fz.dig
new file mode 100644
index 0000000..2da652a
--- /dev/null
+++ b/digital/atk16_alu_fz.dig
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes>
+ <entry>
+ <string>Label</string>
+ <string>alu_fz</string>
+ </entry>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ </attributes>
+ <visualElements>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>Y</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>4*4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1*4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="600" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>FZ</string>
+ </entry>
+ </elementAttributes>
+ <pos x="800" y="400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Testdata</string>
+ <testData>
+ <dataString>Y FZ
+0x0 1
+0x1 0
+0xff 0</dataString>
+ </testData>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>NOr</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="680" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="340"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="760" y="400"/>
+ <p2 x="800" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="400"/>
+ <p2 x="660" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="400"/>
+ <p2 x="480" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="420"/>
+ <p2 x="640" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="660" y="420"/>
+ <p2 x="680" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="420"/>
+ <p2 x="480" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="340"/>
+ <p2 x="480" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="360"/>
+ <p2 x="380" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="360"/>
+ <p2 x="600" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="360"/>
+ <p2 x="680" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="360"/>
+ <p2 x="480" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="640" y="440"/>
+ <p2 x="680" y="440"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="380"/>
+ <p2 x="420" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="380"/>
+ <p2 x="680" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="380"/>
+ <p2 x="560" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="340"/>
+ <p2 x="400" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="360"/>
+ <p2 x="560" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="640" y="420"/>
+ <p2 x="640" y="440"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="360"/>
+ <p2 x="420" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="660" y="400"/>
+ <p2 x="660" y="420"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_alu_inputs.dig b/digital/atk16_alu_inputs.dig
new file mode 100644
index 0000000..2ed5b74
--- /dev/null
+++ b/digital/atk16_alu_inputs.dig
@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes>
+ <entry>
+ <string>Description</string>
+ <string>Maps the R1 input to the A output. Uses OPCODE parity to mux either the R2 input (even parity) or the RW_S input, here acting as a small immediate value, to the B output.</string>
+ </entry>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
+ <visualElements>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Register 1 value from regbank</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>R1</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="380"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Register 2 value from regbank</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>R2</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Multiplexer</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="260" y="500"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Register 2 selector</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>R2_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="540"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Opcode</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>OPCODE</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Output A</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>A</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Output B</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>B</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>3,13</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>16</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="540"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="200" y="580"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="200" y="560"/>
+ <p2 x="220" y="560"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="500"/>
+ <p2 x="260" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="300" y="520"/>
+ <p2 x="380" y="520"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="620"/>
+ <p2 x="220" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="240" y="620"/>
+ <p2 x="280" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="460"/>
+ <p2 x="200" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="340" y="460"/>
+ <p2 x="380" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="380"/>
+ <p2 x="340" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="240" y="540"/>
+ <p2 x="260" y="540"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="540"/>
+ <p2 x="220" y="540"/>
+ </wire>
+ <wire>
+ <p1 x="340" y="380"/>
+ <p2 x="340" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="540"/>
+ <p2 x="280" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="460"/>
+ <p2 x="200" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="560"/>
+ <p2 x="200" y="580"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_decoder.dig b/digital/atk16_decoder.dig
index ca22f72..0570615 100644
--- a/digital/atk16_decoder.dig
+++ b/digital/atk16_decoder.dig
@@ -1,51 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>2</version>
- <attributes/>
+ <attributes>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
<visualElements>
<visualElement>
- <elementName>Out</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>Write register selection</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>RW_S</string>
- </entry>
- </elementAttributes>
- <pos x="440" y="360"/>
- </visualElement>
- <visualElement>
- <elementName>Out</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>Read register 1 selection</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>R1_S</string>
- </entry>
- </elementAttributes>
- <pos x="440" y="480"/>
- </visualElement>
- <visualElement>
- <elementName>Out</elementName>
- <elementAttributes>
- <entry>
- <string>Description</string>
- <string>Read register 2 selection</string>
- </entry>
- <entry>
- <string>Label</string>
- <string>R2_S</string>
- </entry>
- </elementAttributes>
- <pos x="440" y="440"/>
- </visualElement>
- <visualElement>
<elementName>Register</elementName>
<elementAttributes>
<entry>
@@ -124,34 +93,6 @@
<pos x="400" y="360"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
- <elementAttributes>
- <entry>
- <string>Input Splitting</string>
- <string>9,7</string>
- </entry>
- <entry>
- <string>Output Splitting</string>
- <string>16</string>
- </entry>
- </elementAttributes>
- <pos x="380" y="660"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>7</int>
- </entry>
- </elementAttributes>
- <pos x="360" y="680"/>
- </visualElement>
- <visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
@@ -176,120 +117,187 @@
<pos x="200" y="340"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
+ <string>Description</string>
+ <string>Opcode</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>OP</string>
+ </entry>
+ <entry>
<string>Bits</string>
- <int>16</int>
+ <int>4</int>
</entry>
+ </elementAttributes>
+ <pos x="440" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
<entry>
- <string>flipSelPos</string>
- <boolean>true</boolean>
+ <string>Description</string>
+ <string>Write register selection</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>RW_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="460" y="660"/>
+ <pos x="440" y="480"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>DBUS</string>
+ <string>Description</string>
+ <string>ALU selection code</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>ALU_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="500" y="660"/>
+ <pos x="440" y="360"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>Input Splitting</string>
- <string>16</string>
+ <string>Description</string>
+ <string>Read register 1 selection</string>
</entry>
<entry>
- <string>Output Splitting</string>
- <string>3,9,</string>
+ <string>Label</string>
+ <string>R1_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="280" y="640"/>
+ <pos x="440" y="440"/>
</visualElement>
<visualElement>
<elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
- <string>ALU selection code</string>
+ <string>Read register 2 selection</string>
</entry>
<entry>
<string>Label</string>
- <string>ALU_S</string>
+ <string>R2_S</string>
</entry>
<entry>
<string>Bits</string>
- <int>4</int>
+ <int>3</int>
</entry>
</elementAttributes>
- <pos x="640" y="500"/>
+ <pos x="440" y="400"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
- <string>3,1</string>
+ <string>16</string>
</entry>
<entry>
<string>Output Splitting</string>
- <string>4</string>
+ <string>9,</string>
</entry>
</elementAttributes>
- <pos x="600" y="500"/>
+ <pos x="300" y="600"/>
</visualElement>
<visualElement>
- <elementName>Splitter</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>Input Splitting</string>
- <string>4</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
<entry>
- <string>Output Splitting</string>
- <string>1,3</string>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="600"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
</entry>
</elementAttributes>
- <pos x="480" y="520"/>
+ <pos x="520" y="600"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
- <string>Jump address output enable</string>
+ <string>Low 9 bits immediate value output enable</string>
</entry>
<entry>
<string>Label</string>
- <string>JA_OE</string>
+ <string>LI_OE</string>
</entry>
</elementAttributes>
- <pos x="440" y="740"/>
+ <pos x="460" y="680"/>
</visualElement>
<visualElement>
- <elementName>Out</elementName>
+ <elementName>Splitter</elementName>
<elementAttributes>
<entry>
- <string>Description</string>
- <string>Opcode</string>
+ <string>Input Splitting</string>
+ <string>9,7</string>
</entry>
<entry>
- <string>Label</string>
- <string>OP</string>
+ <string>Output Splitting</string>
+ <string>16</string>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="600"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
<entry>
<string>Bits</string>
- <int>4</int>
+ <int>7</int>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Testdata</string>
+ <testData>
+ <dataString>CLK DBUS IR_IE LI_OE OP RW_S R1_S R2_S ALU_S
+C 0b0000001010011000 1 0 0 1 2 3 0</dataString>
+ </testData>
</entry>
</elementAttributes>
- <pos x="640" y="580"/>
+ <pos x="120" y="160"/>
</visualElement>
</visualElements>
<wires>
@@ -299,71 +307,51 @@
</wire>
<wire>
<p1 x="420" y="400"/>
- <p2 x="600" y="400"/>
- </wire>
- <wire>
- <p1 x="300" y="660"/>
- <p2 x="380" y="660"/>
- </wire>
- <wire>
- <p1 x="400" y="660"/>
- <p2 x="440" y="660"/>
- </wire>
- <wire>
- <p1 x="480" y="660"/>
- <p2 x="500" y="660"/>
+ <p2 x="440" y="400"/>
</wire>
<wire>
<p1 x="140" y="420"/>
<p2 x="180" y="420"/>
</wire>
<wire>
- <p1 x="620" y="500"/>
- <p2 x="640" y="500"/>
- </wire>
- <wire>
- <p1 x="440" y="740"/>
- <p2 x="460" y="740"/>
- </wire>
- <wire>
- <p1 x="460" y="580"/>
- <p2 x="640" y="580"/>
- </wire>
- <wire>
- <p1 x="360" y="680"/>
- <p2 x="380" y="680"/>
- </wire>
- <wire>
<p1 x="160" y="360"/>
<p2 x="200" y="360"/>
</wire>
<wire>
<p1 x="260" y="360"/>
- <p2 x="280" y="360"/>
+ <p2 x="300" y="360"/>
</wire>
<wire>
<p1 x="420" y="360"/>
<p2 x="440" y="360"/>
</wire>
<wire>
- <p1 x="280" y="360"/>
+ <p1 x="300" y="360"/>
<p2 x="400" y="360"/>
</wire>
<wire>
<p1 x="420" y="520"/>
- <p2 x="460" y="520"/>
+ <p2 x="440" y="520"/>
</wire>
<wire>
- <p1 x="500" y="520"/>
- <p2 x="600" y="520"/>
+ <p1 x="420" y="440"/>
+ <p2 x="440" y="440"/>
</wire>
<wire>
- <p1 x="460" y="520"/>
- <p2 x="480" y="520"/>
+ <p1 x="500" y="600"/>
+ <p2 x="520" y="600"/>
</wire>
<wire>
- <p1 x="420" y="440"/>
- <p2 x="440" y="440"/>
+ <p1 x="420" y="600"/>
+ <p2 x="460" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="320" y="600"/>
+ <p2 x="400" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="460" y="680"/>
+ <p2 x="480" y="680"/>
</wire>
<wire>
<p1 x="180" y="380"/>
@@ -374,28 +362,24 @@
<p2 x="160" y="380"/>
</wire>
<wire>
- <p1 x="160" y="360"/>
- <p2 x="160" y="380"/>
+ <p1 x="380" y="620"/>
+ <p2 x="400" y="620"/>
</wire>
<wire>
- <p1 x="180" y="380"/>
- <p2 x="180" y="420"/>
- </wire>
- <wire>
- <p1 x="280" y="360"/>
- <p2 x="280" y="640"/>
+ <p1 x="160" y="360"/>
+ <p2 x="160" y="380"/>
</wire>
<wire>
- <p1 x="600" y="400"/>
- <p2 x="600" y="500"/>
+ <p1 x="480" y="620"/>
+ <p2 x="480" y="680"/>
</wire>
<wire>
- <p1 x="460" y="680"/>
- <p2 x="460" y="740"/>
+ <p1 x="180" y="380"/>
+ <p2 x="180" y="420"/>
</wire>
<wire>
- <p1 x="460" y="520"/>
- <p2 x="460" y="580"/>
+ <p1 x="300" y="360"/>
+ <p2 x="300" y="600"/>
</wire>
</wires>
<measurementOrdering/>
diff --git a/digital/atk16_jump_unit.dig b/digital/atk16_jump_unit.dig
new file mode 100644
index 0000000..1156aae
--- /dev/null
+++ b/digital/atk16_jump_unit.dig
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes>
+ <entry>
+ <string>Description</string>
+ <string>Uses OPCODE parity to choose between relative addressing mode (even parity) or absolute addressing mode (odd parity).</string>
+ </entry>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
+ <visualElements>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Jump address</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>ADDR</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="380"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>PC value</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>PC</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>OPCODE</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>OPCODE</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1,</string>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>OP parity bit</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Result PC value</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>PC_RES</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="580" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Add</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Multiplexer</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes/>
+ <pos x="220" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Testdata</string>
+ <testData>
+ <dataString>PC ADDR OPCODE PC_RES
+10 20 0b0101 20
+10 20 0b0110 30</dataString>
+ </testData>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="620"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="200" y="320"/>
+ <p2 x="240" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="340"/>
+ <p2 x="240" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="340"/>
+ <p2 x="400" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="360"/>
+ <p2 x="580" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="460"/>
+ <p2 x="240" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="260" y="460"/>
+ <p2 x="420" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="300"/>
+ <p2 x="240" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="300" y="300"/>
+ <p2 x="380" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="380"/>
+ <p2 x="200" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="380"/>
+ <p2 x="400" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="380"/>
+ <p2 x="420" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="320"/>
+ <p2 x="200" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="300"/>
+ <p2 x="380" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="340"/>
+ <p2 x="220" y="360"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_mem.dig b/digital/atk16_mem.dig
index f323545..c5ce679 100644
--- a/digital/atk16_mem.dig
+++ b/digital/atk16_mem.dig
@@ -1,7 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>2</version>
- <attributes/>
+ <attributes>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
<visualElements>
<visualElement>
<elementName>RAMAsync</elementName>
@@ -56,8 +67,8 @@
</entry>
<entry>
<string>Data</string>
- <data>4019,5200,8000,4051,40a2,29b,4014,2804,38c0,d9,40f2,4084,293,6500
-,4011,f000,4009,f000</data>
+ <data>4203,5040,8000,420a,4414,650,4802,2900,38c0,12c0,441e,4810,651
+,7500,4202,f000,4201,f000</data>
</entry>
</elementAttributes>
<pos x="740" y="100"/>
diff --git a/digital/atk16_regbank.dig b/digital/atk16_regbank.dig
index 35c072a..d65e6fb 100644
--- a/digital/atk16_regbank.dig
+++ b/digital/atk16_regbank.dig
@@ -1,7 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<circuit>
<version>2</version>
- <attributes/>
+ <attributes>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>5</int>
+ </entry>
+ </attributes>
<visualElements>
<visualElement>
<elementName>In</elementName>
@@ -170,20 +181,6 @@
<pos x="920" y="440"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="920" y="480"/>
- </visualElement>
- <visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
@@ -310,20 +307,6 @@
<pos x="920" y="720"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="920" y="760"/>
- </visualElement>
- <visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
@@ -505,7 +488,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[29]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[27]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -519,7 +502,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[30]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[28]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -548,7 +531,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[33]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[31]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -594,7 +577,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[29]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[27]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -608,7 +591,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[30]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[28]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -655,7 +638,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[29]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[27]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -669,7 +652,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[30]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[28]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -698,7 +681,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[33]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[31]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -730,7 +713,7 @@
</entry>
<entry>
<string>Label</string>
- <string>PA</string>
+ <string>RE</string>
</entry>
<entry>
<string>Bits</string>
@@ -805,7 +788,7 @@
</entry>
<entry>
<string>NetName</string>
- <string>RW_PA</string>
+ <string>RW_E</string>
</entry>
</elementAttributes>
<pos x="460" y="820"/>
@@ -819,7 +802,7 @@
</entry>
<entry>
<string>Label</string>
- <string>PB</string>
+ <string>RF</string>
</entry>
<entry>
<string>Bits</string>
@@ -833,7 +816,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[55]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[53]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -847,7 +830,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[56]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[54]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -876,7 +859,7 @@
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[59]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[57]/elementAttributes/entry/rotation"/>
</entry>
<entry>
<string>NetName</string>
@@ -894,40 +877,12 @@
</entry>
<entry>
<string>NetName</string>
- <string>RW_PB</string>
+ <string>RW_F</string>
</entry>
</elementAttributes>
<pos x="460" y="980"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="920" y="740"/>
- </visualElement>
- <visualElement>
- <elementName>Ground</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="1"/>
- </entry>
- <entry>
- <string>Bits</string>
- <int>16</int>
- </entry>
- </elementAttributes>
- <pos x="920" y="460"/>
- </visualElement>
- <visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
@@ -1038,7 +993,7 @@
<elementAttributes>
<entry>
<string>NetName</string>
- <string>RW_PA</string>
+ <string>RW_E</string>
</entry>
</elementAttributes>
<pos x="120" y="700"/>
@@ -1048,7 +1003,7 @@
<elementAttributes>
<entry>
<string>NetName</string>
- <string>RW_PB</string>
+ <string>RW_F</string>
</entry>
</elementAttributes>
<pos x="120" y="720"/>
@@ -1073,6 +1028,133 @@ C 0xA 1 0 0 X 0 X</dataString>
</elementAttributes>
<pos x="900" y="920"/>
</visualElement>
+ <visualElement>
+ <elementName>Register</elementName>
+ <elementAttributes>
+ <entry>
+ <string>valueIsProbe</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>RG</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="1080"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[53]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Din</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="1080"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[54]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="1100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Q7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="1100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes/>
+ <pos x="460" y="1120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[57]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>RW_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="460" y="1120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>RW_G</string>
+ </entry>
+ </elementAttributes>
+ <pos x="460" y="1160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Q7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Q7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="740"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>RW_G</string>
+ </entry>
+ </elementAttributes>
+ <pos x="120" y="740"/>
+ </visualElement>
</visualElements>
<wires>
<wire>
@@ -1108,14 +1190,14 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="560" y="460"/>
</wire>
<wire>
- <p1 x="920" y="460"/>
- <p2 x="940" y="460"/>
- </wire>
- <wire>
<p1 x="440" y="460"/>
<p2 x="460" y="460"/>
</wire>
<wire>
+ <p1 x="920" y="460"/>
+ <p2 x="940" y="460"/>
+ </wire>
+ <wire>
<p1 x="540" y="140"/>
<p2 x="560" y="140"/>
</wire>
@@ -1124,6 +1206,10 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="560" y="780"/>
</wire>
<wire>
+ <p1 x="620" y="1100"/>
+ <p2 x="640" y="1100"/>
+ </wire>
+ <wire>
<p1 x="980" y="400"/>
<p2 x="1080" y="400"/>
</wire>
@@ -1164,10 +1250,6 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="540" y="480"/>
</wire>
<wire>
- <p1 x="920" y="480"/>
- <p2 x="940" y="480"/>
- </wire>
- <wire>
<p1 x="940" y="800"/>
<p2 x="960" y="800"/>
</wire>
@@ -1180,6 +1262,10 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="540" y="160"/>
</wire>
<wire>
+ <p1 x="540" y="1120"/>
+ <p2 x="560" y="1120"/>
+ </wire>
+ <wire>
<p1 x="920" y="420"/>
<p2 x="940" y="420"/>
</wire>
@@ -1228,6 +1314,10 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="100" y="820"/>
</wire>
<wire>
+ <p1 x="520" y="1140"/>
+ <p2 x="540" y="1140"/>
+ </wire>
+ <wire>
<p1 x="920" y="440"/>
<p2 x="940" y="440"/>
</wire>
@@ -1236,10 +1326,6 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="640" y="440"/>
</wire>
<wire>
- <p1 x="920" y="760"/>
- <p2 x="940" y="760"/>
- </wire>
- <wire>
<p1 x="620" y="760"/>
<p2 x="640" y="760"/>
</wire>
@@ -1292,8 +1378,8 @@ C 0xA 1 0 0 X 0 X</dataString>
<p2 x="540" y="960"/>
</wire>
<wire>
- <p1 x="940" y="460"/>
- <p2 x="940" y="480"/>
+ <p1 x="540" y="1120"/>
+ <p2 x="540" y="1140"/>
</wire>
</wires>
<measurementOrdering/>
diff --git a/digital/tests_alu.dig b/digital/tests_alu.dig
deleted file mode 100644
index 9390503..0000000
--- a/digital/tests_alu.dig
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<circuit>
- <version>2</version>
- <attributes/>
- <visualElements>
- <visualElement>
- <elementName>Testcase</elementName>
- <elementAttributes>
- <entry>
- <string>Label</string>
- <string>test01</string>
- </entry>
- <entry>
- <string>Testdata</string>
- <testData>
- <dataString>A B Y
-0 0 1</dataString>
- </testData>
- </entry>
- </elementAttributes>
- <pos x="200" y="200"/>
- </visualElement>
- </visualElements>
- <wires/>
- <measurementOrdering/>
-</circuit> \ No newline at end of file