aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--.vscode/launch.json17
-rw-r--r--.vscode/settings.json3
-rw-r--r--16bit-cpu.md82
-rw-r--r--Makefile22
-rw-r--r--digital/atk16.dig1828
-rw-r--r--digital/atk16_alu.dig2651
-rw-r--r--digital/atk16_alu_carryfix.dig270
-rw-r--r--digital/tests_alu.dig26
-rw-r--r--logisim/CPU16.circ4344
-rwxr-xr-xsrc/assembler.py263
-rw-r--r--src/test.atk1633
-rwxr-xr-xsrc/test_alu.py48
-rw-r--r--src/test_utils.py93
-rwxr-xr-xsrc/ucode.py103
15 files changed, 9787 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a660363
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+out/
+*.pdf
+
+*.pyc \ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..e60d76b
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,17 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Python: Current File",
+ "type": "python",
+ "request": "launch",
+ "program": "${file}",
+ "console": "integratedTerminal",
+ "justMyCode": true,
+ "args": ["test.atk16", "test.bin"]
+ }
+ ]
+} \ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..3516cb9
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "python.formatting.provider": "autopep8"
+} \ No newline at end of file
diff --git a/16bit-cpu.md b/16bit-cpu.md
new file mode 100644
index 0000000..73b588e
--- /dev/null
+++ b/16bit-cpu.md
@@ -0,0 +1,82 @@
+# 16-bit CPU design doc
+
+## Features
+16-bit data
+16-bit address width
+16-bit instruction width
+
+MISC
+4-bit opcodes
+
+instruction format
+xxxx xxxx xxxx xxxx - xxxx xxxx xxxx xxxx
+
+General purpose registers:
+
+ 000: Zero register
+ 001: RA
+ 010: RB
+ 011: RC
+ 100: RD
+
+Special registers: MAR (memory address), IR (instruction), FR (flag)
+
+Serial peripheral ports:
+
+ 101: PA
+ 110: PB
+
+for communicating with the outside world.
+
+Expansion port that connects directly to the main bus
+
+Addressing mode: indirect absolute (addresses are stored in registers and point to a complete address)
+
+## Operations
+
+### Memory operations
+Format: [ 4 opcode . 3 rt . 3 rx . 6 unused ]
+
+ ldr [rx] [rt] # load value from memory at address (register value) rx to rt
+ str [rx] [rt] # store value in rt to memory address (register value) rx
+
+### Immediate operations
+Format: [ 4 opcode . 3 reg . 9 imm ]
+
+ ldi [rt] [imm] # load immediate value imm to rt
+
+### Nullary operations
+Format: [ 4 opcode . 12 unused ]
+
+ hlt # halt
+
+### Arithmetic and logic operations
+Format [ 4 opcode . 3 rt . 3 rl . 3 rr . 3 alu S ]
+
+ alu [rl] [rr] [rt] [S] # compute rl ? rr where ? is the operation defined by
+ # 0SSS in the ALU, and store result in rt
+ # see datasheet of 74382 and ALU impl
+ als [rl] [rr] [rt] [S] # compute rl ? rr where ? is the operation defined by
+ # 1SSS in the ALU, and store result in rt
+ # see datasheet of 74382 and ALU impl
+
+Note: mul, div, gt, lt, eq, neq are implemented as pseudoinstructions in the assembler
+
+### Jump
+Format: [ 4 opcode . 3 rx . 9 unused ]
+
+ jmp [rx] # Jump to address in register rx
+
+### Branch
+Format: [ 4 opcode . 1 unused . 2 flag . 9 addr ]
+Branch if flag is set (where flag 0b00 = Z, 0b01 = C, ...)
+
+ br [flag] [addr]
+
+Flags:
+- C = ALU carry bit
+- O = ALU overflow bit
+- Z = ALU zero bit
+- S = ALU sign bit
+
+Interrupt lines: 1 (IRQ)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..f3366b0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,22 @@
+.PHONY: all
+
+py = /usr/bin/env python3
+digital_path = $(HOME)/.local/share/Digital/digital.jar
+
+start-digital:
+ java -jar $(digital_path) &
+
+# make assemble asm=src/program.atk16 out=out/program.bin
+assemble:
+ $(py) src/assembler.py $(asm) $(out)
+
+# make gen-ucode out=out/ucode.bin
+gen-ucode:
+ $(py) src/ucode.py $(out)
+
+# make test
+test:
+ $(py) src/test_alu.py digital/atk16_alu.dig
+
+run-single-test:
+ java -cp $(digital_path) CLI test -verbose -circ $(circ) -tests $(tests)
diff --git a/digital/atk16.dig b/digital/atk16.dig
new file mode 100644
index 0000000..8c350c2
--- /dev/null
+++ b/digital/atk16.dig
@@ -0,0 +1,1828 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes/>
+ <visualElements>
+ <visualElement>
+ <elementName>RegisterFile</elementName>
+ <elementAttributes>
+ <entry>
+ <string>AddrBits</string>
+ <int>3</int>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>Register file</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-200" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Register</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MAR</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="-240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Register</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>IR</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_alu.dig</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>ALU</string>
+ </entry>
+ <entry>
+ <string>shapeType</string>
+ <shapeType>SIMPLE</shapeType>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Register</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>FR</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="300" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>FR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="280" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="-240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PC_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="-260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MAR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-20" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>3,3,3,3,4</string>
+ </entry>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>OPCODE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="-60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="0"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>RW_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>3,1</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[17]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-20" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>OP_PARITY</string>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>RAMAsync</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MEM_RAM</string>
+ </entry>
+ <entry>
+ <string>AddrBits</string>
+ <int>15</int>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="-220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>EEPROM</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>UCODE</string>
+ </entry>
+ <entry>
+ <string>AddrBits</string>
+ <int>8</int>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>isProgramMemory</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="620" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>3,1,4</string>
+ </entry>
+ </elementAttributes>
+ <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>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[13]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>OPCODE</string>
+ </entry>
+ </elementAttributes>
+ <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>
+ <string>Selector Bits</string>
+ <int>2</int>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Input Splitting</string>
+ <string>3</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>2,</string>
+ </entry>
+ </elementAttributes>
+ <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>Counter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>Microsequencer</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="520" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>US_RS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes/>
+ <pos x="380" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="500" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes/>
+ <pos x="380" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR_L9</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-480" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR_L12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-480" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>12,</string>
+ </entry>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>mirror</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1*16</string>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>CounterPreset</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>PC</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>isProgramCounter</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="-280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="-240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[46]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PC_CO</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="-280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PC_CO</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PC_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PC_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MAR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>RW_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="160"/>
+ </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="40" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>R2_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="160" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>ALU_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="160" y="260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>R1_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>R2_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>IR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>R1_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>IR9_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>IR12_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>ALU_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>HALT</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>US_RS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>FR_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="720" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>BitSelector</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Selector Bits</string>
+ <int>4</int>
+ </entry>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="120" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>OP_PARITY</string>
+ </entry>
+ </elementAttributes>
+ <pos x="120" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Const</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>Value</string>
+ <long>15</long>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>9,</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="20"/>
+ </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="-460" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>7</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-460" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>12,4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>16</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-340" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-340" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-300" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>IR12_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="-400" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IR9_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>EEPROM</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MEM_ROM</string>
+ </entry>
+ <entry>
+ <string>AddrBits</string>
+ <int>15</int>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ <entry>
+ <string>inverterConfig</string>
+ <inverterConfig>
+ <string>CS</string>
+ </inverterConfig>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="-400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>15,1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="-320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Demultiplexer</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>15</int>
+ </entry>
+ </elementAttributes>
+ <pos x="520" y="-340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="620" y="-340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="760" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="800" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Clock</elementName>
+ <elementAttributes>
+ <entry>
+ <string>small</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="-320" y="-360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-300" y="-360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="400" y="-220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="280" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="80"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="280" y="320"/>
+ <p2 x="300" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="320"/>
+ <p2 x="-200" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="320"/>
+ <p2 x="40" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="320"/>
+ <p2 x="0" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="680" y="320"/>
+ <p2 x="700" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="0"/>
+ <p2 x="-120" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="-260"/>
+ <p2 x="20" y="-260"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="-260"/>
+ <p2 x="740" y="-260"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="260"/>
+ <p2 x="-200" y="260"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="-200"/>
+ <p2 x="400" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="-200"/>
+ <p2 x="640" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-200"/>
+ <p2 x="20" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="-200"/>
+ <p2 x="720" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="200"/>
+ <p2 x="20" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="200"/>
+ <p2 x="200" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="-140"/>
+ <p2 x="-20" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="-140"/>
+ <p2 x="760" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-140"/>
+ <p2 x="480" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-140"/>
+ <p2 x="200" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="140"/>
+ <p2 x="520" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="-80"/>
+ <p2 x="0" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-400"/>
+ <p2 x="640" y="-400"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="80"/>
+ <p2 x="440" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="80"/>
+ <p2 x="380" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="-20"/>
+ <p2 x="-120" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="-480" y="-20"/>
+ <p2 x="-340" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="-340" y="-20"/>
+ <p2 x="-280" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="-340"/>
+ <p2 x="580" y="-340"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="-340"/>
+ <p2 x="640" y="-340"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="20"/>
+ <p2 x="-120" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-480" y="20"/>
+ <p2 x="-460" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-280" y="20"/>
+ <p2 x="-260" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-460" y="20"/>
+ <p2 x="-300" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="340"/>
+ <p2 x="620" y="340"/>
+ </wire>
+ <wire>
+ <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="540" y="-280"/>
+ <p2 x="600" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="-280"/>
+ <p2 x="800" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="280"/>
+ <p2 x="200" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="280"/>
+ <p2 x="40" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="-220" y="280"/>
+ <p2 x="-200" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="280"/>
+ <p2 x="620" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="280"/>
+ <p2 x="140" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="280"/>
+ <p2 x="300" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-220"/>
+ <p2 x="20" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="460" y="-220"/>
+ <p2 x="480" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-220"/>
+ <p2 x="640" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="-120" y="220"/>
+ <p2 x="-40" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="220"/>
+ <p2 x="-200" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="220"/>
+ <p2 x="600" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="220"/>
+ <p2 x="0" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="-160"/>
+ <p2 x="800" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="160"/>
+ <p2 x="380" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="40" y="160"/>
+ <p2 x="200" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-400" y="160"/>
+ <p2 x="-300" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="160"/>
+ <p2 x="-260" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="160"/>
+ <p2 x="0" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="160"/>
+ <p2 x="-40" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="100"/>
+ <p2 x="520" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="100"/>
+ <p2 x="440" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="100"/>
+ <p2 x="600" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="-40"/>
+ <p2 x="-120" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-40"/>
+ <p2 x="0" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="-360"/>
+ <p2 x="760" y="-360"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="-360"/>
+ <p2 x="-300" y="-360"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="360"/>
+ <p2 x="620" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="-300"/>
+ <p2 x="540" y="-300"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="-300"/>
+ <p2 x="580" y="-300"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="300"/>
+ <p2 x="300" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="300"/>
+ <p2 x="40" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="300"/>
+ <p2 x="-200" 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>
+ <wire>
+ <p1 x="440" y="300"/>
+ <p2 x="540" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="300"/>
+ <p2 x="220" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="-240"/>
+ <p2 x="120" y="-240"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="-240"/>
+ <p2 x="200" y="-240"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-240"/>
+ <p2 x="20" y="-240"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-240"/>
+ <p2 x="400" y="-240"/>
+ </wire>
+ <wire>
+ <p1 x="-120" y="240"/>
+ <p2 x="-20" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="-220" y="240"/>
+ <p2 x="-200" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="-180"/>
+ <p2 x="20" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="180"/>
+ <p2 x="40" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="120"/>
+ <p2 x="380" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="120"/>
+ <p2 x="520" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="-60"/>
+ <p2 x="-120" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="-60"/>
+ <p2 x="80" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="80" y="-60"/>
+ <p2 x="120" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="-380"/>
+ <p2 x="620" y="-380"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="60"/>
+ <p2 x="-100" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="60"/>
+ <p2 x="-300" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="60"/>
+ <p2 x="-400" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="60"/>
+ <p2 x="80" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="-320"/>
+ <p2 x="520" y="-320"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="-320"/>
+ <p2 x="640" y="-320"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="220"/>
+ <p2 x="0" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="-20"/>
+ <p2 x="-260" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="160"/>
+ <p2 x="-260" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="20"/>
+ <p2 x="-260" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-400"/>
+ <p2 x="580" y="-340"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-300"/>
+ <p2 x="580" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-240"/>
+ <p2 x="200" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="200"/>
+ <p2 x="200" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-140"/>
+ <p2 x="200" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="160"/>
+ <p2 x="200" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="-460" y="80"/>
+ <p2 x="-460" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-460" y="20"/>
+ <p2 x="-460" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-400" y="60"/>
+ <p2 x="-400" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="80" y="-60"/>
+ <p2 x="80" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="200"/>
+ <p2 x="-20" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-220"/>
+ <p2 x="-20" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-40"/>
+ <p2 x="-20" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="240"/>
+ <p2 x="-20" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="-340" y="80"/>
+ <p2 x="-340" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-340" y="-20"/>
+ <p2 x="-340" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="100"/>
+ <p2 x="600" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="-380"/>
+ <p2 x="600" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="-280"/>
+ <p2 x="600" y="-260"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="320"/>
+ <p2 x="280" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="220"/>
+ <p2 x="540" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="540" y="-300"/>
+ <p2 x="540" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="280"/>
+ <p2 x="220" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="-200"/>
+ <p2 x="480" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="-320"/>
+ <p2 x="480" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="800" y="-280"/>
+ <p2 x="800" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="20"/>
+ <p2 x="-100" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="320"/>
+ <p2 x="420" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="-280"/>
+ <p2 x="100" y="-240"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="-260"/>
+ <p2 x="740" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="160"/>
+ <p2 x="-40" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="100"/>
+ <p2 x="360" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="60"/>
+ <p2 x="-300" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="120"/>
+ <p2 x="-300" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="620" y="-320"/>
+ <p2 x="620" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="0"/>
+ <p2 x="120" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="-60"/>
+ <p2 x="120" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="80"/>
+ <p2 x="440" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="100"/>
+ <p2 x="440" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="-360"/>
+ <p2 x="760" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="-140"/>
+ <p2 x="-60" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="-200"/>
+ <p2 x="380" y="-180"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_alu.dig b/digital/atk16_alu.dig
new file mode 100644
index 0000000..09e0e1b
--- /dev/null
+++ b/digital/atk16_alu.dig
@@ -0,0 +1,2651 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <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>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[5]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[5]/elementAttributes/entry/rotation"/>
+ </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"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-120" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[9]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="200" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[9]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="540" y="520"/>
+ </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"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A5</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A6</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A9</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A10</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="0"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="-20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A13</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A14</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="-60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</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>
+ </entry>
+ </elementAttributes>
+ <pos x="-500" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>3</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1*3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="600"/>
+ </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"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B5</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B6</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B9</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B10</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B13</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B14</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y5</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y6</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="440"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y13</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y14</string>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="520"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="480"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A9</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A10</string>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A13</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A14</string>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>A15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B5</string>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B6</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="360" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>B11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="700" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="240"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="960" y="720"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1*16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>16</string>
+ </entry>
+ </elementAttributes>
+ <pos x="760" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="840"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="860"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y3</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="880"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="900"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y5</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="920"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y6</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="940"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y7</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="960"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y8</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="980"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y9</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1000"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y10</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1020"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y11</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1040"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y12</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1060"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y13</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1080"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y14</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>Y15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="1120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>BarrelShifter</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>Bits</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-340" y="600"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>3,1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Demultiplexer</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Selector Bits</string>
+ <int>3</int>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="780"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-460" y="260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-460" y="420"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>A</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="860"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>5,</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-200" y="1040"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>B</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="1040"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Decoder</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Selector Bits</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="1180"/>
+ </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="140" y="800"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>ALS_E</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-400" y="700"/>
+ </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="420" y="800"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[128]/elementAttributes/entry/rotation"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>ALS_E</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>DriverInvSel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="840" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>BarrelShifter</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>
+ </entry>
+ <entry>
+ <string>direction</string>
+ <direction>right</direction>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="940"/>
+ </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="260" y="960"/>
+ </visualElement>
+ <visualElement>
+ <elementName>BarrelShifter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>SLL</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="1120"/>
+ </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="160" y="1140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1*4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="1220" y="400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>FLAGS</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="1300" y="400"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>ALS_E</string>
+ </entry>
+ </elementAttributes>
+ <pos x="880" y="780"/>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="1000" y="960"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Const</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Value</string>
+ <long>15</long>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="1020" y="980"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</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>
+ </entry>
+ </elementAttributes>
+ <pos x="1040" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>Add test 1</string>
+ </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>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="1260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>8</int>
+ </entry>
+ </elementAttributes>
+ <pos x="980" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="1060" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</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>
+ </entry>
+ </elementAttributes>
+ <pos x="1200" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</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>
+ </entry>
+ </elementAttributes>
+ <pos x="1120" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>2</int>
+ </entry>
+ </elementAttributes>
+ <pos x="1140" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>NOr</elementName>
+ <elementAttributes/>
+ <pos x="1220" y="820"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Testcase</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>
+ </entry>
+ </elementAttributes>
+ <pos x="660" y="1260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_alu_carryfix.dig</elementName>
+ <elementAttributes/>
+ <pos x="-60" y="-40"/>
+ </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="-300" y="640"/>
+ <p2 x="-260" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="640"/>
+ <p2 x="-160" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="640"/>
+ <p2 x="860" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="640"/>
+ <p2 x="160" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="640"/>
+ <p2 x="500" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="260"/>
+ <p2 x="-260" y="260"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="900"/>
+ <p2 x="760" y="900"/>
+ </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="-420" y="140"/>
+ <p2 x="-380" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="140"/>
+ <p2 x="-260" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="780"/>
+ <p2 x="20" y="780"/>
+ </wire>
+ <wire>
+ <p1 x="840" y="780"/>
+ <p2 x="880" y="780"/>
+ </wire>
+ <wire>
+ <p1 x="40" y="400"/>
+ <p2 x="100" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="400"/>
+ <p2 x="440" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="400"/>
+ <p2 x="800" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="400"/>
+ <p2 x="-100" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="160" 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="740" y="1040"/>
+ <p2 x="760" y="1040"/>
+ </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="-300" y="280"/>
+ <p2 x="-260" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="920"/>
+ <p2 x="760" y="920"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="1180"/>
+ <p2 x="-40" y="1180"/>
+ </wire>
+ <wire>
+ <p1 x="40" y="160"/>
+ <p2 x="60" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="160"/>
+ <p2 x="380" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="160"/>
+ <p2 x="720" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="1060" y="160"/>
+ <p2 x="1080" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="160"/>
+ <p2 x="-380" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="160"/>
+ <p2 x="-260" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="80" y="800"/>
+ <p2 x="120" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="800"/>
+ <p2 x="360" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="800"/>
+ <p2 x="-80" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="800"/>
+ <p2 x="660" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="800"/>
+ <p2 x="400" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="1100" y="420"/>
+ <p2 x="1220" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="1060"/>
+ <p2 x="760" y="1060"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="-40"/>
+ <p2 x="-380" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-40"/>
+ <p2 x="-60" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="40"/>
+ <p2 x="-380" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="680"/>
+ <p2 x="-400" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="-400" y="680"/>
+ <p2 x="-320" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="300"/>
+ <p2 x="-260" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="940"/>
+ <p2 x="140" y="940"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="940"/>
+ <p2 x="760" y="940"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="1200"/>
+ <p2 x="-20" y="1200"/>
+ </wire>
+ <wire>
+ <p1 x="780" y="820"/>
+ <p2 x="820" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="820"/>
+ <p2 x="20" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="820"/>
+ <p2 x="-100" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="860" y="820"/>
+ <p2 x="940" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="820"/>
+ <p2 x="760" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="940" y="820"/>
+ <p2 x="960" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="180"/>
+ <p2 x="-380" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="180"/>
+ <p2 x="-260" y="180"/>
+ </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="740" y="1080"/>
+ <p2 x="760" y="1080"/>
+ </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="-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="-260" y="960"/>
+ <p2 x="-200" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="960"/>
+ <p2 x="240" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="960"/>
+ <p2 x="360" 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"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="960"/>
+ <p2 x="760" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="1220"/>
+ <p2 x="160" y="1220"/>
+ </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="740" y="840"/>
+ <p2 x="760" y="840"/>
+ </wire>
+ <wire>
+ <p1 x="1300" y="840"/>
+ <p2 x="1380" y="840"/>
+ </wire>
+ <wire>
+ <p1 x="1200" y="460"/>
+ <p2 x="1220" y="460"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="1100"/>
+ <p2 x="760" y="1100"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="-80"/>
+ <p2 x="-380" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="660" y="720"/>
+ <p2 x="940" y="720"/>
+ </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="-260" y="1360"/>
+ <p2 x="-200" y="1360"/>
+ </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="740" y="980"/>
+ <p2 x="760" y="980"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="600"/>
+ <p2 x="-260" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="600"/>
+ <p2 x="-200" 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="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="-460" y="220"/>
+ <p2 x="-440" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="860"/>
+ <p2 x="140" y="860"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="860"/>
+ <p2 x="760" y="860"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="1120"/>
+ <p2 x="40" y="1120"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="1120"/>
+ <p2 x="760" y="1120"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="100"/>
+ <p2 x="420" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="100"/>
+ <p2 x="780" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="800" y="100"/>
+ <p2 x="1140" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="100"/>
+ <p2 x="-380" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="100"/>
+ <p2 x="-260" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="360"/>
+ <p2 x="420" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="360"/>
+ <p2 x="780" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="1060" y="360"/>
+ <p2 x="1140" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="360"/>
+ <p2 x="-100" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="140" 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"/>
+ </wire>
+ <wire>
+ <p1 x="-480" y="360"/>
+ <p2 x="-460" 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="740" y="1000"/>
+ <p2 x="760" y="1000"/>
+ </wire>
+ <wire>
+ <p1 x="-500" y="620"/>
+ <p2 x="-440" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="620"/>
+ <p2 x="-340" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="620"/>
+ <p2 x="-180" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="620"/>
+ <p2 x="140" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="140" y="620"/>
+ <p2 x="480" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="620"/>
+ <p2 x="840" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="-300" y="240"/>
+ <p2 x="-260" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="880"/>
+ <p2 x="760" y="880"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="1140"/>
+ <p2 x="140" y="1140"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="1140"/>
+ <p2 x="360" y="1140"/>
+ </wire>
+ <wire>
+ <p1 x="1200" y="500"/>
+ <p2 x="1400" y="500"/>
+ </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="-20" y="1020"/>
+ <p2 x="260" y="1020"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="1020"/>
+ <p2 x="760" y="1020"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="640"/>
+ <p2 x="-260" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="-260" y="960"/>
+ <p2 x="-260" y="1360"/>
+ </wire>
+ <wire>
+ <p1 x="260" y="980"/>
+ <p2 x="260" y="1020"/>
+ </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="1320"/>
+ <p2 x="-200" y="1360"/>
+ </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="840" y="780"/>
+ <p2 x="840" y="800"/>
+ </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="140" y="820"/>
+ <p2 x="140" y="860"/>
+ </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="-400" y="680"/>
+ <p2 x="-400" y="700"/>
+ </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="-20" y="1020"/>
+ <p2 x="-20" y="1200"/>
+ </wire>
+ <wire>
+ <p1 x="660" y="720"/>
+ <p2 x="660" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="860" y="400"/>
+ <p2 x="860" y="640"/>
+ </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"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="1160"/>
+ <p2 x="160" y="1220"/>
+ </wire>
+ <wire>
+ <p1 x="800" y="100"/>
+ <p2 x="800" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="360"/>
+ <p2 x="480" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="1120" y="820"/>
+ <p2 x="1120" y="840"/>
+ </wire>
+ <wire>
+ <p1 x="-420" y="640"/>
+ <p2 x="-420" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="820"/>
+ <p2 x="-100" y="1120"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="100"/>
+ <p2 x="100" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="100"/>
+ <p2 x="420" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="1380" y="520"/>
+ <p2 x="1380" y="840"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="860"/>
+ <p2 x="-40" y="1180"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="800"/>
+ <p2 x="360" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="360" y="960"/>
+ <p2 x="360" y="1140"/>
+ </wire>
+ <wire>
+ <p1 x="940" y="720"/>
+ <p2 x="940" y="820"/>
+ </wire>
+ <wire>
+ <p1 x="940" y="820"/>
+ <p2 x="940" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="1200" y="820"/>
+ <p2 x="1200" y="840"/>
+ </wire>
+ <wire>
+ <p1 x="1200" y="460"/>
+ <p2 x="1200" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="-20"/>
+ <p2 x="-180" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="-180" y="360"/>
+ <p2 x="-180" y="620"/>
+ </wire>
+ <wire>
+ <p1 x="1140" y="100"/>
+ <p2 x="1140" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="1140" y="440"/>
+ <p2 x="1140" y="520"/>
+ </wire>
+ <wire>
+ <p1 x="500" y="400"/>
+ <p2 x="500" y="640"/>
+ </wire>
+ <wire>
+ <p1 x="820" y="320"/>
+ <p2 x="820" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="100"/>
+ <p2 x="440" y="400"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="320"/>
+ <p2 x="120" y="600"/>
+ </wire>
+ <wire>
+ <p1 x="1400" y="500"/>
+ <p2 x="1400" y="960"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="820"/>
+ <p2 x="-60" y="980"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="1040"/>
+ <p2 x="-60" y="1160"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="980"/>
+ <p2 x="-60" y="1040"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="640"/>
+ <p2 x="-320" y="680"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/atk16_alu_carryfix.dig b/digital/atk16_alu_carryfix.dig
new file mode 100644
index 0000000..1c22602
--- /dev/null
+++ b/digital/atk16_alu_carryfix.dig
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes/>
+ <visualElements>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>Y</string>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>1</int>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="0"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>3</int>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>S2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-160" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-140" y="-60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>S1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-80" y="-60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>S0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Not</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-20" y="-60"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="-140" y="0"/>
+ <p2 x="20" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="80"/>
+ <p2 x="20" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="80"/>
+ <p2 x="140" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="20"/>
+ <p2 x="20" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="20"/>
+ <p2 x="120" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="100"/>
+ <p2 x="20" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="100"/>
+ <p2 x="120" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="40"/>
+ <p2 x="20" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="40"/>
+ <p2 x="140" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="120"/>
+ <p2 x="20" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="60"/>
+ <p2 x="240" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-80"/>
+ <p2 x="-140" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="-80"/>
+ <p2 x="-80" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-80"/>
+ <p2 x="-20" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="-100"/>
+ <p2 x="-100" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="-80"/>
+ <p2 x="-100" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="100"/>
+ <p2 x="-100" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-80"/>
+ <p2 x="-20" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-20"/>
+ <p2 x="-20" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="120"/>
+ <p2 x="-20" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-100"/>
+ <p2 x="-40" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="-80"/>
+ <p2 x="-40" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="40"/>
+ <p2 x="-40" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="20"/>
+ <p2 x="120" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="80"/>
+ <p2 x="120" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="-80"/>
+ <p2 x="-140" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="-20"/>
+ <p2 x="-140" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="80"/>
+ <p2 x="-140" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-140" y="0"/>
+ <p2 x="-140" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-100"/>
+ <p2 x="-160" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-80"/>
+ <p2 x="-160" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-80"/>
+ <p2 x="-80" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-20"/>
+ <p2 x="-80" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="20"/>
+ <p2 x="-80" y="140"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file
diff --git a/digital/tests_alu.dig b/digital/tests_alu.dig
new file mode 100644
index 0000000..9390503
--- /dev/null
+++ b/digital/tests_alu.dig
@@ -0,0 +1,26 @@
+<?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
diff --git a/logisim/CPU16.circ b/logisim/CPU16.circ
new file mode 100644
index 0000000..6f1610b
--- /dev/null
+++ b/logisim/CPU16.circ
@@ -0,0 +1,4344 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<project source="3.8.0" version="1.0">
+ This file is intended to be loaded by Logisim-evolution v3.8.0(https://github.com/logisim-evolution/).
+
+ <lib desc="#Wiring" name="0">
+ <tool name="Splitter">
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </tool>
+ <tool name="Pin">
+ <a name="appearance" val="classic"/>
+ </tool>
+ <tool name="Probe">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ </tool>
+ <tool name="Tunnel">
+ <a name="facing" val="north"/>
+ </tool>
+ <tool name="Pull Resistor">
+ <a name="facing" val="north"/>
+ </tool>
+ <tool name="Power">
+ <a name="facing" val="west"/>
+ </tool>
+ <tool name="Ground">
+ <a name="facing" val="west"/>
+ </tool>
+ <tool name="Bit Extender">
+ <a name="type" val="input"/>
+ </tool>
+ </lib>
+ <lib desc="#Gates" name="1">
+ <tool name="NOT Gate">
+ <a name="size" val="20"/>
+ </tool>
+ <tool name="AND Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </tool>
+ <tool name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </tool>
+ <tool name="NOR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </tool>
+ <tool name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </tool>
+ <tool name="XNOR Gate">
+ <a name="inputs" val="5"/>
+ </tool>
+ <tool name="Odd Parity">
+ <a name="inputs" val="5"/>
+ </tool>
+ <tool name="Even Parity">
+ <a name="inputs" val="5"/>
+ </tool>
+ </lib>
+ <lib desc="#Plexers" name="2">
+ <tool name="Multiplexer">
+ <a name="enable" val="true"/>
+ </tool>
+ <tool name="Demultiplexer">
+ <a name="enable" val="true"/>
+ </tool>
+ <tool name="Decoder">
+ <a name="enable" val="false"/>
+ </tool>
+ </lib>
+ <lib desc="#Arithmetic" name="3"/>
+ <lib desc="#Memory" name="4">
+ <tool name="D Flip-Flop">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="T Flip-Flop">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="J-K Flip-Flop">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="S-R Flip-Flop">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="Register">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="Counter">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="Shift Register">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ <tool name="Random">
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </tool>
+ </lib>
+ <lib desc="#I/O" name="5">
+ <tool name="Button">
+ <a name="labelcolor" val="#000000"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="labelloc" val="center"/>
+ </tool>
+ <tool name="LED">
+ <a name="labelcolor" val="#000000"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="labelloc" val="center"/>
+ </tool>
+ <tool name="DotMatrix">
+ <a name="offcolor" val="#404040"/>
+ </tool>
+ </lib>
+ <lib desc="#TTL" name="6"/>
+ <lib desc="#TCL" name="7"/>
+ <lib desc="#Base" name="8">
+ <tool name="Text Tool">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="valign" val="center"/>
+ </tool>
+ </lib>
+ <lib desc="#BFH-Praktika" name="9"/>
+ <lib desc="#Input/Output-Extra" name="10"/>
+ <lib desc="#Soc" name="11"/>
+ <main name="TestBench"/>
+ <options>
+ <a name="gateUndefined" val="ignore"/>
+ <a name="simlimit" val="1000"/>
+ <a name="simrand" val="0"/>
+ </options>
+ <mappings>
+ <tool lib="8" map="Button2" name="Poke Tool"/>
+ <tool lib="8" map="Button3" name="Menu Tool"/>
+ <tool lib="8" map="Ctrl Button1" name="Menu Tool"/>
+ </mappings>
+ <toolbar>
+ <tool lib="8" name="Poke Tool"/>
+ <tool lib="8" name="Edit Tool"/>
+ <tool lib="8" name="Wiring Tool"/>
+ <tool lib="8" name="Text Tool">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="valign" val="center"/>
+ </tool>
+ <sep/>
+ <tool lib="0" name="Pin"/>
+ <tool lib="0" name="Pin">
+ <a name="facing" val="west"/>
+ <a name="output" val="true"/>
+ </tool>
+ <sep/>
+ <tool lib="1" name="NOT Gate"/>
+ <tool lib="1" name="AND Gate"/>
+ <tool lib="1" name="OR Gate"/>
+ <tool lib="1" name="XOR Gate"/>
+ <tool lib="1" name="NAND Gate"/>
+ <tool lib="1" name="NOR Gate"/>
+ <sep/>
+ <tool lib="4" name="D Flip-Flop"/>
+ <tool lib="4" name="Register"/>
+ </toolbar>
+ <circuit name="CPU16">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="CPU16"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="16.0"/>
+ <comp lib="0" loc="(100,910)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_C3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(100,940)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_B3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1000,550)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="MAR_IE"/>
+ </comp>
+ <comp lib="0" loc="(1000,590)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(1010,1210)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="ALU_OE"/>
+ </comp>
+ <comp lib="0" loc="(1030,1120)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="ALU_RES"/>
+ <a name="labelloc" val="north"/>
+ <a name="radix" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1080,570)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(1080,610)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="MEM_IE"/>
+ </comp>
+ <comp lib="0" loc="(110,800)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(110,880)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_D3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(110,970)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_A3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1100,1500)" name="Splitter">
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(1100,1500)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="OPCODE"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(1110,1410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1150,1410)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="8"/>
+ <a name="incoming" val="8"/>
+ </comp>
+ <comp lib="0" loc="(1170,1200)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(1210,1220)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(1260,1110)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(1390,1460)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(140,730)" name="Splitter">
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(140,900)" name="Splitter">
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="3"/>
+ <a name="bit11" val="3"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="1"/>
+ <a name="bit4" val="1"/>
+ <a name="bit5" val="1"/>
+ <a name="bit6" val="2"/>
+ <a name="bit7" val="2"/>
+ <a name="bit8" val="2"/>
+ <a name="bit9" val="3"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="12"/>
+ </comp>
+ <comp lib="0" loc="(1420,1470)" name="Tunnel">
+ <a name="label" val="PC_CO"/>
+ </comp>
+ <comp lib="0" loc="(1420,1510)" name="Tunnel">
+ <a name="label" val="PC_OE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1550)" name="Tunnel">
+ <a name="label" val="MEM_IE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1590)" name="Tunnel">
+ <a name="label" val="R1_IE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1630)" name="Tunnel">
+ <a name="label" val="R2_IE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1670)" name="Tunnel">
+ <a name="label" val="IR_IE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1710)" name="Tunnel">
+ <a name="label" val="L12_OE"/>
+ </comp>
+ <comp lib="0" loc="(1420,1750)" name="Tunnel">
+ <a name="label" val="HALT"/>
+ </comp>
+ <comp lib="0" loc="(150,900)" name="Tunnel">
+ <a name="label" val="IR_12"/>
+ <a name="width" val="12"/>
+ </comp>
+ <comp lib="0" loc="(1500,1490)" name="Tunnel">
+ <a name="label" val="PC_IE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1530)" name="Tunnel">
+ <a name="label" val="MAR_IE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1570)" name="Tunnel">
+ <a name="label" val="MEM_OE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1610)" name="Tunnel">
+ <a name="label" val="R1_OE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1650)" name="Tunnel">
+ <a name="label" val="R2_OE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1690)" name="Tunnel">
+ <a name="label" val="L9_OE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1730)" name="Tunnel">
+ <a name="label" val="ALU_OE"/>
+ </comp>
+ <comp lib="0" loc="(1500,1770)" name="Tunnel">
+ <a name="label" val="US_RS"/>
+ </comp>
+ <comp lib="0" loc="(160,510)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_B3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(180,1430)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="US_RS"/>
+ </comp>
+ <comp lib="0" loc="(180,1490)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(190,1240)" name="Splitter">
+ <a name="fanout" val="7"/>
+ <a name="incoming" val="7"/>
+ </comp>
+ <comp lib="0" loc="(190,800)" name="Tunnel">
+ <a name="label" val="OPCODE"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(190,840)" name="Tunnel">
+ <a name="label" val="OP_PARITY"/>
+ </comp>
+ <comp lib="0" loc="(200,730)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(210,470)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_C3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(210,520)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(220,690)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(230,1160)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="8"/>
+ <a name="incoming" val="8"/>
+ </comp>
+ <comp lib="0" loc="(230,750)" name="Tunnel">
+ <a name="label" val="IR_A3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(240,1400)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(250,1170)" name="NoConnect">
+ <a name="width" val="8"/>
+ </comp>
+ <comp lib="0" loc="(260,1290)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(260,130)" name="Tunnel">
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(260,480)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(270,1150)" name="Splitter">
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="1"/>
+ <a name="bit11" val="1"/>
+ <a name="bit12" val="1"/>
+ <a name="bit13" val="1"/>
+ <a name="bit14" val="1"/>
+ <a name="bit15" val="1"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="0"/>
+ <a name="bit5" val="0"/>
+ <a name="bit6" val="0"/>
+ <a name="bit7" val="0"/>
+ <a name="bit8" val="1"/>
+ <a name="bit9" val="1"/>
+ <a name="facing" val="west"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(270,430)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_D3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(290,1000)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_A3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(290,1040)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="R2_IE"/>
+ </comp>
+ <comp lib="0" loc="(290,1080)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="ALU_OE"/>
+ </comp>
+ <comp lib="0" loc="(290,960)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="R1_IE"/>
+ </comp>
+ <comp lib="0" loc="(300,1320)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(300,300)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="PC_CO"/>
+ </comp>
+ <comp lib="0" loc="(310,1440)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(310,1460)" name="Power">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(310,1480)" name="Power">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(310,300)" name="Pull Resistor"/>
+ <comp lib="0" loc="(310,560)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="9"/>
+ <a name="incoming" val="9"/>
+ </comp>
+ <comp lib="0" loc="(320,440)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(340,570)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="IR_L9"/>
+ <a name="width" val="9"/>
+ </comp>
+ <comp lib="0" loc="(350,250)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="PC_IE"/>
+ </comp>
+ <comp lib="0" loc="(350,320)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(350,900)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(360,1020)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="R2_OE"/>
+ </comp>
+ <comp lib="0" loc="(360,1060)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_B3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(360,1100)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_C3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(360,260)" name="Pull Resistor">
+ <a name="facing" val="north"/>
+ </comp>
+ <comp lib="0" loc="(360,940)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(360,980)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="R1_OE"/>
+ </comp>
+ <comp lib="0" loc="(380,230)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(390,280)" name="Power">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(430,730)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_L9"/>
+ <a name="width" val="9"/>
+ </comp>
+ <comp lib="0" loc="(430,800)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_12"/>
+ <a name="width" val="12"/>
+ </comp>
+ <comp lib="0" loc="(450,100)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="HALT"/>
+ </comp>
+ <comp lib="0" loc="(490,70)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(500,730)" name="Bit Extender">
+ <a name="in_width" val="9"/>
+ <a name="type" val="zero"/>
+ </comp>
+ <comp lib="0" loc="(500,800)" name="Bit Extender">
+ <a name="in_width" val="12"/>
+ <a name="type" val="zero"/>
+ </comp>
+ <comp lib="0" loc="(510,130)" name="Pull Resistor">
+ <a name="facing" val="north"/>
+ </comp>
+ <comp lib="0" loc="(540,750)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="L9_OE"/>
+ </comp>
+ <comp lib="0" loc="(540,820)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="L12_OE"/>
+ </comp>
+ <comp lib="0" loc="(560,130)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="HALT"/>
+ <a name="output" val="true"/>
+ </comp>
+ <comp lib="0" loc="(570,90)" name="Tunnel">
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(590,1270)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_D3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(60,760)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_IE"/>
+ </comp>
+ <comp lib="0" loc="(620,1240)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="OP_PARITY"/>
+ </comp>
+ <comp lib="0" loc="(620,300)" name="Tunnel">
+ <a name="label" val="PC_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(640,1040)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(640,1270)" name="Bit Extender">
+ <a name="in_width" val="3"/>
+ <a name="out_width" val="4"/>
+ <a name="type" val="input"/>
+ </comp>
+ <comp lib="0" loc="(640,360)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="PC_OE"/>
+ </comp>
+ <comp lib="0" loc="(650,1010)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="PB"/>
+ </comp>
+ <comp lib="0" loc="(650,960)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="PA"/>
+ </comp>
+ <comp lib="0" loc="(680,1080)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="ALU_L"/>
+ <a name="radix" val="16"/>
+ </comp>
+ <comp lib="0" loc="(680,1110)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="ALU_R"/>
+ <a name="radix" val="16"/>
+ </comp>
+ <comp lib="0" loc="(70,790)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(750,1500)" name="Splitter">
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(750,1500)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="IR_A3"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(770,1490)" name="NoConnect"/>
+ <comp lib="0" loc="(790,1490)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(830,320)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ </comp>
+ <comp lib="0" loc="(860,1510)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(890,340)" name="Pull Resistor">
+ <a name="facing" val="north"/>
+ </comp>
+ <comp lib="0" loc="(920,340)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="radix" val="16"/>
+ </comp>
+ <comp lib="0" loc="(940,1070)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="ALU_FLAGS"/>
+ </comp>
+ <comp lib="0" loc="(950,1450)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(990,630)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="MEM_OE"/>
+ </comp>
+ <comp lib="1" loc="(1020,1150)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(1050,1450)" name="OR Gate">
+ <a name="inputs" val="4"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(240,1430)" name="AND Gate">
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(270,1490)" name="NOT Gate">
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(290,1420)" name="OR Gate">
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(550,730)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(550,800)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(560,90)" name="AND Gate">
+ <a name="negate1" val="true"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(650,340)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(940,1450)" name="AND Gate">
+ <a name="size" val="30"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="2" loc="(820,1510)" name="Decoder">
+ <a name="enable" val="false"/>
+ <a name="select" val="2"/>
+ </comp>
+ <comp lib="4" loc="(1150,1400)" name="ROM">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="contents">addr/data: 8 16
+c 421 2000 8000 4*0 c 421 2000
+8000 4*0 c 421 2000 8000 4*0 c
+421 2000 8000 4*0 c 421 88 120
+8000 0 0 0 c 421 88 120
+8000 0 0 0 c 421 88 210
+8000 0 0 0 c 421 88 210
+8000 0 0 0 c 421 840 8000
+4*0 c 421 840 8000 4*0 c 421
+82 8000 4*0 c 421 82 8000 4*0
+c 421 8000 5*0 c 421 202 8000
+4*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 8000 5*0 c 421 8000
+5*0 c 421 4000 5*0 c 421 4000
+</a>
+ <a name="dataWidth" val="16"/>
+ <a name="label" val="UCODE"/>
+ <a name="labelvisible" val="true"/>
+ </comp>
+ <comp lib="4" loc="(1180,1120)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="FR"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="4" loc="(310,1410)" name="Counter">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="MICROSEQUENCER"/>
+ <a name="max" val="0x7"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="4" loc="(390,230)" name="Counter">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="PC"/>
+ <a name="max" val="0xffff"/>
+ <a name="trigger" val="falling"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(80,700)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="IR"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="5" loc="(250,130)" name="Button">
+ <a name="labelcolor" val="#000000"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="labelloc" val="center"/>
+ </comp>
+ <comp lib="5" loc="(280,1290)" name="TTY">
+ <a name="trigger" val="falling"/>
+ </comp>
+ <comp lib="8" loc="(40,175)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="MAR_IE enables absolute addressing mode"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(900,275)" name="Text">
+ <a name="color" val="#ff0003"/>
+ <a name="text" val="BUS"/>
+ </comp>
+ <comp loc="(1300,530)" name="MemoryModule"/>
+ <comp loc="(580,900)" name="RegBank"/>
+ <comp loc="(930,1150)" name="ALU"/>
+ <wire from="(100,910)" to="(110,910)"/>
+ <wire from="(100,940)" to="(110,940)"/>
+ <wire from="(1000,1470)" to="(1000,1490)"/>
+ <wire from="(1000,1470)" to="(1020,1470)"/>
+ <wire from="(1000,550)" to="(1080,550)"/>
+ <wire from="(1000,590)" to="(1080,590)"/>
+ <wire from="(1010,1160)" to="(1010,1200)"/>
+ <wire from="(1010,1200)" to="(1010,1210)"/>
+ <wire from="(1010,1200)" to="(1110,1200)"/>
+ <wire from="(1020,1150)" to="(1080,1150)"/>
+ <wire from="(1030,1120)" to="(1030,1130)"/>
+ <wire from="(1050,1450)" to="(1130,1450)"/>
+ <wire from="(1070,510)" to="(1070,530)"/>
+ <wire from="(1070,510)" to="(1310,510)"/>
+ <wire from="(1070,530)" to="(1080,530)"/>
+ <wire from="(1080,940)" to="(1080,1150)"/>
+ <wire from="(110,790)" to="(110,800)"/>
+ <wire from="(110,880)" to="(120,880)"/>
+ <wire from="(110,910)" to="(110,920)"/>
+ <wire from="(110,920)" to="(120,920)"/>
+ <wire from="(110,930)" to="(110,940)"/>
+ <wire from="(110,930)" to="(120,930)"/>
+ <wire from="(110,970)" to="(120,970)"/>
+ <wire from="(1100,1150)" to="(1100,1170)"/>
+ <wire from="(1100,1150)" to="(1180,1150)"/>
+ <wire from="(1110,1170)" to="(1110,1200)"/>
+ <wire from="(1110,1170)" to="(1180,1170)"/>
+ <wire from="(1120,1460)" to="(1130,1460)"/>
+ <wire from="(1120,1470)" to="(1130,1470)"/>
+ <wire from="(1120,1480)" to="(1130,1480)"/>
+ <wire from="(1120,1490)" to="(1130,1490)"/>
+ <wire from="(1170,1200)" to="(1180,1200)"/>
+ <wire from="(1180,1190)" to="(1180,1200)"/>
+ <wire from="(120,880)" to="(120,910)"/>
+ <wire from="(120,940)" to="(120,970)"/>
+ <wire from="(1210,1210)" to="(1210,1220)"/>
+ <wire from="(1240,1150)" to="(1250,1150)"/>
+ <wire from="(1250,1110)" to="(1250,1150)"/>
+ <wire from="(1250,1110)" to="(1260,1110)"/>
+ <wire from="(1250,1150)" to="(1260,1150)"/>
+ <wire from="(1260,1150)" to="(1260,1270)"/>
+ <wire from="(1300,530)" to="(1310,530)"/>
+ <wire from="(1310,510)" to="(1310,530)"/>
+ <wire from="(140,900)" to="(150,900)"/>
+ <wire from="(1410,1470)" to="(1420,1470)"/>
+ <wire from="(1410,1490)" to="(1500,1490)"/>
+ <wire from="(1410,1510)" to="(1420,1510)"/>
+ <wire from="(1410,1530)" to="(1500,1530)"/>
+ <wire from="(1410,1550)" to="(1420,1550)"/>
+ <wire from="(1410,1570)" to="(1500,1570)"/>
+ <wire from="(1410,1590)" to="(1420,1590)"/>
+ <wire from="(1410,1610)" to="(1500,1610)"/>
+ <wire from="(1410,1630)" to="(1420,1630)"/>
+ <wire from="(1410,1650)" to="(1500,1650)"/>
+ <wire from="(1410,1670)" to="(1420,1670)"/>
+ <wire from="(1410,1690)" to="(1500,1690)"/>
+ <wire from="(1410,1710)" to="(1420,1710)"/>
+ <wire from="(1410,1730)" to="(1500,1730)"/>
+ <wire from="(1410,1750)" to="(1420,1750)"/>
+ <wire from="(1410,1770)" to="(1500,1770)"/>
+ <wire from="(160,510)" to="(210,510)"/>
+ <wire from="(160,570)" to="(260,570)"/>
+ <wire from="(160,580)" to="(270,580)"/>
+ <wire from="(160,590)" to="(280,590)"/>
+ <wire from="(160,600)" to="(220,600)"/>
+ <wire from="(160,610)" to="(230,610)"/>
+ <wire from="(160,620)" to="(240,620)"/>
+ <wire from="(160,630)" to="(170,630)"/>
+ <wire from="(160,640)" to="(180,640)"/>
+ <wire from="(160,650)" to="(190,650)"/>
+ <wire from="(160,660)" to="(200,660)"/>
+ <wire from="(160,670)" to="(200,670)"/>
+ <wire from="(160,680)" to="(200,680)"/>
+ <wire from="(160,690)" to="(170,690)"/>
+ <wire from="(160,700)" to="(180,700)"/>
+ <wire from="(160,710)" to="(180,710)"/>
+ <wire from="(160,720)" to="(180,720)"/>
+ <wire from="(170,530)" to="(170,630)"/>
+ <wire from="(170,530)" to="(190,530)"/>
+ <wire from="(170,630)" to="(290,630)"/>
+ <wire from="(170,690)" to="(170,840)"/>
+ <wire from="(170,690)" to="(180,690)"/>
+ <wire from="(170,840)" to="(190,840)"/>
+ <wire from="(180,1430)" to="(190,1430)"/>
+ <wire from="(180,1490)" to="(250,1490)"/>
+ <wire from="(180,540)" to="(180,640)"/>
+ <wire from="(180,540)" to="(190,540)"/>
+ <wire from="(180,640)" to="(290,640)"/>
+ <wire from="(190,1240)" to="(190,1270)"/>
+ <wire from="(190,1270)" to="(270,1270)"/>
+ <wire from="(190,1420)" to="(190,1430)"/>
+ <wire from="(190,1420)" to="(210,1420)"/>
+ <wire from="(190,1440)" to="(190,1460)"/>
+ <wire from="(190,1440)" to="(210,1440)"/>
+ <wire from="(190,1460)" to="(280,1460)"/>
+ <wire from="(190,550)" to="(190,650)"/>
+ <wire from="(190,650)" to="(290,650)"/>
+ <wire from="(190,740)" to="(190,800)"/>
+ <wire from="(190,740)" to="(200,740)"/>
+ <wire from="(200,730)" to="(200,740)"/>
+ <wire from="(210,1240)" to="(210,1310)"/>
+ <wire from="(210,1310)" to="(290,1310)"/>
+ <wire from="(210,470)" to="(260,470)"/>
+ <wire from="(210,510)" to="(210,520)"/>
+ <wire from="(220,490)" to="(220,600)"/>
+ <wire from="(220,490)" to="(240,490)"/>
+ <wire from="(220,600)" to="(290,600)"/>
+ <wire from="(220,690)" to="(220,750)"/>
+ <wire from="(220,750)" to="(230,750)"/>
+ <wire from="(230,1160)" to="(250,1160)"/>
+ <wire from="(230,500)" to="(230,610)"/>
+ <wire from="(230,500)" to="(240,500)"/>
+ <wire from="(230,610)" to="(290,610)"/>
+ <wire from="(240,1400)" to="(250,1400)"/>
+ <wire from="(240,1430)" to="(260,1430)"/>
+ <wire from="(240,510)" to="(240,620)"/>
+ <wire from="(240,620)" to="(290,620)"/>
+ <wire from="(250,130)" to="(260,130)"/>
+ <wire from="(250,1400)" to="(250,1410)"/>
+ <wire from="(250,1410)" to="(260,1410)"/>
+ <wire from="(260,1290)" to="(280,1290)"/>
+ <wire from="(260,470)" to="(260,480)"/>
+ <wire from="(260,520)" to="(260,570)"/>
+ <wire from="(260,520)" to="(280,520)"/>
+ <wire from="(260,570)" to="(290,570)"/>
+ <wire from="(270,1150)" to="(590,1150)"/>
+ <wire from="(270,1270)" to="(270,1280)"/>
+ <wire from="(270,1280)" to="(280,1280)"/>
+ <wire from="(270,1490)" to="(280,1490)"/>
+ <wire from="(270,430)" to="(320,430)"/>
+ <wire from="(270,530)" to="(270,580)"/>
+ <wire from="(270,530)" to="(290,530)"/>
+ <wire from="(270,580)" to="(290,580)"/>
+ <wire from="(280,1460)" to="(280,1490)"/>
+ <wire from="(280,1490)" to="(310,1490)"/>
+ <wire from="(280,450)" to="(280,520)"/>
+ <wire from="(280,450)" to="(300,450)"/>
+ <wire from="(280,540)" to="(280,590)"/>
+ <wire from="(280,540)" to="(300,540)"/>
+ <wire from="(280,590)" to="(290,590)"/>
+ <wire from="(280,880)" to="(280,920)"/>
+ <wire from="(280,880)" to="(620,880)"/>
+ <wire from="(280,920)" to="(360,920)"/>
+ <wire from="(290,1000)" to="(360,1000)"/>
+ <wire from="(290,1040)" to="(360,1040)"/>
+ <wire from="(290,1080)" to="(360,1080)"/>
+ <wire from="(290,1300)" to="(290,1310)"/>
+ <wire from="(290,1420)" to="(310,1420)"/>
+ <wire from="(290,460)" to="(290,530)"/>
+ <wire from="(290,460)" to="(300,460)"/>
+ <wire from="(290,960)" to="(360,960)"/>
+ <wire from="(300,1300)" to="(300,1320)"/>
+ <wire from="(300,300)" to="(310,300)"/>
+ <wire from="(300,470)" to="(300,540)"/>
+ <wire from="(310,1420)" to="(310,1430)"/>
+ <wire from="(310,300)" to="(390,300)"/>
+ <wire from="(310,560)" to="(340,560)"/>
+ <wire from="(320,430)" to="(320,440)"/>
+ <wire from="(340,560)" to="(340,570)"/>
+ <wire from="(350,250)" to="(360,250)"/>
+ <wire from="(350,320)" to="(360,320)"/>
+ <wire from="(350,900)" to="(360,900)"/>
+ <wire from="(360,250)" to="(360,260)"/>
+ <wire from="(360,260)" to="(390,260)"/>
+ <wire from="(360,310)" to="(360,320)"/>
+ <wire from="(360,310)" to="(390,310)"/>
+ <wire from="(370,390)" to="(370,680)"/>
+ <wire from="(370,680)" to="(590,680)"/>
+ <wire from="(380,230)" to="(380,250)"/>
+ <wire from="(380,250)" to="(390,250)"/>
+ <wire from="(430,730)" to="(460,730)"/>
+ <wire from="(430,800)" to="(460,800)"/>
+ <wire from="(450,100)" to="(510,100)"/>
+ <wire from="(490,1520)" to="(510,1520)"/>
+ <wire from="(490,70)" to="(500,70)"/>
+ <wire from="(500,70)" to="(500,80)"/>
+ <wire from="(500,730)" to="(530,730)"/>
+ <wire from="(500,80)" to="(530,80)"/>
+ <wire from="(500,800)" to="(530,800)"/>
+ <wire from="(510,100)" to="(510,130)"/>
+ <wire from="(510,100)" to="(520,100)"/>
+ <wire from="(510,130)" to="(560,130)"/>
+ <wire from="(510,1410)" to="(1110,1410)"/>
+ <wire from="(510,1410)" to="(510,1520)"/>
+ <wire from="(540,740)" to="(540,750)"/>
+ <wire from="(540,810)" to="(540,820)"/>
+ <wire from="(550,730)" to="(590,730)"/>
+ <wire from="(550,800)" to="(590,800)"/>
+ <wire from="(560,90)" to="(570,90)"/>
+ <wire from="(580,1000)" to="(580,1040)"/>
+ <wire from="(580,1040)" to="(640,1040)"/>
+ <wire from="(580,900)" to="(620,900)"/>
+ <wire from="(580,920)" to="(610,920)"/>
+ <wire from="(580,940)" to="(600,940)"/>
+ <wire from="(580,960)" to="(650,960)"/>
+ <wire from="(580,980)" to="(590,980)"/>
+ <wire from="(590,1010)" to="(590,1150)"/>
+ <wire from="(590,1010)" to="(650,1010)"/>
+ <wire from="(590,1270)" to="(600,1270)"/>
+ <wire from="(590,340)" to="(600,340)"/>
+ <wire from="(590,680)" to="(590,730)"/>
+ <wire from="(590,680)" to="(870,680)"/>
+ <wire from="(590,730)" to="(590,800)"/>
+ <wire from="(590,980)" to="(590,1010)"/>
+ <wire from="(60,760)" to="(70,760)"/>
+ <wire from="(600,1110)" to="(600,1190)"/>
+ <wire from="(600,1110)" to="(680,1110)"/>
+ <wire from="(600,1190)" to="(710,1190)"/>
+ <wire from="(600,300)" to="(600,340)"/>
+ <wire from="(600,300)" to="(620,300)"/>
+ <wire from="(600,340)" to="(630,340)"/>
+ <wire from="(600,940)" to="(600,1110)"/>
+ <wire from="(610,1080)" to="(610,1170)"/>
+ <wire from="(610,1080)" to="(680,1080)"/>
+ <wire from="(610,1170)" to="(710,1170)"/>
+ <wire from="(610,920)" to="(610,1080)"/>
+ <wire from="(620,1240)" to="(620,1250)"/>
+ <wire from="(620,880)" to="(620,900)"/>
+ <wire from="(620,900)" to="(870,900)"/>
+ <wire from="(640,1270)" to="(690,1270)"/>
+ <wire from="(640,350)" to="(640,360)"/>
+ <wire from="(650,340)" to="(830,340)"/>
+ <wire from="(690,1150)" to="(690,1270)"/>
+ <wire from="(690,1150)" to="(710,1150)"/>
+ <wire from="(70,750)" to="(70,760)"/>
+ <wire from="(70,750)" to="(80,750)"/>
+ <wire from="(70,790)" to="(80,790)"/>
+ <wire from="(790,1490)" to="(790,1510)"/>
+ <wire from="(790,1510)" to="(820,1510)"/>
+ <wire from="(80,340)" to="(390,340)"/>
+ <wire from="(80,340)" to="(80,390)"/>
+ <wire from="(80,390)" to="(370,390)"/>
+ <wire from="(80,390)" to="(80,730)"/>
+ <wire from="(80,770)" to="(80,790)"/>
+ <wire from="(830,320)" to="(830,340)"/>
+ <wire from="(830,340)" to="(870,340)"/>
+ <wire from="(860,1510)" to="(900,1510)"/>
+ <wire from="(870,340)" to="(870,530)"/>
+ <wire from="(870,340)" to="(890,340)"/>
+ <wire from="(870,530)" to="(1070,530)"/>
+ <wire from="(870,530)" to="(870,680)"/>
+ <wire from="(870,680)" to="(870,900)"/>
+ <wire from="(870,900)" to="(870,940)"/>
+ <wire from="(870,940)" to="(1080,940)"/>
+ <wire from="(890,340)" to="(920,340)"/>
+ <wire from="(900,1270)" to="(1260,1270)"/>
+ <wire from="(900,1270)" to="(900,1440)"/>
+ <wire from="(900,1440)" to="(910,1440)"/>
+ <wire from="(900,1460)" to="(900,1510)"/>
+ <wire from="(900,1460)" to="(910,1460)"/>
+ <wire from="(930,1150)" to="(970,1150)"/>
+ <wire from="(930,1170)" to="(940,1170)"/>
+ <wire from="(940,1070)" to="(940,1170)"/>
+ <wire from="(940,1170)" to="(1100,1170)"/>
+ <wire from="(940,1450)" to="(950,1450)"/>
+ <wire from="(970,1130)" to="(1030,1130)"/>
+ <wire from="(970,1130)" to="(970,1150)"/>
+ <wire from="(970,1150)" to="(1000,1150)"/>
+ <wire from="(970,1430)" to="(1020,1430)"/>
+ <wire from="(970,1430)" to="(970,1460)"/>
+ <wire from="(970,1470)" to="(980,1470)"/>
+ <wire from="(970,1480)" to="(990,1480)"/>
+ <wire from="(970,1490)" to="(1000,1490)"/>
+ <wire from="(980,1440)" to="(1020,1440)"/>
+ <wire from="(980,1440)" to="(980,1470)"/>
+ <wire from="(990,1460)" to="(1020,1460)"/>
+ <wire from="(990,1460)" to="(990,1480)"/>
+ <wire from="(990,630)" to="(1080,630)"/>
+ </circuit>
+ <circuit name="RegBank">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="RegBank"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1110,490)" name="NoConnect"/>
+ <comp lib="0" loc="(1150,600)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R1_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1150,650)" name="NoConnect"/>
+ <comp lib="0" loc="(1170,1020)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RD_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1170,1510)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1170,570)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="R1_OE"/>
+ </comp>
+ <comp lib="0" loc="(1170,970)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RB_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1180,1160)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RB_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1180,1210)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RD_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1190,760)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R2_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1210,1510)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1210,730)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="R2_OE"/>
+ </comp>
+ <comp lib="0" loc="(1240,990)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RC_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1250,1180)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RC_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1260,950)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1270,1140)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1280,940)" name="Ground">
+ <a name="facing" val="north"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1290,1130)" name="Ground">
+ <a name="facing" val="north"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1300,1070)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R1_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1310,1260)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R2_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(1330,1010)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="R1_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1340,1200)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="R2_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(320,1110)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="R3_S"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(320,590)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="R1_S"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(330,1020)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="R3_IE"/>
+ </comp>
+ <comp lib="0" loc="(330,500)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="R1_IE"/>
+ </comp>
+ <comp lib="0" loc="(330,850)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="R2_S"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(340,1130)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R3_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(340,320)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(340,610)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R1_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(340,760)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="south"/>
+ <a name="label" val="R2_IE"/>
+ </comp>
+ <comp lib="0" loc="(350,320)" name="Tunnel">
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(350,870)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="R2_S_RB"/>
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="0" loc="(410,1020)" name="NoConnect"/>
+ <comp lib="0" loc="(410,500)" name="NoConnect"/>
+ <comp lib="0" loc="(420,760)" name="NoConnect"/>
+ <comp lib="0" loc="(540,400)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(550,400)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(600,640)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(610,580)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(610,980)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(620,1380)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(630,920)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(640,1320)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(650,640)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(660,980)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(670,1380)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(680,790)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(690,1130)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(700,1520)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(700,550)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="RA_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(700,730)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(710,1070)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(720,1320)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="PA_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(720,1460)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(730,790)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(730,880)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="RC_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(740,1130)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(750,1520)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="RST_RB"/>
+ </comp>
+ <comp lib="0" loc="(770,550)" name="Tunnel">
+ <a name="label" val="B_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(770,680)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="RB_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(780,890)" name="Tunnel">
+ <a name="label" val="B_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(800,1460)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="PB_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(810,1020)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="RD_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(830,700)" name="Tunnel">
+ <a name="label" val="B_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(860,1040)" name="Tunnel">
+ <a name="label" val="B_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(930,360)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_IN"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(930,390)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="B_OUT"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(950,320)" name="Probe">
+ <a name="appearance" val="NewPins"/>
+ </comp>
+ <comp lib="0" loc="(980,360)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="MAIN_BUS_IN"/>
+ <a name="radix" val="16"/>
+ <a name="tristate" val="true"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(990,390)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="MAIN_BUS_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="tristate" val="true"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(560,620)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(570,1340)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(580,940)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(640,1090)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(640,770)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(650,1480)" name="OR Gate">
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(740,580)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(750,920)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(800,600)" name="OR Gate">
+ <a name="facing" val="west"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(800,730)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(810,940)" name="OR Gate">
+ <a name="facing" val="west"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(820,760)" name="OR Gate">
+ <a name="facing" val="west"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(830,1070)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(890,1090)" name="OR Gate">
+ <a name="facing" val="west"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="2" loc="(1150,570)" name="Decoder">
+ <a name="facing" val="west"/>
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="2" loc="(1190,730)" name="Decoder">
+ <a name="facing" val="west"/>
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="2" loc="(1320,1010)" name="Multiplexer">
+ <a name="select" val="3"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(1330,1200)" name="Multiplexer">
+ <a name="select" val="3"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(380,1100)" name="Decoder">
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="2" loc="(380,580)" name="Decoder">
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="2" loc="(390,840)" name="Decoder">
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="4" loc="(620,550)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="RA"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(630,890)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="RC"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(640,1290)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="PA"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(700,700)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="RB"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(710,1040)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="RD"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(720,1430)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="PB"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="8" loc="(1085,1475)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="for testbench purposes"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <wire from="(1040,530)" to="(1040,1080)"/>
+ <wire from="(1040,530)" to="(1130,530)"/>
+ <wire from="(1050,520)" to="(1050,930)"/>
+ <wire from="(1050,520)" to="(1130,520)"/>
+ <wire from="(1060,500)" to="(1060,590)"/>
+ <wire from="(1060,500)" to="(1130,500)"/>
+ <wire from="(1060,780)" to="(1060,950)"/>
+ <wire from="(1060,780)" to="(1090,780)"/>
+ <wire from="(1070,510)" to="(1070,750)"/>
+ <wire from="(1070,510)" to="(1130,510)"/>
+ <wire from="(1070,790)" to="(1070,1100)"/>
+ <wire from="(1070,790)" to="(1100,790)"/>
+ <wire from="(1080,610)" to="(1080,660)"/>
+ <wire from="(1080,660)" to="(1170,660)"/>
+ <wire from="(1080,670)" to="(1080,770)"/>
+ <wire from="(1080,670)" to="(1170,670)"/>
+ <wire from="(1090,680)" to="(1090,780)"/>
+ <wire from="(1090,680)" to="(1170,680)"/>
+ <wire from="(1100,690)" to="(1100,790)"/>
+ <wire from="(1100,690)" to="(1170,690)"/>
+ <wire from="(1110,490)" to="(1130,490)"/>
+ <wire from="(1150,570)" to="(1150,600)"/>
+ <wire from="(1150,650)" to="(1170,650)"/>
+ <wire from="(1160,570)" to="(1170,570)"/>
+ <wire from="(1170,1020)" to="(1190,1020)"/>
+ <wire from="(1170,1510)" to="(1210,1510)"/>
+ <wire from="(1170,970)" to="(1260,970)"/>
+ <wire from="(1180,1160)" to="(1270,1160)"/>
+ <wire from="(1180,1210)" to="(1200,1210)"/>
+ <wire from="(1190,1010)" to="(1190,1020)"/>
+ <wire from="(1190,1010)" to="(1280,1010)"/>
+ <wire from="(1190,730)" to="(1190,760)"/>
+ <wire from="(1200,1200)" to="(1200,1210)"/>
+ <wire from="(1200,1200)" to="(1290,1200)"/>
+ <wire from="(1200,730)" to="(1210,730)"/>
+ <wire from="(1240,990)" to="(1250,990)"/>
+ <wire from="(1250,1000)" to="(1280,1000)"/>
+ <wire from="(1250,1180)" to="(1260,1180)"/>
+ <wire from="(1250,990)" to="(1250,1000)"/>
+ <wire from="(1260,1180)" to="(1260,1190)"/>
+ <wire from="(1260,1190)" to="(1290,1190)"/>
+ <wire from="(1260,950)" to="(1270,950)"/>
+ <wire from="(1260,970)" to="(1260,990)"/>
+ <wire from="(1260,990)" to="(1280,990)"/>
+ <wire from="(1270,1140)" to="(1280,1140)"/>
+ <wire from="(1270,1160)" to="(1270,1180)"/>
+ <wire from="(1270,1180)" to="(1290,1180)"/>
+ <wire from="(1270,950)" to="(1270,980)"/>
+ <wire from="(1270,980)" to="(1280,980)"/>
+ <wire from="(1280,1140)" to="(1280,1170)"/>
+ <wire from="(1280,1170)" to="(1290,1170)"/>
+ <wire from="(1280,940)" to="(1280,970)"/>
+ <wire from="(1290,1130)" to="(1290,1160)"/>
+ <wire from="(1300,1050)" to="(1300,1070)"/>
+ <wire from="(1310,1240)" to="(1310,1260)"/>
+ <wire from="(1320,1010)" to="(1330,1010)"/>
+ <wire from="(1330,1200)" to="(1340,1200)"/>
+ <wire from="(320,1110)" to="(340,1110)"/>
+ <wire from="(320,590)" to="(340,590)"/>
+ <wire from="(330,1020)" to="(330,1100)"/>
+ <wire from="(330,1100)" to="(370,1100)"/>
+ <wire from="(330,500)" to="(330,580)"/>
+ <wire from="(330,580)" to="(370,580)"/>
+ <wire from="(330,850)" to="(350,850)"/>
+ <wire from="(340,1110)" to="(340,1130)"/>
+ <wire from="(340,1110)" to="(380,1110)"/>
+ <wire from="(340,320)" to="(350,320)"/>
+ <wire from="(340,590)" to="(340,610)"/>
+ <wire from="(340,590)" to="(380,590)"/>
+ <wire from="(340,760)" to="(340,840)"/>
+ <wire from="(340,840)" to="(380,840)"/>
+ <wire from="(350,850)" to="(350,870)"/>
+ <wire from="(350,850)" to="(390,850)"/>
+ <wire from="(380,1100)" to="(380,1110)"/>
+ <wire from="(380,580)" to="(380,590)"/>
+ <wire from="(390,840)" to="(390,850)"/>
+ <wire from="(400,1020)" to="(410,1020)"/>
+ <wire from="(400,1030)" to="(490,1030)"/>
+ <wire from="(400,1040)" to="(500,1040)"/>
+ <wire from="(400,1050)" to="(510,1050)"/>
+ <wire from="(400,1060)" to="(600,1060)"/>
+ <wire from="(400,1070)" to="(490,1070)"/>
+ <wire from="(400,1080)" to="(420,1080)"/>
+ <wire from="(400,500)" to="(410,500)"/>
+ <wire from="(400,510)" to="(520,510)"/>
+ <wire from="(400,520)" to="(510,520)"/>
+ <wire from="(400,530)" to="(500,530)"/>
+ <wire from="(400,540)" to="(480,540)"/>
+ <wire from="(400,550)" to="(460,550)"/>
+ <wire from="(400,560)" to="(440,560)"/>
+ <wire from="(410,760)" to="(420,760)"/>
+ <wire from="(410,770)" to="(520,770)"/>
+ <wire from="(410,780)" to="(540,780)"/>
+ <wire from="(410,790)" to="(490,790)"/>
+ <wire from="(410,800)" to="(470,800)"/>
+ <wire from="(410,810)" to="(450,810)"/>
+ <wire from="(410,820)" to="(430,820)"/>
+ <wire from="(420,1080)" to="(420,1490)"/>
+ <wire from="(420,1490)" to="(620,1490)"/>
+ <wire from="(430,1480)" to="(620,1480)"/>
+ <wire from="(430,820)" to="(430,1480)"/>
+ <wire from="(440,1470)" to="(620,1470)"/>
+ <wire from="(440,560)" to="(440,1470)"/>
+ <wire from="(450,1340)" to="(540,1340)"/>
+ <wire from="(450,810)" to="(450,1340)"/>
+ <wire from="(460,1330)" to="(540,1330)"/>
+ <wire from="(460,550)" to="(460,1330)"/>
+ <wire from="(470,1090)" to="(610,1090)"/>
+ <wire from="(470,800)" to="(470,1090)"/>
+ <wire from="(480,1080)" to="(610,1080)"/>
+ <wire from="(480,540)" to="(480,1080)"/>
+ <wire from="(490,1070)" to="(490,1350)"/>
+ <wire from="(490,1350)" to="(540,1350)"/>
+ <wire from="(490,790)" to="(490,940)"/>
+ <wire from="(490,940)" to="(550,940)"/>
+ <wire from="(490,950)" to="(490,1030)"/>
+ <wire from="(490,950)" to="(510,950)"/>
+ <wire from="(500,530)" to="(500,930)"/>
+ <wire from="(500,930)" to="(550,930)"/>
+ <wire from="(500,960)" to="(500,1040)"/>
+ <wire from="(500,960)" to="(520,960)"/>
+ <wire from="(510,520)" to="(510,670)"/>
+ <wire from="(510,670)" to="(600,670)"/>
+ <wire from="(510,790)" to="(510,950)"/>
+ <wire from="(510,790)" to="(530,790)"/>
+ <wire from="(510,970)" to="(510,1050)"/>
+ <wire from="(510,970)" to="(530,970)"/>
+ <wire from="(520,510)" to="(520,610)"/>
+ <wire from="(520,610)" to="(530,610)"/>
+ <wire from="(520,620)" to="(520,770)"/>
+ <wire from="(520,620)" to="(530,620)"/>
+ <wire from="(520,800)" to="(520,960)"/>
+ <wire from="(520,800)" to="(550,800)"/>
+ <wire from="(530,630)" to="(530,790)"/>
+ <wire from="(530,950)" to="(530,970)"/>
+ <wire from="(530,950)" to="(550,950)"/>
+ <wire from="(540,400)" to="(550,400)"/>
+ <wire from="(540,770)" to="(540,780)"/>
+ <wire from="(540,770)" to="(610,770)"/>
+ <wire from="(550,780)" to="(550,800)"/>
+ <wire from="(550,780)" to="(610,780)"/>
+ <wire from="(560,620)" to="(590,620)"/>
+ <wire from="(570,1340)" to="(640,1340)"/>
+ <wire from="(580,940)" to="(630,940)"/>
+ <wire from="(590,600)" to="(590,620)"/>
+ <wire from="(590,600)" to="(620,600)"/>
+ <wire from="(600,1060)" to="(600,1100)"/>
+ <wire from="(600,1100)" to="(610,1100)"/>
+ <wire from="(600,640)" to="(610,640)"/>
+ <wire from="(600,670)" to="(600,760)"/>
+ <wire from="(600,760)" to="(610,760)"/>
+ <wire from="(610,580)" to="(620,580)"/>
+ <wire from="(610,620)" to="(610,640)"/>
+ <wire from="(610,620)" to="(620,620)"/>
+ <wire from="(610,980)" to="(620,980)"/>
+ <wire from="(620,1380)" to="(630,1380)"/>
+ <wire from="(620,960)" to="(620,980)"/>
+ <wire from="(620,960)" to="(630,960)"/>
+ <wire from="(630,1360)" to="(630,1380)"/>
+ <wire from="(630,1360)" to="(640,1360)"/>
+ <wire from="(640,1090)" to="(710,1090)"/>
+ <wire from="(640,770)" to="(670,770)"/>
+ <wire from="(650,1480)" to="(720,1480)"/>
+ <wire from="(670,750)" to="(670,770)"/>
+ <wire from="(670,750)" to="(700,750)"/>
+ <wire from="(680,580)" to="(700,580)"/>
+ <wire from="(680,790)" to="(690,790)"/>
+ <wire from="(690,1130)" to="(700,1130)"/>
+ <wire from="(690,770)" to="(690,790)"/>
+ <wire from="(690,770)" to="(700,770)"/>
+ <wire from="(690,920)" to="(710,920)"/>
+ <wire from="(700,1110)" to="(700,1130)"/>
+ <wire from="(700,1110)" to="(710,1110)"/>
+ <wire from="(700,1320)" to="(720,1320)"/>
+ <wire from="(700,1520)" to="(710,1520)"/>
+ <wire from="(700,550)" to="(700,580)"/>
+ <wire from="(700,580)" to="(720,580)"/>
+ <wire from="(710,1500)" to="(710,1520)"/>
+ <wire from="(710,1500)" to="(720,1500)"/>
+ <wire from="(710,890)" to="(710,920)"/>
+ <wire from="(710,890)" to="(730,890)"/>
+ <wire from="(710,920)" to="(730,920)"/>
+ <wire from="(730,590)" to="(730,600)"/>
+ <wire from="(730,600)" to="(800,600)"/>
+ <wire from="(730,880)" to="(730,890)"/>
+ <wire from="(740,580)" to="(750,580)"/>
+ <wire from="(740,930)" to="(740,940)"/>
+ <wire from="(740,940)" to="(810,940)"/>
+ <wire from="(750,550)" to="(750,580)"/>
+ <wire from="(750,550)" to="(770,550)"/>
+ <wire from="(750,920)" to="(760,920)"/>
+ <wire from="(760,730)" to="(770,730)"/>
+ <wire from="(760,890)" to="(760,920)"/>
+ <wire from="(760,890)" to="(780,890)"/>
+ <wire from="(770,1070)" to="(790,1070)"/>
+ <wire from="(770,680)" to="(770,730)"/>
+ <wire from="(770,730)" to="(780,730)"/>
+ <wire from="(780,1460)" to="(800,1460)"/>
+ <wire from="(790,1030)" to="(790,1070)"/>
+ <wire from="(790,1030)" to="(810,1030)"/>
+ <wire from="(790,1070)" to="(810,1070)"/>
+ <wire from="(790,740)" to="(790,760)"/>
+ <wire from="(790,760)" to="(820,760)"/>
+ <wire from="(800,730)" to="(810,730)"/>
+ <wire from="(810,1020)" to="(810,1030)"/>
+ <wire from="(810,700)" to="(810,730)"/>
+ <wire from="(810,700)" to="(830,700)"/>
+ <wire from="(820,1080)" to="(820,1090)"/>
+ <wire from="(820,1090)" to="(890,1090)"/>
+ <wire from="(830,1070)" to="(840,1070)"/>
+ <wire from="(830,590)" to="(1060,590)"/>
+ <wire from="(830,610)" to="(1080,610)"/>
+ <wire from="(840,1040)" to="(840,1070)"/>
+ <wire from="(840,1040)" to="(860,1040)"/>
+ <wire from="(840,930)" to="(1050,930)"/>
+ <wire from="(840,950)" to="(1060,950)"/>
+ <wire from="(850,750)" to="(1070,750)"/>
+ <wire from="(850,770)" to="(1080,770)"/>
+ <wire from="(920,1080)" to="(1040,1080)"/>
+ <wire from="(920,1100)" to="(1070,1100)"/>
+ <wire from="(930,360)" to="(970,360)"/>
+ <wire from="(930,390)" to="(990,390)"/>
+ <wire from="(950,320)" to="(970,320)"/>
+ <wire from="(970,320)" to="(970,360)"/>
+ <wire from="(970,360)" to="(980,360)"/>
+ </circuit>
+ <circuit name="ALU">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="ALU"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(100,450)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="S"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(100,880)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="IN_L"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(100,930)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="IN_R"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(1020,890)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="SIGN_FL"/>
+ </comp>
+ <comp lib="0" loc="(1040,1010)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="SIGN_FL"/>
+ </comp>
+ <comp lib="0" loc="(1040,980)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="OVR_FL"/>
+ </comp>
+ <comp lib="0" loc="(1080,960)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="FLAGS"/>
+ <a name="output" val="true"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(1080,960)" name="Splitter">
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(110,450)" name="Splitter">
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(1100,840)" name="Tunnel">
+ <a name="label" val="ZERO_FL"/>
+ </comp>
+ <comp lib="0" loc="(1240,670)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RESULT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(130,570)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="SHIFT_ALU_OE"/>
+ </comp>
+ <comp lib="0" loc="(1310,750)" name="Tunnel">
+ <a name="label" val="SHIFT_ALU_OE"/>
+ </comp>
+ <comp lib="0" loc="(150,440)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(230,520)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="3"/>
+ <a name="incoming" val="3"/>
+ </comp>
+ <comp lib="0" loc="(240,1320)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="2"/>
+ <a name="bit11" val="2"/>
+ <a name="bit12" val="3"/>
+ <a name="bit13" val="3"/>
+ <a name="bit14" val="3"/>
+ <a name="bit15" val="3"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="1"/>
+ <a name="bit5" val="1"/>
+ <a name="bit6" val="1"/>
+ <a name="bit7" val="1"/>
+ <a name="bit8" val="2"/>
+ <a name="bit9" val="2"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(260,1340)" name="NoConnect">
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(260,1350)" name="NoConnect">
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(260,1360)" name="NoConnect">
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(270,880)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="2"/>
+ <a name="bit11" val="2"/>
+ <a name="bit12" val="3"/>
+ <a name="bit13" val="3"/>
+ <a name="bit14" val="3"/>
+ <a name="bit15" val="3"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="1"/>
+ <a name="bit5" val="1"/>
+ <a name="bit6" val="1"/>
+ <a name="bit7" val="1"/>
+ <a name="bit8" val="2"/>
+ <a name="bit9" val="2"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(270,930)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="2"/>
+ <a name="bit11" val="2"/>
+ <a name="bit12" val="3"/>
+ <a name="bit13" val="3"/>
+ <a name="bit14" val="3"/>
+ <a name="bit15" val="3"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="1"/>
+ <a name="bit5" val="1"/>
+ <a name="bit6" val="1"/>
+ <a name="bit7" val="1"/>
+ <a name="bit8" val="2"/>
+ <a name="bit9" val="2"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(450,1010)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(450,610)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(480,1000)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(480,600)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(570,1070)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(570,670)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(580,1070)" name="Probe">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(580,670)" name="Probe">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(680,1020)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(680,610)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(710,1010)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(710,600)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ <a name="spacing" val="2"/>
+ </comp>
+ <comp lib="0" loc="(800,1080)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(800,670)" name="Probe">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(800,670)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(810,1080)" name="Probe">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(890,1090)" name="Tunnel">
+ <a name="facing" val="south"/>
+ <a name="label" val="OVR_FL"/>
+ </comp>
+ <comp lib="0" loc="(920,1110)" name="Tunnel">
+ <a name="label" val="CARRY_FL"/>
+ </comp>
+ <comp lib="0" loc="(920,610)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="2"/>
+ <a name="bit11" val="2"/>
+ <a name="bit12" val="3"/>
+ <a name="bit13" val="3"/>
+ <a name="bit14" val="3"/>
+ <a name="bit15" val="3"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="1"/>
+ <a name="bit5" val="1"/>
+ <a name="bit6" val="1"/>
+ <a name="bit7" val="1"/>
+ <a name="bit8" val="2"/>
+ <a name="bit9" val="2"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(950,680)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="bit1" val="0"/>
+ <a name="bit10" val="1"/>
+ <a name="bit11" val="1"/>
+ <a name="bit12" val="1"/>
+ <a name="bit13" val="1"/>
+ <a name="bit14" val="1"/>
+ <a name="bit15" val="1"/>
+ <a name="bit2" val="0"/>
+ <a name="bit3" val="0"/>
+ <a name="bit4" val="0"/>
+ <a name="bit5" val="0"/>
+ <a name="bit6" val="0"/>
+ <a name="bit7" val="0"/>
+ <a name="bit8" val="1"/>
+ <a name="bit9" val="1"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(950,990)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="ZERO_FL"/>
+ </comp>
+ <comp lib="0" loc="(960,960)" name="Tunnel">
+ <a name="facing" val="east"/>
+ <a name="label" val="CARRY_FL"/>
+ </comp>
+ <comp lib="0" loc="(990,690)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="8"/>
+ <a name="incoming" val="8"/>
+ </comp>
+ <comp lib="0" loc="(990,780)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="8"/>
+ <a name="incoming" val="8"/>
+ </comp>
+ <comp lib="1" loc="(1080,780)" name="AND Gate">
+ <a name="inputs" val="16"/>
+ <a name="label" val="ZERO"/>
+ <a name="negate0" val="true"/>
+ <a name="negate1" val="true"/>
+ <a name="negate10" val="true"/>
+ <a name="negate11" val="true"/>
+ <a name="negate12" val="true"/>
+ <a name="negate13" val="true"/>
+ <a name="negate14" val="true"/>
+ <a name="negate15" val="true"/>
+ <a name="negate2" val="true"/>
+ <a name="negate3" val="true"/>
+ <a name="negate4" val="true"/>
+ <a name="negate5" val="true"/>
+ <a name="negate6" val="true"/>
+ <a name="negate7" val="true"/>
+ <a name="negate8" val="true"/>
+ <a name="negate9" val="true"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1190,680)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ </comp>
+ <comp lib="1" loc="(1200,670)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(1230,700)" name="Controlled Buffer">
+ <a name="facing" val="north"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(360,540)" name="AND Gate">
+ <a name="inputs" val="3"/>
+ <a name="negate1" val="true"/>
+ <a name="negate2" val="true"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(360,580)" name="AND Gate">
+ <a name="inputs" val="3"/>
+ <a name="negate0" val="true"/>
+ <a name="negate2" val="true"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(410,550)" name="OR Gate">
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(720,1220)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(720,1340)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(720,1470)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(170,530)" name="Demultiplexer">
+ <a name="width" val="3"/>
+ </comp>
+ <comp lib="2" loc="(230,1240)" name="Demultiplexer">
+ <a name="select" val="3"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(250,1470)" name="Decoder">
+ <a name="enable" val="false"/>
+ <a name="select" val="3"/>
+ </comp>
+ <comp lib="8" loc="(170,465)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="If S = 0XXX, use 74x382 ALU"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(230,1175)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="If S = 1XXX, do bitshift stuff"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(305,495)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="Carry needs to be forced to 1 when subtracting"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(440,1175)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="Bit shifts are implemented separately here"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp loc="(540,1030)" name="IC_74382"/>
+ <comp loc="(540,630)" name="IC_74382"/>
+ <comp loc="(670,1220)" name="BitShiftRightLogical"/>
+ <comp loc="(670,1340)" name="BitShiftRightArithmetic"/>
+ <comp loc="(670,1470)" name="BitShiftLeftLogical"/>
+ <comp loc="(770,1040)" name="IC_74382"/>
+ <comp loc="(770,630)" name="IC_74382"/>
+ <wire from="(100,450)" to="(110,450)"/>
+ <wire from="(100,880)" to="(200,880)"/>
+ <wire from="(100,930)" to="(190,930)"/>
+ <wire from="(1010,700)" to="(1040,700)"/>
+ <wire from="(1010,710)" to="(1040,710)"/>
+ <wire from="(1010,720)" to="(1040,720)"/>
+ <wire from="(1010,730)" to="(1040,730)"/>
+ <wire from="(1010,740)" to="(1040,740)"/>
+ <wire from="(1010,750)" to="(1040,750)"/>
+ <wire from="(1010,760)" to="(1040,760)"/>
+ <wire from="(1010,770)" to="(1040,770)"/>
+ <wire from="(1010,790)" to="(1040,790)"/>
+ <wire from="(1010,800)" to="(1040,800)"/>
+ <wire from="(1010,810)" to="(1040,810)"/>
+ <wire from="(1010,820)" to="(1040,820)"/>
+ <wire from="(1010,830)" to="(1040,830)"/>
+ <wire from="(1010,840)" to="(1040,840)"/>
+ <wire from="(1010,850)" to="(1040,850)"/>
+ <wire from="(1010,860)" to="(1020,860)"/>
+ <wire from="(1020,860)" to="(1020,890)"/>
+ <wire from="(1020,860)" to="(1040,860)"/>
+ <wire from="(1040,1010)" to="(1060,1010)"/>
+ <wire from="(1040,980)" to="(1060,980)"/>
+ <wire from="(1050,960)" to="(1050,970)"/>
+ <wire from="(1050,970)" to="(1060,970)"/>
+ <wire from="(1060,1000)" to="(1060,1010)"/>
+ <wire from="(1080,780)" to="(1090,780)"/>
+ <wire from="(1090,780)" to="(1090,840)"/>
+ <wire from="(1090,840)" to="(1100,840)"/>
+ <wire from="(1190,710)" to="(1190,750)"/>
+ <wire from="(1190,750)" to="(1270,750)"/>
+ <wire from="(1200,670)" to="(1230,670)"/>
+ <wire from="(1230,670)" to="(1230,700)"/>
+ <wire from="(1230,670)" to="(1240,670)"/>
+ <wire from="(1230,720)" to="(1230,1220)"/>
+ <wire from="(1240,710)" to="(1270,710)"/>
+ <wire from="(1270,710)" to="(1270,750)"/>
+ <wire from="(1270,750)" to="(1310,750)"/>
+ <wire from="(130,440)" to="(130,560)"/>
+ <wire from="(130,560)" to="(130,570)"/>
+ <wire from="(130,560)" to="(190,560)"/>
+ <wire from="(150,440)" to="(150,530)"/>
+ <wire from="(150,530)" to="(170,530)"/>
+ <wire from="(190,1320)" to="(240,1320)"/>
+ <wire from="(190,550)" to="(190,560)"/>
+ <wire from="(190,930)" to="(190,1320)"/>
+ <wire from="(190,930)" to="(270,930)"/>
+ <wire from="(200,1240)" to="(230,1240)"/>
+ <wire from="(200,520)" to="(230,520)"/>
+ <wire from="(200,540)" to="(210,540)"/>
+ <wire from="(200,880)" to="(200,1240)"/>
+ <wire from="(200,880)" to="(270,880)"/>
+ <wire from="(210,1290)" to="(210,1480)"/>
+ <wire from="(210,1290)" to="(250,1290)"/>
+ <wire from="(210,1480)" to="(250,1480)"/>
+ <wire from="(210,540)" to="(210,1290)"/>
+ <wire from="(250,1280)" to="(250,1290)"/>
+ <wire from="(250,1470)" to="(250,1480)"/>
+ <wire from="(250,530)" to="(280,530)"/>
+ <wire from="(250,540)" to="(290,540)"/>
+ <wire from="(250,550)" to="(300,550)"/>
+ <wire from="(260,1330)" to="(390,1330)"/>
+ <wire from="(270,1200)" to="(390,1200)"/>
+ <wire from="(270,1210)" to="(380,1210)"/>
+ <wire from="(270,1220)" to="(370,1220)"/>
+ <wire from="(270,1390)" to="(400,1390)"/>
+ <wire from="(270,1400)" to="(710,1400)"/>
+ <wire from="(270,1410)" to="(360,1410)"/>
+ <wire from="(280,530)" to="(280,570)"/>
+ <wire from="(280,530)" to="(330,530)"/>
+ <wire from="(280,570)" to="(280,770)"/>
+ <wire from="(280,570)" to="(320,570)"/>
+ <wire from="(280,770)" to="(340,770)"/>
+ <wire from="(290,540)" to="(290,580)"/>
+ <wire from="(290,540)" to="(320,540)"/>
+ <wire from="(290,580)" to="(290,760)"/>
+ <wire from="(290,580)" to="(330,580)"/>
+ <wire from="(290,760)" to="(330,760)"/>
+ <wire from="(290,890)" to="(390,890)"/>
+ <wire from="(290,900)" to="(640,900)"/>
+ <wire from="(290,910)" to="(380,910)"/>
+ <wire from="(290,920)" to="(590,920)"/>
+ <wire from="(290,940)" to="(400,940)"/>
+ <wire from="(290,950)" to="(630,950)"/>
+ <wire from="(290,960)" to="(370,960)"/>
+ <wire from="(290,970)" to="(580,970)"/>
+ <wire from="(300,550)" to="(300,590)"/>
+ <wire from="(300,550)" to="(320,550)"/>
+ <wire from="(300,590)" to="(300,750)"/>
+ <wire from="(300,590)" to="(320,590)"/>
+ <wire from="(300,750)" to="(320,750)"/>
+ <wire from="(320,1110)" to="(510,1110)"/>
+ <wire from="(320,750)" to="(320,1110)"/>
+ <wire from="(320,750)" to="(500,750)"/>
+ <wire from="(330,1100)" to="(510,1100)"/>
+ <wire from="(330,760)" to="(330,1100)"/>
+ <wire from="(330,760)" to="(490,760)"/>
+ <wire from="(340,1090)" to="(510,1090)"/>
+ <wire from="(340,770)" to="(340,1090)"/>
+ <wire from="(340,770)" to="(480,770)"/>
+ <wire from="(360,1410)" to="(360,1530)"/>
+ <wire from="(360,1530)" to="(710,1530)"/>
+ <wire from="(360,540)" to="(380,540)"/>
+ <wire from="(360,580)" to="(370,580)"/>
+ <wire from="(370,1000)" to="(480,1000)"/>
+ <wire from="(370,1220)" to="(370,1470)"/>
+ <wire from="(370,1470)" to="(450,1470)"/>
+ <wire from="(370,560)" to="(370,580)"/>
+ <wire from="(370,560)" to="(380,560)"/>
+ <wire from="(370,960)" to="(370,1000)"/>
+ <wire from="(380,1010)" to="(450,1010)"/>
+ <wire from="(380,1210)" to="(380,1340)"/>
+ <wire from="(380,1340)" to="(450,1340)"/>
+ <wire from="(380,910)" to="(380,1010)"/>
+ <wire from="(390,1200)" to="(390,1220)"/>
+ <wire from="(390,1220)" to="(450,1220)"/>
+ <wire from="(390,1240)" to="(390,1330)"/>
+ <wire from="(390,1240)" to="(450,1240)"/>
+ <wire from="(390,1330)" to="(390,1360)"/>
+ <wire from="(390,1360)" to="(390,1490)"/>
+ <wire from="(390,1360)" to="(450,1360)"/>
+ <wire from="(390,1490)" to="(450,1490)"/>
+ <wire from="(390,610)" to="(390,890)"/>
+ <wire from="(390,610)" to="(450,610)"/>
+ <wire from="(400,1280)" to="(400,1390)"/>
+ <wire from="(400,1280)" to="(710,1280)"/>
+ <wire from="(400,600)" to="(400,940)"/>
+ <wire from="(400,600)" to="(480,600)"/>
+ <wire from="(410,550)" to="(500,550)"/>
+ <wire from="(470,1020)" to="(510,1020)"/>
+ <wire from="(470,1040)" to="(510,1040)"/>
+ <wire from="(470,1060)" to="(510,1060)"/>
+ <wire from="(470,1080)" to="(510,1080)"/>
+ <wire from="(470,620)" to="(510,620)"/>
+ <wire from="(470,640)" to="(510,640)"/>
+ <wire from="(470,660)" to="(510,660)"/>
+ <wire from="(470,680)" to="(510,680)"/>
+ <wire from="(480,690)" to="(480,770)"/>
+ <wire from="(480,690)" to="(510,690)"/>
+ <wire from="(480,770)" to="(670,770)"/>
+ <wire from="(490,700)" to="(490,760)"/>
+ <wire from="(490,700)" to="(510,700)"/>
+ <wire from="(490,760)" to="(660,760)"/>
+ <wire from="(500,1000)" to="(510,1000)"/>
+ <wire from="(500,1010)" to="(510,1010)"/>
+ <wire from="(500,1030)" to="(510,1030)"/>
+ <wire from="(500,1050)" to="(510,1050)"/>
+ <wire from="(500,1070)" to="(510,1070)"/>
+ <wire from="(500,550)" to="(500,600)"/>
+ <wire from="(500,600)" to="(510,600)"/>
+ <wire from="(500,610)" to="(510,610)"/>
+ <wire from="(500,630)" to="(510,630)"/>
+ <wire from="(500,650)" to="(510,650)"/>
+ <wire from="(500,670)" to="(510,670)"/>
+ <wire from="(500,710)" to="(500,750)"/>
+ <wire from="(500,710)" to="(510,710)"/>
+ <wire from="(500,750)" to="(650,750)"/>
+ <wire from="(500,980)" to="(500,1000)"/>
+ <wire from="(500,980)" to="(780,980)"/>
+ <wire from="(540,1030)" to="(550,1030)"/>
+ <wire from="(540,1040)" to="(550,1040)"/>
+ <wire from="(540,1050)" to="(550,1050)"/>
+ <wire from="(540,1060)" to="(550,1060)"/>
+ <wire from="(540,1080)" to="(560,1080)"/>
+ <wire from="(540,630)" to="(550,630)"/>
+ <wire from="(540,640)" to="(550,640)"/>
+ <wire from="(540,650)" to="(550,650)"/>
+ <wire from="(540,660)" to="(550,660)"/>
+ <wire from="(540,680)" to="(560,680)"/>
+ <wire from="(560,1080)" to="(560,1100)"/>
+ <wire from="(560,1100)" to="(640,1100)"/>
+ <wire from="(560,680)" to="(560,700)"/>
+ <wire from="(560,700)" to="(620,700)"/>
+ <wire from="(570,1070)" to="(580,1070)"/>
+ <wire from="(570,670)" to="(580,670)"/>
+ <wire from="(580,1010)" to="(710,1010)"/>
+ <wire from="(580,1030)" to="(580,1070)"/>
+ <wire from="(580,1030)" to="(610,1030)"/>
+ <wire from="(580,570)" to="(580,670)"/>
+ <wire from="(580,570)" to="(900,570)"/>
+ <wire from="(580,970)" to="(580,1010)"/>
+ <wire from="(590,1020)" to="(680,1020)"/>
+ <wire from="(590,920)" to="(590,1020)"/>
+ <wire from="(610,960)" to="(610,1030)"/>
+ <wire from="(610,960)" to="(800,960)"/>
+ <wire from="(620,590)" to="(620,700)"/>
+ <wire from="(620,590)" to="(730,590)"/>
+ <wire from="(630,600)" to="(630,950)"/>
+ <wire from="(630,600)" to="(710,600)"/>
+ <wire from="(640,1000)" to="(640,1100)"/>
+ <wire from="(640,1000)" to="(730,1000)"/>
+ <wire from="(640,610)" to="(640,900)"/>
+ <wire from="(640,610)" to="(680,610)"/>
+ <wire from="(650,1120)" to="(740,1120)"/>
+ <wire from="(650,750)" to="(650,1120)"/>
+ <wire from="(650,750)" to="(730,750)"/>
+ <wire from="(660,1110)" to="(740,1110)"/>
+ <wire from="(660,760)" to="(660,1110)"/>
+ <wire from="(660,760)" to="(720,760)"/>
+ <wire from="(670,1100)" to="(740,1100)"/>
+ <wire from="(670,1220)" to="(700,1220)"/>
+ <wire from="(670,1340)" to="(700,1340)"/>
+ <wire from="(670,1470)" to="(700,1470)"/>
+ <wire from="(670,770)" to="(670,1100)"/>
+ <wire from="(670,770)" to="(710,770)"/>
+ <wire from="(700,1030)" to="(740,1030)"/>
+ <wire from="(700,1050)" to="(740,1050)"/>
+ <wire from="(700,1070)" to="(740,1070)"/>
+ <wire from="(700,1090)" to="(740,1090)"/>
+ <wire from="(700,620)" to="(740,620)"/>
+ <wire from="(700,640)" to="(740,640)"/>
+ <wire from="(700,660)" to="(740,660)"/>
+ <wire from="(700,680)" to="(740,680)"/>
+ <wire from="(710,1230)" to="(710,1280)"/>
+ <wire from="(710,1350)" to="(710,1400)"/>
+ <wire from="(710,1480)" to="(710,1530)"/>
+ <wire from="(710,690)" to="(710,770)"/>
+ <wire from="(710,690)" to="(740,690)"/>
+ <wire from="(720,1220)" to="(740,1220)"/>
+ <wire from="(720,1340)" to="(740,1340)"/>
+ <wire from="(720,1470)" to="(740,1470)"/>
+ <wire from="(720,700)" to="(720,760)"/>
+ <wire from="(720,700)" to="(740,700)"/>
+ <wire from="(730,1000)" to="(730,1010)"/>
+ <wire from="(730,1010)" to="(740,1010)"/>
+ <wire from="(730,1020)" to="(740,1020)"/>
+ <wire from="(730,1040)" to="(740,1040)"/>
+ <wire from="(730,1060)" to="(740,1060)"/>
+ <wire from="(730,1080)" to="(740,1080)"/>
+ <wire from="(730,590)" to="(730,600)"/>
+ <wire from="(730,600)" to="(740,600)"/>
+ <wire from="(730,610)" to="(740,610)"/>
+ <wire from="(730,630)" to="(740,630)"/>
+ <wire from="(730,650)" to="(740,650)"/>
+ <wire from="(730,670)" to="(740,670)"/>
+ <wire from="(730,710)" to="(730,750)"/>
+ <wire from="(730,710)" to="(740,710)"/>
+ <wire from="(740,1220)" to="(1230,1220)"/>
+ <wire from="(740,1220)" to="(740,1340)"/>
+ <wire from="(740,1340)" to="(740,1470)"/>
+ <wire from="(770,1040)" to="(780,1040)"/>
+ <wire from="(770,1050)" to="(780,1050)"/>
+ <wire from="(770,1060)" to="(780,1060)"/>
+ <wire from="(770,1070)" to="(780,1070)"/>
+ <wire from="(770,1080)" to="(790,1080)"/>
+ <wire from="(770,1090)" to="(780,1090)"/>
+ <wire from="(770,630)" to="(780,630)"/>
+ <wire from="(770,640)" to="(780,640)"/>
+ <wire from="(770,650)" to="(780,650)"/>
+ <wire from="(770,660)" to="(780,660)"/>
+ <wire from="(770,680)" to="(780,680)"/>
+ <wire from="(780,1090)" to="(780,1110)"/>
+ <wire from="(780,1110)" to="(920,1110)"/>
+ <wire from="(780,680)" to="(780,980)"/>
+ <wire from="(790,1080)" to="(790,1100)"/>
+ <wire from="(790,1100)" to="(890,1100)"/>
+ <wire from="(800,1080)" to="(810,1080)"/>
+ <wire from="(800,580)" to="(800,670)"/>
+ <wire from="(800,580)" to="(900,580)"/>
+ <wire from="(800,690)" to="(800,960)"/>
+ <wire from="(800,690)" to="(860,690)"/>
+ <wire from="(810,700)" to="(810,1080)"/>
+ <wire from="(810,700)" to="(870,700)"/>
+ <wire from="(860,590)" to="(860,690)"/>
+ <wire from="(860,590)" to="(900,590)"/>
+ <wire from="(870,600)" to="(870,700)"/>
+ <wire from="(870,600)" to="(900,600)"/>
+ <wire from="(890,1090)" to="(890,1100)"/>
+ <wire from="(920,610)" to="(950,610)"/>
+ <wire from="(950,610)" to="(950,670)"/>
+ <wire from="(950,670)" to="(1180,670)"/>
+ <wire from="(950,670)" to="(950,680)"/>
+ <wire from="(950,990)" to="(1060,990)"/>
+ <wire from="(960,960)" to="(1050,960)"/>
+ <wire from="(970,690)" to="(990,690)"/>
+ <wire from="(970,700)" to="(970,780)"/>
+ <wire from="(970,780)" to="(990,780)"/>
+ </circuit>
+ <circuit name="BitShiftRightLogical">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="BitShiftRightLogical"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1000,670)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RESULT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(260,410)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="DATA"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="SHIFT_AMT"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Splitter">
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(350,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(370,580)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,590)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,600)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,610)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,620)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,630)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,640)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,650)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(390,660)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(520,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(540,580)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,590)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,600)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,610)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(560,620)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(680,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(700,580)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(700,590)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(720,600)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(850,400)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(870,570)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(890,580)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="2" loc="(470,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(650,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(810,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(980,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="8" loc="(340,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 8"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(510,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 4"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(670,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 2"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(840,380)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 1"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <wire from="(260,410)" to="(350,410)"/>
+ <wire from="(300,720)" to="(960,720)"/>
+ <wire from="(300,730)" to="(790,730)"/>
+ <wire from="(300,740)" to="(630,740)"/>
+ <wire from="(300,750)" to="(450,750)"/>
+ <wire from="(350,410)" to="(420,410)"/>
+ <wire from="(390,660)" to="(390,680)"/>
+ <wire from="(390,680)" to="(440,680)"/>
+ <wire from="(420,410)" to="(420,660)"/>
+ <wire from="(420,660)" to="(440,660)"/>
+ <wire from="(450,690)" to="(450,750)"/>
+ <wire from="(470,670)" to="(500,670)"/>
+ <wire from="(500,410)" to="(500,670)"/>
+ <wire from="(500,410)" to="(520,410)"/>
+ <wire from="(520,410)" to="(600,410)"/>
+ <wire from="(560,620)" to="(560,680)"/>
+ <wire from="(560,680)" to="(620,680)"/>
+ <wire from="(600,410)" to="(600,660)"/>
+ <wire from="(600,660)" to="(620,660)"/>
+ <wire from="(630,690)" to="(630,740)"/>
+ <wire from="(650,670)" to="(670,670)"/>
+ <wire from="(670,410)" to="(670,670)"/>
+ <wire from="(670,410)" to="(680,410)"/>
+ <wire from="(670,670)" to="(670,680)"/>
+ <wire from="(680,410)" to="(760,410)"/>
+ <wire from="(720,600)" to="(720,680)"/>
+ <wire from="(720,680)" to="(780,680)"/>
+ <wire from="(760,410)" to="(760,660)"/>
+ <wire from="(760,660)" to="(780,660)"/>
+ <wire from="(790,690)" to="(790,730)"/>
+ <wire from="(810,670)" to="(840,670)"/>
+ <wire from="(840,400)" to="(840,670)"/>
+ <wire from="(840,400)" to="(850,400)"/>
+ <wire from="(840,670)" to="(840,680)"/>
+ <wire from="(850,400)" to="(920,400)"/>
+ <wire from="(890,580)" to="(890,680)"/>
+ <wire from="(890,680)" to="(950,680)"/>
+ <wire from="(920,400)" to="(920,660)"/>
+ <wire from="(920,660)" to="(950,660)"/>
+ <wire from="(960,690)" to="(960,720)"/>
+ <wire from="(980,670)" to="(1000,670)"/>
+ </circuit>
+ <circuit name="BitShiftLeftLogical">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="BitShiftLeftLogical"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1000,670)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RESULT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(260,410)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="DATA"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="SHIFT_AMT"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Splitter">
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(350,500)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(370,430)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,440)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,450)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,460)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,470)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,480)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,490)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(370,500)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(390,590)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(520,460)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(540,430)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,440)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,450)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(540,460)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(560,590)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(680,440)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(700,430)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(700,440)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(720,590)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(850,420)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(870,420)" name="Ground">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="0" loc="(890,580)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="2" loc="(470,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(650,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(810,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(980,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="8" loc="(340,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 8"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(510,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 4"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(670,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 2"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(840,380)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 1"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <wire from="(260,410)" to="(350,410)"/>
+ <wire from="(300,720)" to="(960,720)"/>
+ <wire from="(300,730)" to="(790,730)"/>
+ <wire from="(300,740)" to="(630,740)"/>
+ <wire from="(300,750)" to="(450,750)"/>
+ <wire from="(350,410)" to="(350,500)"/>
+ <wire from="(350,410)" to="(420,410)"/>
+ <wire from="(390,590)" to="(390,680)"/>
+ <wire from="(390,680)" to="(440,680)"/>
+ <wire from="(420,410)" to="(420,660)"/>
+ <wire from="(420,660)" to="(440,660)"/>
+ <wire from="(450,690)" to="(450,750)"/>
+ <wire from="(470,670)" to="(500,670)"/>
+ <wire from="(500,410)" to="(500,670)"/>
+ <wire from="(500,410)" to="(520,410)"/>
+ <wire from="(520,410)" to="(520,460)"/>
+ <wire from="(520,410)" to="(600,410)"/>
+ <wire from="(560,590)" to="(560,680)"/>
+ <wire from="(560,680)" to="(620,680)"/>
+ <wire from="(600,410)" to="(600,660)"/>
+ <wire from="(600,660)" to="(620,660)"/>
+ <wire from="(630,690)" to="(630,740)"/>
+ <wire from="(650,670)" to="(670,670)"/>
+ <wire from="(670,410)" to="(670,670)"/>
+ <wire from="(670,410)" to="(680,410)"/>
+ <wire from="(670,670)" to="(670,680)"/>
+ <wire from="(680,410)" to="(680,440)"/>
+ <wire from="(680,410)" to="(760,410)"/>
+ <wire from="(720,590)" to="(720,680)"/>
+ <wire from="(720,680)" to="(780,680)"/>
+ <wire from="(760,410)" to="(760,660)"/>
+ <wire from="(760,660)" to="(780,660)"/>
+ <wire from="(790,690)" to="(790,730)"/>
+ <wire from="(810,670)" to="(840,670)"/>
+ <wire from="(840,400)" to="(840,670)"/>
+ <wire from="(840,400)" to="(850,400)"/>
+ <wire from="(840,670)" to="(840,680)"/>
+ <wire from="(850,400)" to="(850,420)"/>
+ <wire from="(850,400)" to="(920,400)"/>
+ <wire from="(890,580)" to="(890,680)"/>
+ <wire from="(890,680)" to="(950,680)"/>
+ <wire from="(920,400)" to="(920,660)"/>
+ <wire from="(920,660)" to="(950,660)"/>
+ <wire from="(960,690)" to="(960,720)"/>
+ <wire from="(980,670)" to="(1000,670)"/>
+ </circuit>
+ <circuit name="BitShiftRightArithmetic">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="BitShiftRightArithmetic"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1000,670)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="RESULT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(260,410)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="DATA"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="SHIFT_AMT"/>
+ <a name="width" val="4"/>
+ </comp>
+ <comp lib="0" loc="(280,760)" name="Splitter">
+ <a name="fanout" val="4"/>
+ <a name="incoming" val="4"/>
+ </comp>
+ <comp lib="0" loc="(350,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(390,660)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(520,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(560,620)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(680,410)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(720,600)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(850,400)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(890,580)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="2" loc="(470,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(650,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(810,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(980,670)" name="Multiplexer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="8" loc="(340,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 8"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(510,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 4"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(670,390)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 2"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(840,380)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="d &gt;&gt; 1"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <wire from="(260,410)" to="(350,410)"/>
+ <wire from="(300,720)" to="(960,720)"/>
+ <wire from="(300,730)" to="(790,730)"/>
+ <wire from="(300,740)" to="(630,740)"/>
+ <wire from="(300,750)" to="(450,750)"/>
+ <wire from="(350,410)" to="(420,410)"/>
+ <wire from="(370,570)" to="(370,580)"/>
+ <wire from="(370,580)" to="(370,590)"/>
+ <wire from="(370,590)" to="(370,600)"/>
+ <wire from="(370,600)" to="(370,610)"/>
+ <wire from="(370,610)" to="(370,620)"/>
+ <wire from="(370,620)" to="(370,630)"/>
+ <wire from="(370,630)" to="(370,640)"/>
+ <wire from="(370,640)" to="(370,650)"/>
+ <wire from="(390,660)" to="(390,680)"/>
+ <wire from="(390,680)" to="(440,680)"/>
+ <wire from="(420,410)" to="(420,660)"/>
+ <wire from="(420,660)" to="(440,660)"/>
+ <wire from="(450,690)" to="(450,750)"/>
+ <wire from="(470,670)" to="(500,670)"/>
+ <wire from="(500,410)" to="(500,670)"/>
+ <wire from="(500,410)" to="(520,410)"/>
+ <wire from="(520,410)" to="(600,410)"/>
+ <wire from="(540,570)" to="(540,580)"/>
+ <wire from="(540,580)" to="(540,590)"/>
+ <wire from="(540,590)" to="(540,600)"/>
+ <wire from="(540,600)" to="(540,610)"/>
+ <wire from="(560,620)" to="(560,680)"/>
+ <wire from="(560,680)" to="(620,680)"/>
+ <wire from="(600,410)" to="(600,660)"/>
+ <wire from="(600,660)" to="(620,660)"/>
+ <wire from="(630,690)" to="(630,740)"/>
+ <wire from="(650,670)" to="(670,670)"/>
+ <wire from="(670,410)" to="(670,670)"/>
+ <wire from="(670,410)" to="(680,410)"/>
+ <wire from="(670,670)" to="(670,680)"/>
+ <wire from="(680,410)" to="(760,410)"/>
+ <wire from="(700,570)" to="(700,580)"/>
+ <wire from="(700,580)" to="(700,590)"/>
+ <wire from="(720,600)" to="(720,680)"/>
+ <wire from="(720,680)" to="(780,680)"/>
+ <wire from="(760,410)" to="(760,660)"/>
+ <wire from="(760,660)" to="(780,660)"/>
+ <wire from="(790,690)" to="(790,730)"/>
+ <wire from="(810,670)" to="(840,670)"/>
+ <wire from="(840,400)" to="(840,670)"/>
+ <wire from="(840,400)" to="(850,400)"/>
+ <wire from="(840,670)" to="(840,680)"/>
+ <wire from="(850,400)" to="(920,400)"/>
+ <wire from="(870,560)" to="(870,570)"/>
+ <wire from="(890,580)" to="(890,680)"/>
+ <wire from="(890,680)" to="(950,680)"/>
+ <wire from="(920,400)" to="(920,660)"/>
+ <wire from="(920,660)" to="(950,660)"/>
+ <wire from="(960,690)" to="(960,720)"/>
+ <wire from="(980,670)" to="(1000,670)"/>
+ </circuit>
+ <circuit name="IC_74382">
+ <a name="circuit" val="IC_74382"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1160,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="F1"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(1240,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="A1"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(1350,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="B2"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(1620,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="F2"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(1700,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="A2"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(1810,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="B3"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(2080,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="F3"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(2160,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="A3"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(2320,1460)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="S0"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(2370,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="OVR"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(2420,1460)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="S1"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(2420,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="Cn_4_09724fe9"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(2520,1460)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="S2"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(370,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="Cn"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(430,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="B0"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(700,650)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="F0"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ <a name="output" val="true"/>
+ <a name="tristate" val="true"/>
+ </comp>
+ <comp lib="0" loc="(780,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="A0"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="0" loc="(890,1430)" name="Pin">
+ <a name="appearance" val="classic"/>
+ <a name="label" val="B1"/>
+ <a name="labelfont" val="SansSerif plain 12"/>
+ </comp>
+ <comp lib="1" loc="(1030,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1090,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1100,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1120,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(1120,780)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1140,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1150,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1160,700)" name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1170,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1210,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1270,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1370,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1400,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(1430,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1430,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1490,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1490,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1550,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1550,780)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1550,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1580,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(1600,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1610,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1620,700)" name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1630,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1670,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1730,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1830,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1850,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1860,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(1890,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1890,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1910,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1930,780)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1950,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(1970,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2010,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2020,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2040,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2070,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2080,700)" name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2090,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2130,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2170,860)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2190,1090)" name="NOR Gate">
+ <a name="facing" val="west"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2190,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2230,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2250,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2290,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2300,790)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2320,1420)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2330,1140)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2340,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2350,1210)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2360,1310)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2370,710)" name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2380,770)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2380,870)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2390,1200)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2390,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2420,1110)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2420,1420)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2420,760)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2430,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2430,860)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2450,1310)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(2490,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2520,1420)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(2540,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(450,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(480,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(510,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(510,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(570,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(630,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(660,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(660,780)" name="NAND Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(690,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(700,700)" name="XOR Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(710,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(750,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(810,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(910,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(940,1380)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(970,1120)" name="NOR Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="3"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="1" loc="(970,1200)" name="AND Gate">
+ <a name="facing" val="north"/>
+ <a name="inputs" val="5"/>
+ <a name="size" val="30"/>
+ </comp>
+ <comp lib="8" loc="(2260,635)" name="Text">
+ <a name="font" val="SansSerif plain 12"/>
+ <a name="text" val="P G 74381 "/>
+ </comp>
+ <wire from="(1010,1230)" to="(1020,1230)"/>
+ <wire from="(1020,1230)" to="(1020,1270)"/>
+ <wire from="(1020,1270)" to="(1140,1270)"/>
+ <wire from="(1030,1180)" to="(1030,1200)"/>
+ <wire from="(1030,1230)" to="(1030,1250)"/>
+ <wire from="(1030,1250)" to="(1100,1250)"/>
+ <wire from="(1040,1230)" to="(1040,1290)"/>
+ <wire from="(1040,1290)" to="(1220,1290)"/>
+ <wire from="(1050,1230)" to="(1050,1310)"/>
+ <wire from="(1050,1310)" to="(1070,1310)"/>
+ <wire from="(1070,1230)" to="(1070,1310)"/>
+ <wire from="(1070,1310)" to="(1120,1310)"/>
+ <wire from="(1080,1230)" to="(1080,1300)"/>
+ <wire from="(1080,1300)" to="(1160,1300)"/>
+ <wire from="(1090,1170)" to="(1090,1200)"/>
+ <wire from="(1090,1170)" to="(1160,1170)"/>
+ <wire from="(1090,1230)" to="(1090,1280)"/>
+ <wire from="(1090,1280)" to="(1260,1280)"/>
+ <wire from="(1090,900)" to="(1090,910)"/>
+ <wire from="(1090,910)" to="(1480,910)"/>
+ <wire from="(1100,1230)" to="(1100,1250)"/>
+ <wire from="(1100,1250)" to="(1270,1250)"/>
+ <wire from="(1100,840)" to="(1100,870)"/>
+ <wire from="(1100,840)" to="(1110,840)"/>
+ <wire from="(1100,900)" to="(1100,920)"/>
+ <wire from="(1100,920)" to="(1130,920)"/>
+ <wire from="(1110,1090)" to="(1150,1090)"/>
+ <wire from="(1110,1230)" to="(1110,1240)"/>
+ <wire from="(1110,1240)" to="(1570,1240)"/>
+ <wire from="(1110,820)" to="(1110,840)"/>
+ <wire from="(1110,900)" to="(1110,1090)"/>
+ <wire from="(1120,1310)" to="(1120,1380)"/>
+ <wire from="(1120,1310)" to="(1230,1310)"/>
+ <wire from="(1120,1400)" to="(1120,1410)"/>
+ <wire from="(1120,1410)" to="(1240,1410)"/>
+ <wire from="(1120,770)" to="(1120,780)"/>
+ <wire from="(1120,770)" to="(1150,770)"/>
+ <wire from="(1130,1230)" to="(1140,1230)"/>
+ <wire from="(1130,820)" to="(1130,840)"/>
+ <wire from="(1130,840)" to="(1140,840)"/>
+ <wire from="(1130,900)" to="(1130,920)"/>
+ <wire from="(1130,920)" to="(1490,920)"/>
+ <wire from="(1140,1230)" to="(1140,1270)"/>
+ <wire from="(1140,1270)" to="(1200,1270)"/>
+ <wire from="(1140,840)" to="(1140,870)"/>
+ <wire from="(1140,900)" to="(1140,960)"/>
+ <wire from="(1140,960)" to="(1560,960)"/>
+ <wire from="(1150,1090)" to="(1510,1090)"/>
+ <wire from="(1150,1160)" to="(1160,1160)"/>
+ <wire from="(1150,1180)" to="(1150,1200)"/>
+ <wire from="(1150,1180)" to="(1170,1180)"/>
+ <wire from="(1150,1230)" to="(1150,1260)"/>
+ <wire from="(1150,1260)" to="(1210,1260)"/>
+ <wire from="(1150,740)" to="(1150,770)"/>
+ <wire from="(1150,900)" to="(1150,1090)"/>
+ <wire from="(1160,1160)" to="(1160,1170)"/>
+ <wire from="(1160,1230)" to="(1160,1300)"/>
+ <wire from="(1160,650)" to="(1160,700)"/>
+ <wire from="(1170,1160)" to="(1170,1180)"/>
+ <wire from="(1170,1230)" to="(1170,1320)"/>
+ <wire from="(1170,1320)" to="(1240,1320)"/>
+ <wire from="(1170,740)" to="(1170,970)"/>
+ <wire from="(1170,970)" to="(1170,1120)"/>
+ <wire from="(1170,970)" to="(1600,970)"/>
+ <wire from="(1180,1160)" to="(1180,1180)"/>
+ <wire from="(1180,1180)" to="(1210,1180)"/>
+ <wire from="(1190,1160)" to="(1190,1170)"/>
+ <wire from="(1190,1170)" to="(1270,1170)"/>
+ <wire from="(1190,1230)" to="(1200,1230)"/>
+ <wire from="(1200,1230)" to="(1200,1270)"/>
+ <wire from="(1200,1270)" to="(1390,1270)"/>
+ <wire from="(1210,1180)" to="(1210,1200)"/>
+ <wire from="(1210,1230)" to="(1210,1260)"/>
+ <wire from="(1210,1260)" to="(1380,1260)"/>
+ <wire from="(1220,1230)" to="(1220,1290)"/>
+ <wire from="(1220,1290)" to="(1280,1290)"/>
+ <wire from="(1230,1230)" to="(1230,1310)"/>
+ <wire from="(1240,1320)" to="(1240,1410)"/>
+ <wire from="(1240,1320)" to="(1290,1320)"/>
+ <wire from="(1240,1410)" to="(1240,1430)"/>
+ <wire from="(1250,1230)" to="(1260,1230)"/>
+ <wire from="(1260,1230)" to="(1260,1280)"/>
+ <wire from="(1260,1280)" to="(1410,1280)"/>
+ <wire from="(1270,1170)" to="(1270,1200)"/>
+ <wire from="(1270,1230)" to="(1270,1250)"/>
+ <wire from="(1270,1250)" to="(1430,1250)"/>
+ <wire from="(1280,1230)" to="(1280,1290)"/>
+ <wire from="(1290,1230)" to="(1290,1320)"/>
+ <wire from="(1350,1230)" to="(1360,1230)"/>
+ <wire from="(1350,1290)" to="(1350,1410)"/>
+ <wire from="(1350,1290)" to="(1500,1290)"/>
+ <wire from="(1350,1410)" to="(1350,1430)"/>
+ <wire from="(1350,1410)" to="(1400,1410)"/>
+ <wire from="(1360,1230)" to="(1360,1310)"/>
+ <wire from="(1360,1310)" to="(1510,1310)"/>
+ <wire from="(1370,1180)" to="(1370,1200)"/>
+ <wire from="(1370,1180)" to="(1420,1180)"/>
+ <wire from="(1370,1230)" to="(1370,1300)"/>
+ <wire from="(1370,1300)" to="(1400,1300)"/>
+ <wire from="(1380,1230)" to="(1380,1260)"/>
+ <wire from="(1380,1260)" to="(1420,1260)"/>
+ <wire from="(1390,1230)" to="(1390,1270)"/>
+ <wire from="(1390,1270)" to="(1480,1270)"/>
+ <wire from="(1400,1300)" to="(1400,1380)"/>
+ <wire from="(1400,1300)" to="(1440,1300)"/>
+ <wire from="(1400,1400)" to="(1400,1410)"/>
+ <wire from="(1410,1230)" to="(1410,1280)"/>
+ <wire from="(1410,1280)" to="(1550,1280)"/>
+ <wire from="(1420,1160)" to="(1420,1180)"/>
+ <wire from="(1420,1230)" to="(1420,1260)"/>
+ <wire from="(1420,1260)" to="(1610,1260)"/>
+ <wire from="(1430,1160)" to="(1430,1200)"/>
+ <wire from="(1430,1230)" to="(1430,1250)"/>
+ <wire from="(1430,1250)" to="(1490,1250)"/>
+ <wire from="(1430,940)" to="(1430,1120)"/>
+ <wire from="(1430,940)" to="(1860,940)"/>
+ <wire from="(1440,1160)" to="(1440,1180)"/>
+ <wire from="(1440,1180)" to="(1490,1180)"/>
+ <wire from="(1440,1230)" to="(1440,1300)"/>
+ <wire from="(1440,1300)" to="(1540,1300)"/>
+ <wire from="(1450,1230)" to="(1450,1320)"/>
+ <wire from="(1450,1320)" to="(1630,1320)"/>
+ <wire from="(1470,1230)" to="(1480,1230)"/>
+ <wire from="(1470,900)" to="(1480,900)"/>
+ <wire from="(1480,1230)" to="(1480,1270)"/>
+ <wire from="(1480,1270)" to="(1600,1270)"/>
+ <wire from="(1480,900)" to="(1480,910)"/>
+ <wire from="(1480,910)" to="(1830,910)"/>
+ <wire from="(1490,1180)" to="(1490,1200)"/>
+ <wire from="(1490,1230)" to="(1490,1250)"/>
+ <wire from="(1490,1250)" to="(1560,1250)"/>
+ <wire from="(1490,840)" to="(1490,870)"/>
+ <wire from="(1490,840)" to="(1540,840)"/>
+ <wire from="(1490,900)" to="(1490,920)"/>
+ <wire from="(1490,920)" to="(1540,920)"/>
+ <wire from="(1500,1230)" to="(1500,1290)"/>
+ <wire from="(1500,1290)" to="(1680,1290)"/>
+ <wire from="(1500,900)" to="(1500,930)"/>
+ <wire from="(1500,930)" to="(1550,930)"/>
+ <wire from="(1510,1090)" to="(1570,1090)"/>
+ <wire from="(1510,1230)" to="(1510,1310)"/>
+ <wire from="(1510,1310)" to="(1530,1310)"/>
+ <wire from="(1510,900)" to="(1510,1090)"/>
+ <wire from="(1530,1230)" to="(1530,1310)"/>
+ <wire from="(1530,1310)" to="(1580,1310)"/>
+ <wire from="(1530,900)" to="(1540,900)"/>
+ <wire from="(1540,1230)" to="(1540,1300)"/>
+ <wire from="(1540,1300)" to="(1620,1300)"/>
+ <wire from="(1540,820)" to="(1540,840)"/>
+ <wire from="(1540,900)" to="(1540,920)"/>
+ <wire from="(1540,920)" to="(1840,920)"/>
+ <wire from="(1550,1170)" to="(1550,1200)"/>
+ <wire from="(1550,1170)" to="(1620,1170)"/>
+ <wire from="(1550,1230)" to="(1550,1280)"/>
+ <wire from="(1550,1280)" to="(1720,1280)"/>
+ <wire from="(1550,770)" to="(1550,780)"/>
+ <wire from="(1550,770)" to="(1610,770)"/>
+ <wire from="(1550,820)" to="(1550,870)"/>
+ <wire from="(1550,900)" to="(1550,930)"/>
+ <wire from="(1550,930)" to="(1590,930)"/>
+ <wire from="(1560,1230)" to="(1560,1250)"/>
+ <wire from="(1560,1250)" to="(1730,1250)"/>
+ <wire from="(1560,820)" to="(1560,840)"/>
+ <wire from="(1560,840)" to="(1600,840)"/>
+ <wire from="(1560,900)" to="(1560,960)"/>
+ <wire from="(1560,960)" to="(1920,960)"/>
+ <wire from="(1570,1090)" to="(1610,1090)"/>
+ <wire from="(1570,1230)" to="(1570,1240)"/>
+ <wire from="(1570,1240)" to="(2030,1240)"/>
+ <wire from="(1570,900)" to="(1570,1090)"/>
+ <wire from="(1580,1310)" to="(1580,1380)"/>
+ <wire from="(1580,1310)" to="(1690,1310)"/>
+ <wire from="(1580,1400)" to="(1580,1410)"/>
+ <wire from="(1580,1410)" to="(1700,1410)"/>
+ <wire from="(1590,1230)" to="(1600,1230)"/>
+ <wire from="(1590,900)" to="(1590,930)"/>
+ <wire from="(1590,930)" to="(1850,930)"/>
+ <wire from="(1600,1230)" to="(1600,1270)"/>
+ <wire from="(1600,1270)" to="(1660,1270)"/>
+ <wire from="(1600,840)" to="(1600,870)"/>
+ <wire from="(1600,900)" to="(1600,970)"/>
+ <wire from="(1600,970)" to="(1980,970)"/>
+ <wire from="(1610,1090)" to="(1870,1090)"/>
+ <wire from="(1610,1160)" to="(1620,1160)"/>
+ <wire from="(1610,1180)" to="(1610,1200)"/>
+ <wire from="(1610,1180)" to="(1630,1180)"/>
+ <wire from="(1610,1230)" to="(1610,1260)"/>
+ <wire from="(1610,1260)" to="(1670,1260)"/>
+ <wire from="(1610,740)" to="(1610,770)"/>
+ <wire from="(1610,900)" to="(1610,1090)"/>
+ <wire from="(1620,1160)" to="(1620,1170)"/>
+ <wire from="(1620,1230)" to="(1620,1300)"/>
+ <wire from="(1620,650)" to="(1620,700)"/>
+ <wire from="(1630,1160)" to="(1630,1180)"/>
+ <wire from="(1630,1230)" to="(1630,1320)"/>
+ <wire from="(1630,1320)" to="(1700,1320)"/>
+ <wire from="(1630,740)" to="(1630,980)"/>
+ <wire from="(1630,980)" to="(1630,1120)"/>
+ <wire from="(1630,980)" to="(2020,980)"/>
+ <wire from="(1640,1160)" to="(1640,1180)"/>
+ <wire from="(1640,1180)" to="(1670,1180)"/>
+ <wire from="(1650,1160)" to="(1650,1170)"/>
+ <wire from="(1650,1170)" to="(1730,1170)"/>
+ <wire from="(1650,1230)" to="(1660,1230)"/>
+ <wire from="(1660,1230)" to="(1660,1270)"/>
+ <wire from="(1660,1270)" to="(1850,1270)"/>
+ <wire from="(1670,1180)" to="(1670,1200)"/>
+ <wire from="(1670,1230)" to="(1670,1260)"/>
+ <wire from="(1670,1260)" to="(1840,1260)"/>
+ <wire from="(1680,1230)" to="(1680,1290)"/>
+ <wire from="(1680,1290)" to="(1740,1290)"/>
+ <wire from="(1690,1230)" to="(1690,1310)"/>
+ <wire from="(1700,1320)" to="(1700,1410)"/>
+ <wire from="(1700,1320)" to="(1750,1320)"/>
+ <wire from="(1700,1410)" to="(1700,1430)"/>
+ <wire from="(1710,1230)" to="(1720,1230)"/>
+ <wire from="(1720,1230)" to="(1720,1280)"/>
+ <wire from="(1720,1280)" to="(1870,1280)"/>
+ <wire from="(1730,1170)" to="(1730,1200)"/>
+ <wire from="(1730,1230)" to="(1730,1250)"/>
+ <wire from="(1730,1250)" to="(1890,1250)"/>
+ <wire from="(1740,1230)" to="(1740,1290)"/>
+ <wire from="(1750,1230)" to="(1750,1320)"/>
+ <wire from="(1810,1230)" to="(1820,1230)"/>
+ <wire from="(1810,1290)" to="(1810,1410)"/>
+ <wire from="(1810,1290)" to="(1960,1290)"/>
+ <wire from="(1810,1410)" to="(1810,1430)"/>
+ <wire from="(1810,1410)" to="(1860,1410)"/>
+ <wire from="(1820,1230)" to="(1820,1310)"/>
+ <wire from="(1820,1310)" to="(1970,1310)"/>
+ <wire from="(1830,1180)" to="(1830,1200)"/>
+ <wire from="(1830,1180)" to="(1880,1180)"/>
+ <wire from="(1830,1230)" to="(1830,1300)"/>
+ <wire from="(1830,1300)" to="(1860,1300)"/>
+ <wire from="(1830,900)" to="(1830,910)"/>
+ <wire from="(1830,910)" to="(2410,910)"/>
+ <wire from="(1840,1230)" to="(1840,1260)"/>
+ <wire from="(1840,1260)" to="(1880,1260)"/>
+ <wire from="(1840,900)" to="(1840,920)"/>
+ <wire from="(1840,920)" to="(1890,920)"/>
+ <wire from="(1850,1230)" to="(1850,1270)"/>
+ <wire from="(1850,1270)" to="(1940,1270)"/>
+ <wire from="(1850,830)" to="(1850,870)"/>
+ <wire from="(1850,830)" to="(1920,830)"/>
+ <wire from="(1850,900)" to="(1850,930)"/>
+ <wire from="(1850,930)" to="(1900,930)"/>
+ <wire from="(1860,1300)" to="(1860,1380)"/>
+ <wire from="(1860,1300)" to="(1900,1300)"/>
+ <wire from="(1860,1400)" to="(1860,1410)"/>
+ <wire from="(1860,900)" to="(1860,940)"/>
+ <wire from="(1860,940)" to="(1910,940)"/>
+ <wire from="(1870,1090)" to="(1930,1090)"/>
+ <wire from="(1870,1230)" to="(1870,1280)"/>
+ <wire from="(1870,1280)" to="(2010,1280)"/>
+ <wire from="(1870,900)" to="(1870,1090)"/>
+ <wire from="(1880,1160)" to="(1880,1180)"/>
+ <wire from="(1880,1230)" to="(1880,1260)"/>
+ <wire from="(1880,1260)" to="(2070,1260)"/>
+ <wire from="(1890,1160)" to="(1890,1200)"/>
+ <wire from="(1890,1230)" to="(1890,1250)"/>
+ <wire from="(1890,1250)" to="(1950,1250)"/>
+ <wire from="(1890,900)" to="(1890,920)"/>
+ <wire from="(1890,920)" to="(2160,920)"/>
+ <wire from="(1890,950)" to="(1890,1120)"/>
+ <wire from="(1890,950)" to="(2190,950)"/>
+ <wire from="(1900,1160)" to="(1900,1180)"/>
+ <wire from="(1900,1180)" to="(1950,1180)"/>
+ <wire from="(1900,1230)" to="(1900,1300)"/>
+ <wire from="(1900,1300)" to="(2000,1300)"/>
+ <wire from="(1900,900)" to="(1900,930)"/>
+ <wire from="(1900,930)" to="(1960,930)"/>
+ <wire from="(1910,1230)" to="(1910,1320)"/>
+ <wire from="(1910,1320)" to="(2090,1320)"/>
+ <wire from="(1910,820)" to="(1920,820)"/>
+ <wire from="(1910,840)" to="(1910,870)"/>
+ <wire from="(1910,840)" to="(1930,840)"/>
+ <wire from="(1910,900)" to="(1910,940)"/>
+ <wire from="(1910,940)" to="(1970,940)"/>
+ <wire from="(1920,820)" to="(1920,830)"/>
+ <wire from="(1920,900)" to="(1920,960)"/>
+ <wire from="(1920,960)" to="(2250,960)"/>
+ <wire from="(1930,1090)" to="(1990,1090)"/>
+ <wire from="(1930,1230)" to="(1940,1230)"/>
+ <wire from="(1930,770)" to="(1930,780)"/>
+ <wire from="(1930,770)" to="(2070,770)"/>
+ <wire from="(1930,820)" to="(1930,840)"/>
+ <wire from="(1930,900)" to="(1930,1090)"/>
+ <wire from="(1940,1230)" to="(1940,1270)"/>
+ <wire from="(1940,1270)" to="(2060,1270)"/>
+ <wire from="(1940,820)" to="(1940,840)"/>
+ <wire from="(1940,840)" to="(1970,840)"/>
+ <wire from="(1950,1180)" to="(1950,1200)"/>
+ <wire from="(1950,1230)" to="(1950,1250)"/>
+ <wire from="(1950,1250)" to="(2020,1250)"/>
+ <wire from="(1950,820)" to="(1950,830)"/>
+ <wire from="(1950,830)" to="(2020,830)"/>
+ <wire from="(1950,900)" to="(1960,900)"/>
+ <wire from="(1960,1230)" to="(1960,1290)"/>
+ <wire from="(1960,1290)" to="(2140,1290)"/>
+ <wire from="(1960,900)" to="(1960,930)"/>
+ <wire from="(1960,930)" to="(2170,930)"/>
+ <wire from="(1970,1230)" to="(1970,1310)"/>
+ <wire from="(1970,1310)" to="(1990,1310)"/>
+ <wire from="(1970,840)" to="(1970,870)"/>
+ <wire from="(1970,900)" to="(1970,940)"/>
+ <wire from="(1970,940)" to="(2010,940)"/>
+ <wire from="(1980,900)" to="(1980,970)"/>
+ <wire from="(1980,970)" to="(2310,970)"/>
+ <wire from="(1990,1090)" to="(2030,1090)"/>
+ <wire from="(1990,1230)" to="(1990,1310)"/>
+ <wire from="(1990,1310)" to="(2040,1310)"/>
+ <wire from="(1990,900)" to="(1990,1090)"/>
+ <wire from="(2000,1230)" to="(2000,1300)"/>
+ <wire from="(2000,1300)" to="(2080,1300)"/>
+ <wire from="(2010,1170)" to="(2010,1200)"/>
+ <wire from="(2010,1170)" to="(2080,1170)"/>
+ <wire from="(2010,1230)" to="(2010,1280)"/>
+ <wire from="(2010,1280)" to="(2180,1280)"/>
+ <wire from="(2010,900)" to="(2010,940)"/>
+ <wire from="(2010,940)" to="(2180,940)"/>
+ <wire from="(2020,1230)" to="(2020,1250)"/>
+ <wire from="(2020,1250)" to="(2190,1250)"/>
+ <wire from="(2020,830)" to="(2020,870)"/>
+ <wire from="(2020,900)" to="(2020,980)"/>
+ <wire from="(2020,980)" to="(2350,980)"/>
+ <wire from="(2030,1090)" to="(2190,1090)"/>
+ <wire from="(2030,1230)" to="(2030,1240)"/>
+ <wire from="(2030,1240)" to="(2290,1240)"/>
+ <wire from="(2030,900)" to="(2030,1090)"/>
+ <wire from="(2040,1310)" to="(2040,1380)"/>
+ <wire from="(2040,1310)" to="(2150,1310)"/>
+ <wire from="(2040,1400)" to="(2040,1410)"/>
+ <wire from="(2040,1410)" to="(2160,1410)"/>
+ <wire from="(2050,1230)" to="(2060,1230)"/>
+ <wire from="(2060,1230)" to="(2060,1270)"/>
+ <wire from="(2060,1270)" to="(2120,1270)"/>
+ <wire from="(2070,1160)" to="(2080,1160)"/>
+ <wire from="(2070,1180)" to="(2070,1200)"/>
+ <wire from="(2070,1180)" to="(2090,1180)"/>
+ <wire from="(2070,1230)" to="(2070,1260)"/>
+ <wire from="(2070,1260)" to="(2130,1260)"/>
+ <wire from="(2070,740)" to="(2070,760)"/>
+ <wire from="(2070,760)" to="(2070,770)"/>
+ <wire from="(2070,760)" to="(2360,760)"/>
+ <wire from="(2080,1160)" to="(2080,1170)"/>
+ <wire from="(2080,1230)" to="(2080,1300)"/>
+ <wire from="(2080,650)" to="(2080,700)"/>
+ <wire from="(2090,1160)" to="(2090,1180)"/>
+ <wire from="(2090,1230)" to="(2090,1320)"/>
+ <wire from="(2090,1320)" to="(2160,1320)"/>
+ <wire from="(2090,740)" to="(2090,990)"/>
+ <wire from="(2090,990)" to="(2090,1120)"/>
+ <wire from="(2090,990)" to="(2390,990)"/>
+ <wire from="(2100,1160)" to="(2100,1180)"/>
+ <wire from="(2100,1180)" to="(2130,1180)"/>
+ <wire from="(2110,1160)" to="(2110,1170)"/>
+ <wire from="(2110,1170)" to="(2190,1170)"/>
+ <wire from="(2110,1230)" to="(2120,1230)"/>
+ <wire from="(2120,1230)" to="(2120,1270)"/>
+ <wire from="(2120,1270)" to="(2450,1270)"/>
+ <wire from="(2130,1180)" to="(2130,1200)"/>
+ <wire from="(2130,1230)" to="(2130,1260)"/>
+ <wire from="(2130,1260)" to="(2310,1260)"/>
+ <wire from="(2140,1230)" to="(2140,1290)"/>
+ <wire from="(2140,1290)" to="(2200,1290)"/>
+ <wire from="(2150,1230)" to="(2150,1310)"/>
+ <wire from="(2150,900)" to="(2160,900)"/>
+ <wire from="(2160,1320)" to="(2160,1410)"/>
+ <wire from="(2160,1320)" to="(2210,1320)"/>
+ <wire from="(2160,1410)" to="(2160,1430)"/>
+ <wire from="(2160,900)" to="(2160,920)"/>
+ <wire from="(2160,920)" to="(2210,920)"/>
+ <wire from="(2170,1230)" to="(2180,1230)"/>
+ <wire from="(2170,650)" to="(2170,860)"/>
+ <wire from="(2170,900)" to="(2170,930)"/>
+ <wire from="(2170,930)" to="(2220,930)"/>
+ <wire from="(2180,1230)" to="(2180,1280)"/>
+ <wire from="(2180,1280)" to="(2360,1280)"/>
+ <wire from="(2180,900)" to="(2180,940)"/>
+ <wire from="(2180,940)" to="(2230,940)"/>
+ <wire from="(2190,1170)" to="(2190,1200)"/>
+ <wire from="(2190,1230)" to="(2190,1250)"/>
+ <wire from="(2190,1250)" to="(2300,1250)"/>
+ <wire from="(2190,900)" to="(2190,950)"/>
+ <wire from="(2190,950)" to="(2240,950)"/>
+ <wire from="(2200,1230)" to="(2200,1290)"/>
+ <wire from="(2210,1230)" to="(2210,1320)"/>
+ <wire from="(2210,900)" to="(2210,920)"/>
+ <wire from="(2210,920)" to="(2420,920)"/>
+ <wire from="(2220,900)" to="(2220,930)"/>
+ <wire from="(2220,930)" to="(2280,930)"/>
+ <wire from="(2230,1080)" to="(2460,1080)"/>
+ <wire from="(2230,1100)" to="(2250,1100)"/>
+ <wire from="(2230,840)" to="(2230,870)"/>
+ <wire from="(2230,840)" to="(2290,840)"/>
+ <wire from="(2230,900)" to="(2230,940)"/>
+ <wire from="(2230,940)" to="(2290,940)"/>
+ <wire from="(2240,1230)" to="(2240,1380)"/>
+ <wire from="(2240,1380)" to="(2320,1380)"/>
+ <wire from="(2240,900)" to="(2240,950)"/>
+ <wire from="(2240,950)" to="(2300,950)"/>
+ <wire from="(2250,1100)" to="(2250,1200)"/>
+ <wire from="(2250,900)" to="(2250,960)"/>
+ <wire from="(2260,1230)" to="(2260,1290)"/>
+ <wire from="(2260,1290)" to="(2420,1290)"/>
+ <wire from="(2270,900)" to="(2280,900)"/>
+ <wire from="(2280,830)" to="(2290,830)"/>
+ <wire from="(2280,900)" to="(2280,930)"/>
+ <wire from="(2280,930)" to="(2430,930)"/>
+ <wire from="(2290,1100)" to="(2290,1240)"/>
+ <wire from="(2290,1100)" to="(2420,1100)"/>
+ <wire from="(2290,830)" to="(2290,840)"/>
+ <wire from="(2290,850)" to="(2290,870)"/>
+ <wire from="(2290,850)" to="(2300,850)"/>
+ <wire from="(2290,900)" to="(2290,940)"/>
+ <wire from="(2290,940)" to="(2330,940)"/>
+ <wire from="(2300,1190)" to="(2300,1250)"/>
+ <wire from="(2300,1190)" to="(2390,1190)"/>
+ <wire from="(2300,650)" to="(2300,780)"/>
+ <wire from="(2300,780)" to="(2300,790)"/>
+ <wire from="(2300,780)" to="(2340,780)"/>
+ <wire from="(2300,830)" to="(2300,850)"/>
+ <wire from="(2300,900)" to="(2300,950)"/>
+ <wire from="(2300,950)" to="(2340,950)"/>
+ <wire from="(2310,1200)" to="(2310,1260)"/>
+ <wire from="(2310,1200)" to="(2350,1200)"/>
+ <wire from="(2310,830)" to="(2310,850)"/>
+ <wire from="(2310,850)" to="(2340,850)"/>
+ <wire from="(2310,900)" to="(2310,970)"/>
+ <wire from="(2320,1170)" to="(2320,1260)"/>
+ <wire from="(2320,1260)" to="(2320,1360)"/>
+ <wire from="(2320,1260)" to="(2340,1260)"/>
+ <wire from="(2320,1360)" to="(2320,1380)"/>
+ <wire from="(2320,1360)" to="(2350,1360)"/>
+ <wire from="(2320,1380)" to="(2320,1410)"/>
+ <wire from="(2320,1410)" to="(2320,1420)"/>
+ <wire from="(2320,1410)" to="(2390,1410)"/>
+ <wire from="(2320,1440)" to="(2320,1460)"/>
+ <wire from="(2320,830)" to="(2320,840)"/>
+ <wire from="(2320,840)" to="(2380,840)"/>
+ <wire from="(2330,1130)" to="(2330,1140)"/>
+ <wire from="(2330,1130)" to="(2370,1130)"/>
+ <wire from="(2330,900)" to="(2330,940)"/>
+ <wire from="(2330,940)" to="(2440,940)"/>
+ <wire from="(2340,1170)" to="(2340,1180)"/>
+ <wire from="(2340,1180)" to="(2460,1180)"/>
+ <wire from="(2340,1250)" to="(2340,1260)"/>
+ <wire from="(2340,780)" to="(2340,820)"/>
+ <wire from="(2340,820)" to="(2370,820)"/>
+ <wire from="(2340,850)" to="(2340,870)"/>
+ <wire from="(2340,900)" to="(2340,950)"/>
+ <wire from="(2340,950)" to="(2370,950)"/>
+ <wire from="(2350,1200)" to="(2350,1210)"/>
+ <wire from="(2350,1350)" to="(2350,1360)"/>
+ <wire from="(2350,900)" to="(2350,980)"/>
+ <wire from="(2360,1250)" to="(2360,1260)"/>
+ <wire from="(2360,1260)" to="(2390,1260)"/>
+ <wire from="(2360,1280)" to="(2360,1310)"/>
+ <wire from="(2360,750)" to="(2360,760)"/>
+ <wire from="(2370,1130)" to="(2370,1160)"/>
+ <wire from="(2370,1160)" to="(2410,1160)"/>
+ <wire from="(2370,1350)" to="(2370,1360)"/>
+ <wire from="(2370,1360)" to="(2420,1360)"/>
+ <wire from="(2370,650)" to="(2370,710)"/>
+ <wire from="(2370,800)" to="(2370,820)"/>
+ <wire from="(2370,820)" to="(2410,820)"/>
+ <wire from="(2370,900)" to="(2370,950)"/>
+ <wire from="(2370,950)" to="(2450,950)"/>
+ <wire from="(2380,1240)" to="(2380,1310)"/>
+ <wire from="(2380,1310)" to="(2390,1310)"/>
+ <wire from="(2380,750)" to="(2380,770)"/>
+ <wire from="(2380,840)" to="(2380,870)"/>
+ <wire from="(2390,1190)" to="(2390,1200)"/>
+ <wire from="(2390,1240)" to="(2390,1260)"/>
+ <wire from="(2390,1260)" to="(2490,1260)"/>
+ <wire from="(2390,1310)" to="(2390,1380)"/>
+ <wire from="(2390,1400)" to="(2390,1410)"/>
+ <wire from="(2390,800)" to="(2390,830)"/>
+ <wire from="(2390,830)" to="(2430,830)"/>
+ <wire from="(2390,900)" to="(2390,990)"/>
+ <wire from="(2400,1240)" to="(2400,1250)"/>
+ <wire from="(2400,1250)" to="(2520,1250)"/>
+ <wire from="(2410,1150)" to="(2410,1160)"/>
+ <wire from="(2410,800)" to="(2410,820)"/>
+ <wire from="(2410,900)" to="(2410,910)"/>
+ <wire from="(2420,1100)" to="(2420,1110)"/>
+ <wire from="(2420,1230)" to="(2420,1290)"/>
+ <wire from="(2420,1290)" to="(2420,1360)"/>
+ <wire from="(2420,1360)" to="(2420,1410)"/>
+ <wire from="(2420,1360)" to="(2440,1360)"/>
+ <wire from="(2420,1410)" to="(2420,1420)"/>
+ <wire from="(2420,1410)" to="(2490,1410)"/>
+ <wire from="(2420,1440)" to="(2420,1460)"/>
+ <wire from="(2420,650)" to="(2420,760)"/>
+ <wire from="(2420,900)" to="(2420,920)"/>
+ <wire from="(2430,1150)" to="(2430,1200)"/>
+ <wire from="(2430,800)" to="(2430,830)"/>
+ <wire from="(2430,830)" to="(2430,860)"/>
+ <wire from="(2430,900)" to="(2430,930)"/>
+ <wire from="(2440,1230)" to="(2440,1240)"/>
+ <wire from="(2440,1240)" to="(2540,1240)"/>
+ <wire from="(2440,1350)" to="(2440,1360)"/>
+ <wire from="(2440,900)" to="(2440,940)"/>
+ <wire from="(2450,1270)" to="(2450,1310)"/>
+ <wire from="(2450,900)" to="(2450,950)"/>
+ <wire from="(2460,1080)" to="(2460,1180)"/>
+ <wire from="(2460,1180)" to="(2540,1180)"/>
+ <wire from="(2460,1350)" to="(2460,1360)"/>
+ <wire from="(2460,1360)" to="(2520,1360)"/>
+ <wire from="(2490,1260)" to="(2490,1380)"/>
+ <wire from="(2490,1400)" to="(2490,1410)"/>
+ <wire from="(2520,1250)" to="(2520,1360)"/>
+ <wire from="(2520,1360)" to="(2520,1410)"/>
+ <wire from="(2520,1410)" to="(2520,1420)"/>
+ <wire from="(2520,1410)" to="(2540,1410)"/>
+ <wire from="(2520,1440)" to="(2520,1460)"/>
+ <wire from="(2540,1180)" to="(2540,1240)"/>
+ <wire from="(2540,1240)" to="(2540,1380)"/>
+ <wire from="(2540,1400)" to="(2540,1410)"/>
+ <wire from="(370,910)" to="(370,1430)"/>
+ <wire from="(370,910)" to="(650,910)"/>
+ <wire from="(430,1230)" to="(440,1230)"/>
+ <wire from="(430,1290)" to="(430,1410)"/>
+ <wire from="(430,1290)" to="(580,1290)"/>
+ <wire from="(430,1410)" to="(430,1430)"/>
+ <wire from="(430,1410)" to="(480,1410)"/>
+ <wire from="(440,1230)" to="(440,1310)"/>
+ <wire from="(440,1310)" to="(590,1310)"/>
+ <wire from="(450,1180)" to="(450,1200)"/>
+ <wire from="(450,1180)" to="(500,1180)"/>
+ <wire from="(450,1230)" to="(450,1300)"/>
+ <wire from="(450,1300)" to="(480,1300)"/>
+ <wire from="(460,1230)" to="(460,1260)"/>
+ <wire from="(460,1260)" to="(500,1260)"/>
+ <wire from="(470,1230)" to="(470,1270)"/>
+ <wire from="(470,1270)" to="(560,1270)"/>
+ <wire from="(480,1300)" to="(480,1380)"/>
+ <wire from="(480,1300)" to="(520,1300)"/>
+ <wire from="(480,1400)" to="(480,1410)"/>
+ <wire from="(490,1230)" to="(490,1280)"/>
+ <wire from="(490,1280)" to="(630,1280)"/>
+ <wire from="(500,1160)" to="(500,1180)"/>
+ <wire from="(500,1230)" to="(500,1260)"/>
+ <wire from="(500,1260)" to="(690,1260)"/>
+ <wire from="(510,1160)" to="(510,1200)"/>
+ <wire from="(510,1230)" to="(510,1250)"/>
+ <wire from="(510,1250)" to="(570,1250)"/>
+ <wire from="(510,920)" to="(1100,920)"/>
+ <wire from="(510,920)" to="(510,1120)"/>
+ <wire from="(520,1160)" to="(520,1180)"/>
+ <wire from="(520,1180)" to="(570,1180)"/>
+ <wire from="(520,1230)" to="(520,1300)"/>
+ <wire from="(520,1300)" to="(620,1300)"/>
+ <wire from="(530,1230)" to="(530,1320)"/>
+ <wire from="(530,1320)" to="(710,1320)"/>
+ <wire from="(550,1230)" to="(560,1230)"/>
+ <wire from="(560,1230)" to="(560,1270)"/>
+ <wire from="(560,1270)" to="(680,1270)"/>
+ <wire from="(570,1180)" to="(570,1200)"/>
+ <wire from="(570,1230)" to="(570,1250)"/>
+ <wire from="(570,1250)" to="(640,1250)"/>
+ <wire from="(580,1230)" to="(580,1290)"/>
+ <wire from="(580,1290)" to="(760,1290)"/>
+ <wire from="(590,1230)" to="(590,1310)"/>
+ <wire from="(590,1310)" to="(610,1310)"/>
+ <wire from="(610,1230)" to="(610,1310)"/>
+ <wire from="(610,1310)" to="(660,1310)"/>
+ <wire from="(620,1230)" to="(620,1300)"/>
+ <wire from="(620,1300)" to="(700,1300)"/>
+ <wire from="(630,1170)" to="(630,1200)"/>
+ <wire from="(630,1170)" to="(700,1170)"/>
+ <wire from="(630,1230)" to="(630,1280)"/>
+ <wire from="(630,1280)" to="(800,1280)"/>
+ <wire from="(640,1230)" to="(640,1250)"/>
+ <wire from="(640,1250)" to="(810,1250)"/>
+ <wire from="(650,1230)" to="(650,1240)"/>
+ <wire from="(650,1240)" to="(1110,1240)"/>
+ <wire from="(650,820)" to="(650,910)"/>
+ <wire from="(650,910)" to="(1090,910)"/>
+ <wire from="(660,1310)" to="(660,1380)"/>
+ <wire from="(660,1310)" to="(770,1310)"/>
+ <wire from="(660,1400)" to="(660,1410)"/>
+ <wire from="(660,1410)" to="(780,1410)"/>
+ <wire from="(660,770)" to="(660,780)"/>
+ <wire from="(660,770)" to="(690,770)"/>
+ <wire from="(670,1090)" to="(1110,1090)"/>
+ <wire from="(670,1230)" to="(680,1230)"/>
+ <wire from="(670,820)" to="(670,1090)"/>
+ <wire from="(680,1230)" to="(680,1270)"/>
+ <wire from="(680,1270)" to="(740,1270)"/>
+ <wire from="(690,1160)" to="(700,1160)"/>
+ <wire from="(690,1180)" to="(690,1200)"/>
+ <wire from="(690,1180)" to="(710,1180)"/>
+ <wire from="(690,1230)" to="(690,1260)"/>
+ <wire from="(690,1260)" to="(750,1260)"/>
+ <wire from="(690,740)" to="(690,770)"/>
+ <wire from="(700,1160)" to="(700,1170)"/>
+ <wire from="(700,1230)" to="(700,1300)"/>
+ <wire from="(700,650)" to="(700,700)"/>
+ <wire from="(710,1160)" to="(710,1180)"/>
+ <wire from="(710,1230)" to="(710,1320)"/>
+ <wire from="(710,1320)" to="(780,1320)"/>
+ <wire from="(710,740)" to="(710,960)"/>
+ <wire from="(710,960)" to="(1140,960)"/>
+ <wire from="(710,960)" to="(710,1120)"/>
+ <wire from="(720,1160)" to="(720,1180)"/>
+ <wire from="(720,1180)" to="(750,1180)"/>
+ <wire from="(730,1160)" to="(730,1170)"/>
+ <wire from="(730,1170)" to="(810,1170)"/>
+ <wire from="(730,1230)" to="(740,1230)"/>
+ <wire from="(740,1230)" to="(740,1270)"/>
+ <wire from="(740,1270)" to="(930,1270)"/>
+ <wire from="(750,1180)" to="(750,1200)"/>
+ <wire from="(750,1230)" to="(750,1260)"/>
+ <wire from="(750,1260)" to="(920,1260)"/>
+ <wire from="(760,1230)" to="(760,1290)"/>
+ <wire from="(760,1290)" to="(820,1290)"/>
+ <wire from="(770,1230)" to="(770,1310)"/>
+ <wire from="(780,1320)" to="(780,1410)"/>
+ <wire from="(780,1320)" to="(830,1320)"/>
+ <wire from="(780,1410)" to="(780,1430)"/>
+ <wire from="(790,1230)" to="(800,1230)"/>
+ <wire from="(800,1230)" to="(800,1280)"/>
+ <wire from="(800,1280)" to="(950,1280)"/>
+ <wire from="(810,1170)" to="(810,1200)"/>
+ <wire from="(810,1230)" to="(810,1250)"/>
+ <wire from="(810,1250)" to="(970,1250)"/>
+ <wire from="(820,1230)" to="(820,1290)"/>
+ <wire from="(830,1230)" to="(830,1320)"/>
+ <wire from="(890,1230)" to="(900,1230)"/>
+ <wire from="(890,1290)" to="(1040,1290)"/>
+ <wire from="(890,1290)" to="(890,1410)"/>
+ <wire from="(890,1410)" to="(890,1430)"/>
+ <wire from="(890,1410)" to="(940,1410)"/>
+ <wire from="(900,1230)" to="(900,1310)"/>
+ <wire from="(900,1310)" to="(1050,1310)"/>
+ <wire from="(910,1180)" to="(910,1200)"/>
+ <wire from="(910,1180)" to="(960,1180)"/>
+ <wire from="(910,1230)" to="(910,1300)"/>
+ <wire from="(910,1300)" to="(940,1300)"/>
+ <wire from="(920,1230)" to="(920,1260)"/>
+ <wire from="(920,1260)" to="(960,1260)"/>
+ <wire from="(930,1230)" to="(930,1270)"/>
+ <wire from="(930,1270)" to="(1020,1270)"/>
+ <wire from="(940,1300)" to="(940,1380)"/>
+ <wire from="(940,1300)" to="(980,1300)"/>
+ <wire from="(940,1400)" to="(940,1410)"/>
+ <wire from="(950,1230)" to="(950,1280)"/>
+ <wire from="(950,1280)" to="(1090,1280)"/>
+ <wire from="(960,1160)" to="(960,1180)"/>
+ <wire from="(960,1230)" to="(960,1260)"/>
+ <wire from="(960,1260)" to="(1150,1260)"/>
+ <wire from="(970,1160)" to="(970,1200)"/>
+ <wire from="(970,1230)" to="(970,1250)"/>
+ <wire from="(970,1250)" to="(1030,1250)"/>
+ <wire from="(970,930)" to="(1500,930)"/>
+ <wire from="(970,930)" to="(970,1120)"/>
+ <wire from="(980,1160)" to="(980,1180)"/>
+ <wire from="(980,1180)" to="(1030,1180)"/>
+ <wire from="(980,1230)" to="(980,1300)"/>
+ <wire from="(980,1300)" to="(1080,1300)"/>
+ <wire from="(990,1230)" to="(990,1320)"/>
+ <wire from="(990,1320)" to="(1170,1320)"/>
+ </circuit>
+ <circuit name="TestBench">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="TestBench"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(260,820)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="TICK"/>
+ <a name="radix" val="10unsigned"/>
+ <a name="width" val="8"/>
+ </comp>
+ <comp lib="0" loc="(260,820)" name="Splitter">
+ <a name="fanout" val="8"/>
+ <a name="incoming" val="8"/>
+ </comp>
+ <comp lib="0" loc="(630,820)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="HALT"/>
+ <a name="output" val="true"/>
+ </comp>
+ <comp lib="0" loc="(730,840)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="MEM_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp loc="(630,820)" name="CPU16"/>
+ <wire from="(280,740)" to="(410,740)"/>
+ <wire from="(410,740)" to="(410,820)"/>
+ <wire from="(630,840)" to="(730,840)"/>
+ </circuit>
+ <circuit name="MemoryModule">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="circuit" val="MemoryModule"/>
+ <a name="circuitnamedboxfixedsize" val="true"/>
+ <a name="simulationFrequency" val="1.0"/>
+ <comp lib="0" loc="(1160,200)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="BANK_S"/>
+ </comp>
+ <comp lib="0" loc="(1170,570)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="BANK_S"/>
+ </comp>
+ <comp lib="0" loc="(1270,590)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="MEM_OE"/>
+ </comp>
+ <comp lib="0" loc="(1320,560)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="west"/>
+ <a name="label" val="BUS_OUT"/>
+ <a name="output" val="true"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(510,340)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="BUS_IN"/>
+ <a name="radix" val="16"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="0" loc="(620,390)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="CLK"/>
+ </comp>
+ <comp lib="0" loc="(640,360)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="MAR_IE"/>
+ </comp>
+ <comp lib="0" loc="(670,410)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="facing" val="north"/>
+ <a name="label" val="RESET"/>
+ </comp>
+ <comp lib="0" loc="(700,340)" name="Splitter">
+ <a name="fanout" val="16"/>
+ <a name="incoming" val="16"/>
+ </comp>
+ <comp lib="0" loc="(740,330)" name="Splitter">
+ <a name="appear" val="right"/>
+ <a name="facing" val="west"/>
+ <a name="fanout" val="15"/>
+ <a name="incoming" val="15"/>
+ </comp>
+ <comp lib="0" loc="(760,390)" name="Tunnel">
+ <a name="facing" val="north"/>
+ <a name="label" val="BANK_S"/>
+ </comp>
+ <comp lib="0" loc="(830,520)" name="Pin">
+ <a name="appearance" val="NewPins"/>
+ <a name="label" val="MEM_IE"/>
+ </comp>
+ <comp lib="0" loc="(860,540)" name="Power">
+ <a name="facing" val="west"/>
+ </comp>
+ <comp lib="1" loc="(1160,160)" name="NOT Gate">
+ <a name="facing" val="north"/>
+ <a name="size" val="20"/>
+ </comp>
+ <comp lib="1" loc="(1170,130)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(1180,560)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="1" loc="(1280,560)" name="Controlled Buffer">
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="2" loc="(770,330)" name="Demultiplexer">
+ <a name="width" val="15"/>
+ </comp>
+ <comp lib="4" loc="(640,310)" name="Register">
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="label" val="MAR"/>
+ <a name="showInTab" val="true"/>
+ <a name="trigger" val="high"/>
+ <a name="width" val="16"/>
+ </comp>
+ <comp lib="4" loc="(860,480)" name="RAM">
+ <a name="addrWidth" val="15"/>
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="dataWidth" val="16"/>
+ <a name="label" val="MEM_RAM"/>
+ <a name="labelvisible" val="true"/>
+ <a name="trigger" val="high"/>
+ </comp>
+ <comp lib="4" loc="(860,70)" name="ROM">
+ <a name="addrWidth" val="15"/>
+ <a name="appearance" val="logisim_evolution"/>
+ <a name="contents">addr/data: 15 16
+4203 5200 8000 420a 4414 29b 4802 2900
+38c0 cb 441e 4812 29a 6500 4202 f000
+4201 f000
+</a>
+ <a name="dataWidth" val="16"/>
+ <a name="label" val="MEM_ROM"/>
+ <a name="labelvisible" val="true"/>
+ </comp>
+ <comp lib="8" loc="(540,650)" name="Text">
+ <a name="font" val="SansSerif plain 16"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="ROM = 0000 - 7FFF"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <comp lib="8" loc="(540,680)" name="Text">
+ <a name="font" val="SansSerif plain 16"/>
+ <a name="halign" val="left"/>
+ <a name="text" val="RAM = 8000 - FFFF"/>
+ <a name="valign" val="center"/>
+ </comp>
+ <wire from="(1100,130)" to="(1150,130)"/>
+ <wire from="(1100,560)" to="(1160,560)"/>
+ <wire from="(1160,140)" to="(1160,160)"/>
+ <wire from="(1160,180)" to="(1160,200)"/>
+ <wire from="(1170,130)" to="(1240,130)"/>
+ <wire from="(1180,560)" to="(1240,560)"/>
+ <wire from="(1240,130)" to="(1240,560)"/>
+ <wire from="(1240,560)" to="(1260,560)"/>
+ <wire from="(1270,570)" to="(1270,590)"/>
+ <wire from="(1280,560)" to="(1320,560)"/>
+ <wire from="(510,340)" to="(530,340)"/>
+ <wire from="(530,340)" to="(530,560)"/>
+ <wire from="(530,340)" to="(640,340)"/>
+ <wire from="(530,560)" to="(860,560)"/>
+ <wire from="(620,390)" to="(630,390)"/>
+ <wire from="(630,380)" to="(630,390)"/>
+ <wire from="(630,380)" to="(640,380)"/>
+ <wire from="(670,400)" to="(670,410)"/>
+ <wire from="(720,330)" to="(720,380)"/>
+ <wire from="(720,380)" to="(760,380)"/>
+ <wire from="(740,330)" to="(770,330)"/>
+ <wire from="(760,380)" to="(760,390)"/>
+ <wire from="(760,380)" to="(790,380)"/>
+ <wire from="(790,350)" to="(790,380)"/>
+ <wire from="(800,320)" to="(830,320)"/>
+ <wire from="(800,340)" to="(860,340)"/>
+ <wire from="(830,520)" to="(840,520)"/>
+ <wire from="(830,80)" to="(830,320)"/>
+ <wire from="(830,80)" to="(860,80)"/>
+ <wire from="(840,520)" to="(840,530)"/>
+ <wire from="(840,530)" to="(860,530)"/>
+ <wire from="(860,340)" to="(860,490)"/>
+ </circuit>
+</project>
diff --git a/src/assembler.py b/src/assembler.py
new file mode 100755
index 0000000..9e2d92f
--- /dev/null
+++ b/src/assembler.py
@@ -0,0 +1,263 @@
+#!/usr/bin/env python3
+# Assemble ATK16 assembly to bytecode
+
+import sys
+
+if len(sys.argv) != 3:
+ print("usage: assembler.py <infile> <outfile> # read from file")
+ print(" assembler.py - <outfile> # read from stdin")
+ sys.exit(1)
+
+infile_path = sys.argv[1]
+outfile_path = sys.argv[2]
+
+src = ""
+if (infile_path == "-"):
+ for line in sys.stdin:
+ src += line
+else:
+ with open(infile_path, "r") as f:
+ src = f.read()
+
+src_lines = src.splitlines()
+
+### Utils
+
+def parse(line: str) -> list[str]:
+ depth = 0
+ result = []
+ acc = ""
+ for c in line:
+ if c.isspace() and depth == 0:
+ result.append(acc)
+ acc = ""
+ elif c == "(":
+ depth += 1
+ acc += "("
+ elif c == ")":
+ depth -= 1
+ acc += ")"
+ else:
+ acc += c
+
+ result.append(acc)
+ return list(filter(lambda x: len(x) > 0, result))
+
+def eval_expr(expr: str) -> int:
+ expr = eval_symbol(expr)
+ return eval(expr, labels) # eval as Python expr
+
+def eval_symbol(c: str):
+ if c in labels:
+ return str(labels[c])
+
+ match c:
+ # Registers
+ case "rz": return "0"
+ case "ra": return "1"
+ case "rb": return "2"
+ case "rc": return "3"
+ case "rd": return "4"
+ case "pa": return "5"
+ case "pb": return "6"
+ # ALU instructions
+ case "al_clear": return "0"
+ case "al_b_minus_a": return "1"
+ case "al_a_minus_b": return "2"
+ case "al_a_plus_b": return "3"
+ case "al_a_xor_b": return "4"
+ case "al_a_or_b": return "5"
+ case "al_a_and_b": return "6"
+ case "al_preset": return "7"
+ case "al_logical_shift_right": return "8"
+ case "al_arithmetic_shift_right": return "9"
+ case "al_logical_shift_left": return "10"
+ # ALU flags
+ case "f_carry": return "0"
+ case "f_overflow": return "1"
+ case "f_zero": return "2"
+ case "f_sign": return "3"
+ case _: return c
+
+# 1st pass, gather labels
+
+labels: dict[str, int] = {}
+address = 0
+
+for (lineNo, line) in enumerate(src_lines):
+ line = line.strip()
+ if line == "": continue
+ keyword, *args = line.lower().split()
+ match keyword:
+ case "@address":
+ address = eval(args[0])
+ continue
+ case "@label":
+ labels[args[0]] = address
+ continue
+
+ address += 1
+
+print("labels:", labels)
+
+# 2nd pass
+
+address = 0
+nop = bytearray([0b1000_0000, 0])
+result = bytearray()
+# initially one nop
+result.extend(nop)
+
+for (lineNo, line) in enumerate(src_lines):
+ line = line.split(";")[0].strip()
+ if line == "": continue
+ keyword, *args = parse(line.lower())
+ match keyword:
+ # Directives
+ case "@address":
+ address = eval_expr(args[0])
+ continue
+ case "@label":
+ continue
+
+ # Instructions
+ case "alu":
+ word = (0b0000 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6) + \
+ (eval_expr(args[2]) << 3) + \
+ (eval_expr(args[3]) << 0)
+ case "als":
+ word = (0b0001 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6) + \
+ (eval_expr(args[2]) << 3) + \
+ (eval_expr(args[3]) << 0)
+ case "ldr":
+ word = (0b0010 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6)
+ case "str":
+ word = (0b0011 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6)
+ case "ldi":
+ word = (0b0100 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 0)
+ case "jmp":
+ word = (0b0101 << 12) + \
+ (eval_expr(args[0]) << 9)
+ case "br":
+ word = (0b0110 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6)
+ case "hlt":
+ word = 0b1111 << 12
+
+ # Pseudoinstructions
+ case "add":
+ word = (0b0000 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6) + \
+ (eval_expr(args[2]) << 3) + \
+ (eval_expr("al_a_plus_b") << 0)
+ case "sub":
+ word = (0b0000 << 12) + \
+ (eval_expr(args[0]) << 9) + \
+ (eval_expr(args[1]) << 6) + \
+ (eval_expr(args[2]) << 3) + \
+ (eval_expr("al_a_minus_b") << 0)
+ case "mov":
+ word = (0b0000 << 12) + \
+ (eval_expr("rz") << 9) + \
+ (eval_expr(args[0]) << 6) + \
+ (eval_expr(args[1]) << 3) + \
+ (eval_expr("al_a_plus_b") << 0)
+
+ # Default case: evaluate as is (e.g. data word)
+ case _:
+ try:
+ word = eval_expr(keyword)
+ except:
+ raise Exception(f"Invalid assembly at {infile_path}:{lineNo + 1}\n\n{line}")
+
+ if len(result) < 2 * address + 1:
+ result.extend((2 * address + 1 - len(result)) * nop)
+
+ print(f"{address:>08x} 0x{word:>04x} {line}")
+ result[2 * address + 0] = ((word >> 8) & 0xff)
+ result[2 * address + 1] = ((word >> 0) & 0xff)
+ address += 1
+
+with open(outfile_path, "wb") as f:
+ f.write(result)
+
+print(f"Wrote {len(result)} bytes to {outfile_path}")
+
+with open(f"{outfile_path}.logisim.txt", "w") as f:
+ f.write("v2.0 raw\n")
+ run_length = 0
+ run_last = ""
+ for i in range(len(result) // 2):
+ b0 = result[2 * i + 0]
+ b1 = result[2 * i + 1]
+ word = f"{b0:>02x}{b1:>02x}\n"
+
+ if word != run_last and run_length <= 1:
+ f.write(f"{run_last}")
+ run_length = 1
+ run_last = word
+ elif word != run_last and run_length > 1:
+ f.write(f"{run_length}*{run_last}")
+ run_length = 1
+ run_last = word
+ else:
+ run_length += 1
+
+ if run_length <= 1:
+ f.write(f"{run_last}")
+ else:
+ f.write(f"{run_length}*{run_last}")
+
+print(f"Wrote Logisim image format to {outfile_path}.logisim.txt")
+
+with open(f"{outfile_path}.ver.txt", "w") as f:
+ f.write("addr/data: 15 16")
+ run_length = 0
+ run_last = ""
+ written = -1
+
+ def update_layout():
+ if run_last == "": return
+ if written % 8 == 0:
+ f.write("\n")
+ else:
+ f.write(" ")
+
+ for i in range(len(result) // 2):
+ b0 = result[2 * i + 0]
+ b1 = result[2 * i + 1]
+ word = f"{b0:>02x}{b1:>02x}"
+
+ if word != run_last and run_length <= 1:
+ f.write(f"{run_last}")
+ run_length = 1
+ run_last = word
+ written += 1
+ update_layout()
+ elif word != run_last and run_length > 1:
+ f.write(f"{run_length}*{run_last}")
+ run_length = 1
+ run_last = word
+ written += 1
+ update_layout()
+ else:
+ run_length += 1
+
+ if run_length <= 1:
+ f.write(f"{run_last}")
+ else:
+ f.write(f"{run_length}*{run_last}")
+
+print(f"Wrote verification test format to {outfile_path}.ver.txt")
diff --git a/src/test.atk16 b/src/test.atk16
new file mode 100644
index 0000000..399bd7e
--- /dev/null
+++ b/src/test.atk16
@@ -0,0 +1,33 @@
+; Program: sum two values and store the result in RAM
+
+; ROM (and program execution) starts at offset 0x0
+@address 0x0
+ ldi RA program
+ jmp RA
+
+@label ram_offset
+ 0x8000 ; store ram offset for later memory access
+
+@label program
+ ldi RA 10 ; RA := 10
+ ldi RB 20 ; RB := 10
+ add RA RB RC ; RC := RA + RB
+ ldi RD ram_offset ; store address of ram_offset in RD
+ ldr RD RD ; dereference ram_offset address
+@label debug
+ str RD RC ; store RC in RAM
+
+; Check that 10 + 20 = 30
+ mov RC RA ; RA := result of sum
+ ldi RB 30 ; RB := 30
+ ldi RD success
+ sub RA RB RC ; RC := RA - RB
+ br f_zero RD ; if result is zero, jump to success
+
+ ldi RA 2 ; RA := 2 to signal failure
+ hlt
+
+; Else
+@label success
+ ldi RA 1 ; RA := 1 to signal success
+ hlt
diff --git a/src/test_alu.py b/src/test_alu.py
new file mode 100755
index 0000000..af30443
--- /dev/null
+++ b/src/test_alu.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+
+from test_utils import *
+
+def make_alu_table() -> str:
+ alu = ALU()
+ n = 10000
+ alu.generate_cases(n)
+ alu.process()
+ print(f"[test] running {n} ALU test cases")
+ return alu.to_table().strip()
+
+class ALU(TestGroup):
+ def __init__(self):
+ TestGroup.__init__(self, [
+ Param("A", 0x0, 0xffff),
+ Param("B", 0x0, 0xffff),
+ Param("S", 0, 7),
+ ], [
+ "Y",
+ "FLAGS",
+ ])
+
+ def process(self):
+ new_cases = []
+ for kase in self.cases:
+ S = kase["S"]
+ A = kase["A"]
+ B = kase["B"]
+ kase["FLAGS"] = "x"
+
+ match S:
+ case 0: Y = 0
+ case 1: Y = (B - A) & 0xFFFF
+ case 2: Y = (A - B) & 0xFFFF
+ case 3: Y = (A + B) & 0xFFFF
+ case 4: Y = (A ^ B) & 0xFFFF
+ case 5: Y = (A | B) & 0xFFFF
+ case 6: Y = (A & B) & 0xFFFF
+ case 7: Y = 0xffff
+
+ kase["Y"] = Y
+ new_cases.append(kase)
+
+ self.cases = new_cases
+
+table = make_alu_table()
+run_test("ALU", table)
diff --git a/src/test_utils.py b/src/test_utils.py
new file mode 100644
index 0000000..1db23b2
--- /dev/null
+++ b/src/test_utils.py
@@ -0,0 +1,93 @@
+import random
+from dataclasses import dataclass
+import tempfile
+import sys
+import os
+
+def make_test_file(name: str, table: str) -> str:
+ return f"""<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes/>
+ <visualElements>
+ <visualElement>
+ <elementName>Testcase</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>{name}</string>
+ </entry>
+ <entry>
+ <string>Testdata</string>
+ <testData>
+ <dataString>{table}</dataString>
+ </testData>
+ </entry>
+ </elementAttributes>
+ <pos x="200" y="200"/>
+ </visualElement>
+ </visualElements>
+ <wires/>
+ <measurementOrdering/>
+</circuit>
+ """
+
+@dataclass
+class Param:
+ name: str
+ min: int
+ max: int
+
+class TestGroup:
+ def __init__(self, inputs: list[Param], outputs: list[str]):
+ self.inputs = inputs
+ self.outputs = outputs
+ self.cases = []
+
+ def generate_cases(self, n = 1000):
+ for _ in range(n):
+ result = {}
+ for param in self.inputs:
+ val = random.randrange(param.min, param.max + 1)
+ result[param.name] = val
+
+ self.cases.append(result)
+
+ def process(self):
+ raise NotImplemented()
+
+ def to_table(self) -> str:
+ names: list[str] = []
+ for param in self.inputs:
+ names.append(param.name)
+ for output in self.outputs:
+ names.append(output)
+
+ ret = " ".join(names)
+ ret += "\n"
+
+ for case in self.cases:
+ row_vals = []
+ for param_name in names:
+ row_vals.append(str(case[param_name]))
+
+ ret += " ".join(row_vals)
+ ret += "\n"
+
+ return ret
+
+def run_test(name: str, table: str):
+ if len(sys.argv) != 2:
+ print(f"usage: {sys.argv[0]} <circuit.dig>")
+ sys.exit(1)
+
+ circuit_path = sys.argv[1]
+ _, test_path = tempfile.mkstemp(".dig")
+
+ fc = make_test_file(name, table)
+ with open(test_path, "w") as f:
+ f.write(fc)
+
+ stream = os.popen(f"make run-single-test circ={circuit_path} tests={test_path}")
+ output = stream.read()
+ print(output)
diff --git a/src/ucode.py b/src/ucode.py
new file mode 100755
index 0000000..ea5c040
--- /dev/null
+++ b/src/ucode.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python3
+# Generate .bin file with ATK16 CPU microcode
+
+# Addressed by OOOO BUUU
+# where O = opcode, B = branch flag, U = microsequencer value
+
+import sys
+
+if len(sys.argv) != 2:
+ print("usage: ucode.py <outfile.bin>")
+ sys.exit(1)
+
+outfile_path = sys.argv[1]
+
+PC_CO = 0b0000_0000_0000_0001
+PC_IE = 0b0000_0000_0000_0010
+PC_OE = 0b0000_0000_0000_0100
+MAR_IE = 0b0000_0000_0000_1000
+RAM_IE = 0b0000_0000_0001_0000
+RAM_OE = 0b0000_0000_0010_0000
+R1_IE = 0b0000_0000_0100_0000
+R1_OE = 0b0000_0000_1000_0000
+R2_IE = 0b0000_0001_0000_0000
+R2_OE = 0b0000_0010_0000_0000
+IR_IE = 0b0000_0100_0000_0000
+L9_OE = 0b0000_1000_0000_0000
+L12_OE = 0b0001_0000_0000_0000
+ALU_OE = 0b0010_0000_0000_0000
+HALT = 0b0100_0000_0000_0000
+US_RS = 0b1000_0000_0000_0000
+
+BRANCH_FLAG_STATES_N = 2
+UCODE_N = 2**3
+CONTROL_WORD_SIZE = 2
+
+def not_branch(bs):
+ return BRANCH_FLAG_STATES_N * [bs]
+
+def branch(false_branch, true_branch):
+ return [false_branch, true_branch]
+
+fetch = [PC_OE|MAR_IE, RAM_OE|IR_IE|PC_CO]
+
+def nop():
+ return not_branch([*fetch, US_RS, 0, 0, 0, 0, 0])
+
+ucode = [
+ # ALU 0000 LLLR RRTT TSSS
+ not_branch([*fetch, ALU_OE, US_RS, 0, 0, 0, 0]),
+ # ALS 0001 LLLR RRTT TSSS
+ not_branch([*fetch, ALU_OE, US_RS, 0, 0, 0, 0]),
+ # LDR 0010 RRRT TTXX XXXX
+ not_branch([*fetch, R1_OE|MAR_IE, RAM_OE|R2_IE, US_RS, 0, 0, 0]),
+ # STR 0011 RRRT TTXX XXXX
+ not_branch([*fetch, R1_OE|MAR_IE, R2_OE|RAM_IE, US_RS, 0, 0, 0]),
+ # LDI 0100 RRRI IIII IIII
+ not_branch([*fetch, L9_OE|R1_IE, US_RS, 0, 0, 0, 0]),
+ # JMP 0101 RRRX XXXX XXXX
+ not_branch([*fetch, R1_OE|PC_IE, US_RS, 0, 0, 0, 0]),
+ # BR 0110 XFFR RRXX XXXX
+ branch([*fetch, US_RS, 0, 0, 0, 0, 0],
+ [*fetch, R2_OE|PC_IE, US_RS, 0, 0, 0, 0]),
+ # NOP 0111 XXXX XXXX XXXX
+ nop(),
+ # NOP 1000 XXXX XXXX XXXX
+ nop(),
+ # NOP 1001 XXXX XXXX XXXX
+ nop(),
+ # NOP 1010 XXXX XXXX XXXX
+ nop(),
+ # NOP 1011 XXXX XXXX XXXX
+ nop(),
+ # NOP 1100 XXXX XXXX XXXX
+ nop(),
+ # NOP 1101 XXXX XXXX XXXX
+ nop(),
+ # NOP 1110 XXXX XXXX XXXX
+ nop(),
+ # HLT 1111 XXXX XXXX XXXX
+ not_branch([*fetch, HALT, 0, 0, 0, 0, 0]),
+]
+
+INST_N = len(ucode)
+TOTAL_BYTEARRAY_SIZE = INST_N * BRANCH_FLAG_STATES_N * UCODE_N * CONTROL_WORD_SIZE
+
+res_b = bytearray(TOTAL_BYTEARRAY_SIZE)
+
+for i in range(INST_N):
+ for j in range(BRANCH_FLAG_STATES_N):
+ for k in range(UCODE_N):
+ for l in range(CONTROL_WORD_SIZE):
+ idx = l + \
+ k * CONTROL_WORD_SIZE + \
+ j * CONTROL_WORD_SIZE * UCODE_N + \
+ i * CONTROL_WORD_SIZE * UCODE_N * BRANCH_FLAG_STATES_N
+ cword = ucode[i][j][k]
+ assert len(ucode[i][j]) == 8
+ cbyte = (cword >> (8 * (CONTROL_WORD_SIZE - l - 1))) & 0xff
+ print(f"inst: {i:>04b}, idx: {idx:>04x}, cbyte: {cbyte:>08b}")
+ res_b[idx] = cbyte
+
+with open(outfile_path, "wb") as f:
+ f.write(res_b)