aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--asm/bootstrap.atk1625
-rw-r--r--asm/idle_loop.atk1610
-rw-r--r--digital/atk16.dig996
-rw-r--r--digital/atk16_mem.dig780
-rw-r--r--digital/atk16_mem_mux.dig276
5 files changed, 1594 insertions, 493 deletions
diff --git a/asm/bootstrap.atk16 b/asm/bootstrap.atk16
index 73165b9..29ed0ea 100644
--- a/asm/bootstrap.atk16
+++ b/asm/bootstrap.atk16
@@ -1,16 +1,33 @@
@let stack_segment 0x8000
@let vector_table 0x10
+@let terminal_addr 0xE000
+@let keyboard_addr 0xE001
@address vector_table
- hlt_isr ; 0x10 ISR0
- hlt_isr ; 0x11 ISR1
- hlt_isr ; 0x12 ISR2
- hlt_isr ; 0x13 ISR3
+ hlt_isr ; 0x10 ISR0
+ hlt_isr ; 0x11 ISR1
+ hlt_isr ; 0x12 ISR2
+ keyboard_isr ; 0x13 ISR3 (keyboard)
stack_segment ; 0x14 Stack address
0x0 ; 0x15 Interrupt PC address (IPCA)
+ terminal_addr ; 0x16 Terminal peripheral address
+ keyboard_addr ; 0x17 Keyboard peripheral address
@label hlt_isr
ldi 0x55 RE
+ hlt
+
+@label keyboard_isr
+ spu RA ; use RA, RB
+ spu RB
+ ldi 0x17 RA ; RA := 0x17 Keyboard peripheral address pointer
+ ldr RA RA ; RA := 0xE001 Keyboard peripheral address deref
+ ldr RA RA ; RA := <16-bit keyboard character code> from MMIO register
+ ldi 0x16 RB ; RB := 0x16 Terminal peripheral address pointer
+ ldr RB RB ; RB := 0xE000 Terminal peripheral address deref
+ str RA RB ; terminal <- character code
+ spo RB ; restore RA, RB
+ spo RA
rti
@label program_segment
diff --git a/asm/idle_loop.atk16 b/asm/idle_loop.atk16
new file mode 100644
index 0000000..442923c
--- /dev/null
+++ b/asm/idle_loop.atk16
@@ -0,0 +1,10 @@
+@opt stack_pointer RF
+@opt csr_scratch RH
+@use ext_std:*
+
+; bootstrap code (must be called to setup mandatory data)
+; will jump to label main
+@include bootstrap
+
+@label main
+ jpi main
diff --git a/digital/atk16.dig b/digital/atk16.dig
index d1787ab..c2b1cf3 100644
--- a/digital/atk16.dig
+++ b/digital/atk16.dig
@@ -119,36 +119,13 @@
</visualElement>
<visualElement>
<elementName>atk16_mem.dig</elementName>
- <elementAttributes/>
- <pos x="580" y="-220"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
- <elementAttributes>
- <entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>MEM_IE</string>
- </entry>
- </elementAttributes>
- <pos x="580" y="-180"/>
- </visualElement>
- <visualElement>
- <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
- </entry>
- <entry>
- <string>NetName</string>
- <string>MEM_OE</string>
+ <string>Label</string>
+ <string>MEMORY</string>
</entry>
</elementAttributes>
- <pos x="580" y="-160"/>
+ <pos x="580" y="-220"/>
</visualElement>
<visualElement>
<elementName>atk16_jump_unit.dig</elementName>
@@ -224,7 +201,7 @@ program(0x4051, 0x40a2, 0x029b)
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[12]/elementAttributes/entry/rotation"/>
+ <rotation reference="../../../../visualElement[10]/elementAttributes/entry/rotation"/>
</entry>
</elementAttributes>
<pos x="740" y="740"/>
@@ -242,7 +219,7 @@ program(0x4051, 0x40a2, 0x029b)
</entry>
<entry>
<string>Frequency</string>
- <int>15</int>
+ <int>100</int>
</entry>
</elementAttributes>
<pos x="660" y="-340"/>
@@ -1276,9 +1253,49 @@ program(0x4051, 0x40a2, 0x029b)
<pos x="440" y="220"/>
</visualElement>
<visualElement>
- <elementName>Keyboard</elementName>
+ <elementName>RS_FF_AS</elementName>
<elementAttributes/>
- <pos x="-220" y="460"/>
+ <pos x="-120" y="380"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-60" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[102]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[102]/elementAttributes/entry/rotation"/>
+ </entry>
+ </elementAttributes>
+ <pos x="-60" y="360"/>
+ </visualElement>
+ <visualElement>
+ <elementName>LED</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ </elementAttributes>
+ <pos x="220" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1292,22 +1309,135 @@ program(0x4051, 0x40a2, 0x029b)
<string>CLK</string>
</entry>
</elementAttributes>
- <pos x="-240" y="460"/>
+ <pos x="560" y="-180"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="1"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_IE</string>
</entry>
</elementAttributes>
- <pos x="-240" y="480"/>
+ <pos x="560" y="-160"/>
</visualElement>
<visualElement>
- <elementName>RS_FF_AS</elementName>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="560" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="200" y="-280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Comparator</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-260" y="560"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Const</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Value</string>
+ <long>0</long>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
<elementAttributes/>
- <pos x="-120" y="380"/>
+ <pos x="-160" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Terminal</elementName>
+ <elementAttributes/>
+ <pos x="-60" y="560"/>
+ </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="-60" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-80" y="540"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-180" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_S</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="560"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
@@ -1321,47 +1451,153 @@ program(0x4051, 0x40a2, 0x029b)
<string>IM_DS</string>
</entry>
</elementAttributes>
- <pos x="-160" y="400"/>
+ <pos x="-140" y="400"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="1"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>IRQ0</string>
</entry>
</elementAttributes>
- <pos x="-60" y="320"/>
+ <pos x="-140" y="380"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Keyboard</elementName>
+ <elementAttributes/>
+ <pos x="-40" y="700"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>IRQ0</string>
+ </entry>
+ </elementAttributes>
+ <pos x="40" y="720"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="100" y="700"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[108]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="-40" y="340"/>
+ <pos x="-40" y="700"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Comparator</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-300" y="680"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Const</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-320" y="700"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes/>
+ <pos x="-200" y="700"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[108]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_OE</string>
</entry>
</elementAttributes>
- <pos x="-60" y="360"/>
+ <pos x="-220" y="740"/>
</visualElement>
<visualElement>
- <elementName>LED</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="3"/>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_S</string>
</entry>
</elementAttributes>
- <pos x="220" y="360"/>
+ <pos x="-320" y="680"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Probe</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MMIO_S</string>
+ </entry>
+ </elementAttributes>
+ <pos x="780" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="-220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="740" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_S</string>
+ </entry>
+ </elementAttributes>
+ <pos x="760" y="-180"/>
</visualElement>
</visualElements>
<wires>
@@ -1390,18 +1626,6 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="60" y="0"/>
</wire>
<wire>
- <p1 x="420" y="320"/>
- <p2 x="440" y="320"/>
- </wire>
- <wire>
- <p1 x="240" y="320"/>
- <p2 x="260" y="320"/>
- </wire>
- <wire>
- <p1 x="-60" y="320"/>
- <p2 x="-20" y="320"/>
- </wire>
- <wire>
<p1 x="-260" y="260"/>
<p2 x="-220" y="260"/>
</wire>
@@ -1422,76 +1646,324 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="80" y="260"/>
</wire>
<wire>
- <p1 x="380" y="-200"/>
- <p2 x="400" y="-200"/>
+ <p1 x="420" y="520"/>
+ <p2 x="440" y="520"/>
</wire>
<wire>
- <p1 x="480" y="-200"/>
- <p2 x="580" y="-200"/>
+ <p1 x="560" y="-140"/>
+ <p2 x="580" y="-140"/>
</wire>
<wire>
- <p1 x="-380" y="-200"/>
- <p2 x="-360" y="-200"/>
+ <p1 x="740" y="-140"/>
+ <p2 x="780" y="-140"/>
</wire>
<wire>
- <p1 x="-460" y="-200"/>
- <p2 x="-440" y="-200"/>
+ <p1 x="-580" y="-140"/>
+ <p2 x="-280" y="-140"/>
</wire>
<wire>
- <p1 x="-160" y="200"/>
- <p2 x="-140" y="200"/>
+ <p1 x="300" y="-140"/>
+ <p2 x="400" y="-140"/>
</wire>
<wire>
- <p1 x="-240" y="200"/>
- <p2 x="-200" y="200"/>
+ <p1 x="280" y="-140"/>
+ <p2 x="300" y="-140"/>
</wire>
<wire>
- <p1 x="60" y="200"/>
- <p2 x="80" y="200"/>
+ <p1 x="20" y="-140"/>
+ <p2 x="280" y="-140"/>
</wire>
<wire>
- <p1 x="200" y="200"/>
- <p2 x="220" y="200"/>
+ <p1 x="400" y="-140"/>
+ <p2 x="480" y="-140"/>
</wire>
<wire>
- <p1 x="420" y="200"/>
- <p2 x="440" y="200"/>
+ <p1 x="-280" y="-140"/>
+ <p2 x="20" y="-140"/>
</wire>
<wire>
- <p1 x="420" y="520"/>
- <p2 x="440" y="520"/>
+ <p1 x="420" y="400"/>
+ <p2 x="440" y="400"/>
</wire>
<wire>
- <p1 x="-580" y="-140"/>
- <p2 x="-280" y="-140"/>
+ <p1 x="-140" y="400"/>
+ <p2 x="-120" y="400"/>
</wire>
<wire>
- <p1 x="300" y="-140"/>
- <p2 x="400" y="-140"/>
+ <p1 x="-280" y="-20"/>
+ <p2 x="-260" y="-20"/>
</wire>
<wire>
- <p1 x="280" y="-140"/>
- <p2 x="300" y="-140"/>
+ <p1 x="-160" y="-20"/>
+ <p2 x="60" y="-20"/>
</wire>
<wire>
- <p1 x="20" y="-140"/>
- <p2 x="280" y="-140"/>
+ <p1 x="180" y="-20"/>
+ <p2 x="320" y="-20"/>
</wire>
<wire>
- <p1 x="400" y="-140"/>
- <p2 x="480" y="-140"/>
+ <p1 x="460" y="-20"/>
+ <p2 x="500" y="-20"/>
</wire>
<wire>
- <p1 x="-280" y="-140"/>
- <p2 x="20" y="-140"/>
+ <p1 x="600" y="-20"/>
+ <p2 x="700" y="-20"/>
</wire>
<wire>
- <p1 x="420" y="460"/>
- <p2 x="440" y="460"/>
+ <p1 x="320" y="-20"/>
+ <p2 x="360" y="-20"/>
+ </wire>
+ <wire>
+ <p1 x="680" y="20"/>
+ <p2 x="700" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="80" y="-280"/>
+ <p2 x="100" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="-280"/>
+ <p2 x="200" y="-280"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="280"/>
+ <p2 x="520" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="320" y="280"/>
+ <p2 x="340" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="280"/>
+ <p2 x="80" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="540"/>
+ <p2 x="440" y="540"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="-160"/>
+ <p2 x="580" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="700" y="800"/>
+ <p2 x="720" y="800"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="160"/>
+ <p2 x="260" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="160"/>
+ <p2 x="440" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="420"/>
+ <p2 x="440" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="40" y="-40"/>
+ <p2 x="60" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-40"/>
+ <p2 x="-140" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-40"/>
+ <p2 x="360" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="-40"/>
+ <p2 x="620" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="460" y="-40"/>
+ <p2 x="500" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="660" y="-40"/>
+ <p2 x="680" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="680"/>
+ <p2 x="-300" y="680"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="300"/>
+ <p2 x="440" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="240" y="300"/>
+ <p2 x="260" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="300"/>
+ <p2 x="80" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="560"/>
+ <p2 x="440" y="560"/>
+ </wire>
+ <wire>
+ <p1 x="340" y="560"/>
+ <p2 x="400" y="560"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="560"/>
+ <p2 x="-60" y="560"/>
</wire>
<wire>
- <p1 x="-240" y="460"/>
- <p2 x="-220" y="460"/>
+ <p1 x="-280" y="560"/>
+ <p2 x="-260" y="560"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="-180"/>
+ <p2 x="20" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="560" y="-180"/>
+ <p2 x="580" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="720" y="-180"/>
+ <p2 x="740" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="740" y="-180"/>
+ <p2 x="760" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="180"/>
+ <p2 x="-140" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="180"/>
+ <p2 x="-60" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="180"/>
+ <p2 x="80" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="180"/>
+ <p2 x="240" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="180"/>
+ <p2 x="440" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="-440"/>
+ <p2 x="240" y="-440"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="440"/>
+ <p2 x="440" y="440"/>
+ </wire>
+ <wire>
+ <p1 x="-280" y="-60"/>
+ <p2 x="-260" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-60"/>
+ <p2 x="-100" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="-60"/>
+ <p2 x="-420" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="-60"/>
+ <p2 x="60" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="60"/>
+ <p2 x="180" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="60"/>
+ <p2 x="480" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="700"/>
+ <p2 x="-300" y="700"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="700"/>
+ <p2 x="-200" y="700"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="700"/>
+ <p2 x="100" y="700"/>
+ </wire>
+ <wire>
+ <p1 x="180" y="-320"/>
+ <p2 x="240" y="-320"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="320"/>
+ <p2 x="440" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="240" y="320"/>
+ <p2 x="260" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="-60" y="320"/>
+ <p2 x="-20" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="-280" y="580"/>
+ <p2 x="-260" y="580"/>
+ </wire>
+ <wire>
+ <p1 x="-200" y="580"/>
+ <p2 x="-160" y="580"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="-200"/>
+ <p2 x="400" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-380" y="-200"/>
+ <p2 x="-360" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-460" y="-200"/>
+ <p2 x="-440" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="480" y="-200"/>
+ <p2 x="580" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="720" y="-200"/>
+ <p2 x="740" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="200"/>
+ <p2 x="-140" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="200"/>
+ <p2 x="-200" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="200"/>
+ <p2 x="80" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="200"/>
+ <p2 x="220" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="200"/>
+ <p2 x="440" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="460"/>
+ <p2 x="440" y="460"/>
</wire>
<wire>
<p1 x="-420" y="-80"/>
@@ -1534,36 +2006,12 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="200" y="80"/>
</wire>
<wire>
- <p1 x="420" y="400"/>
- <p2 x="440" y="400"/>
+ <p1 x="20" y="720"/>
+ <p2 x="40" y="720"/>
</wire>
<wire>
- <p1 x="-160" y="400"/>
- <p2 x="-120" y="400"/>
- </wire>
- <wire>
- <p1 x="-280" y="-20"/>
- <p2 x="-260" y="-20"/>
- </wire>
- <wire>
- <p1 x="-160" y="-20"/>
- <p2 x="60" y="-20"/>
- </wire>
- <wire>
- <p1 x="180" y="-20"/>
- <p2 x="320" y="-20"/>
- </wire>
- <wire>
- <p1 x="460" y="-20"/>
- <p2 x="500" y="-20"/>
- </wire>
- <wire>
- <p1 x="600" y="-20"/>
- <p2 x="700" y="-20"/>
- </wire>
- <wire>
- <p1 x="320" y="-20"/>
- <p2 x="360" y="-20"/>
+ <p1 x="-140" y="720"/>
+ <p2 x="-40" y="720"/>
</wire>
<wire>
<p1 x="-240" y="-340"/>
@@ -1578,10 +2026,6 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="700" y="-340"/>
</wire>
<wire>
- <p1 x="680" y="20"/>
- <p2 x="700" y="20"/>
- </wire>
- <wire>
<p1 x="420" y="340"/>
<p2 x="440" y="340"/>
</wire>
@@ -1590,24 +2034,8 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="-20" y="340"/>
</wire>
<wire>
- <p1 x="80" y="-280"/>
- <p2 x="100" y="-280"/>
- </wire>
- <wire>
- <p1 x="420" y="280"/>
- <p2 x="520" y="280"/>
- </wire>
- <wire>
- <p1 x="320" y="280"/>
- <p2 x="340" y="280"/>
- </wire>
- <wire>
- <p1 x="60" y="280"/>
- <p2 x="80" y="280"/>
- </wire>
- <wire>
- <p1 x="460" y="-220"/>
- <p2 x="580" y="-220"/>
+ <p1 x="-100" y="600"/>
+ <p2 x="-60" y="600"/>
</wire>
<wire>
<p1 x="-240" y="-220"/>
@@ -1630,6 +2058,14 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="-400" y="-220"/>
</wire>
<wire>
+ <p1 x="460" y="-220"/>
+ <p2 x="580" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="720" y="-220"/>
+ <p2 x="740" y="-220"/>
+ </wire>
+ <wire>
<p1 x="-160" y="220"/>
<p2 x="-140" y="220"/>
</wire>
@@ -1650,34 +2086,10 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="220" y="220"/>
</wire>
<wire>
- <p1 x="420" y="540"/>
- <p2 x="440" y="540"/>
- </wire>
- <wire>
- <p1 x="700" y="800"/>
- <p2 x="720" y="800"/>
- </wire>
- <wire>
<p1 x="420" y="480"/>
<p2 x="440" y="480"/>
</wire>
<wire>
- <p1 x="-240" y="480"/>
- <p2 x="-220" y="480"/>
- </wire>
- <wire>
- <p1 x="-160" y="480"/>
- <p2 x="-140" y="480"/>
- </wire>
- <wire>
- <p1 x="220" y="160"/>
- <p2 x="260" y="160"/>
- </wire>
- <wire>
- <p1 x="420" y="160"/>
- <p2 x="440" y="160"/>
- </wire>
- <wire>
<p1 x="20" y="-100"/>
<p2 x="60" y="-100"/>
</wire>
@@ -1718,32 +2130,8 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="740" y="740"/>
</wire>
<wire>
- <p1 x="420" y="420"/>
- <p2 x="440" y="420"/>
- </wire>
- <wire>
- <p1 x="40" y="-40"/>
- <p2 x="60" y="-40"/>
- </wire>
- <wire>
- <p1 x="-160" y="-40"/>
- <p2 x="-140" y="-40"/>
- </wire>
- <wire>
- <p1 x="200" y="-40"/>
- <p2 x="360" y="-40"/>
- </wire>
- <wire>
- <p1 x="600" y="-40"/>
- <p2 x="620" y="-40"/>
- </wire>
- <wire>
- <p1 x="460" y="-40"/>
- <p2 x="500" y="-40"/>
- </wire>
- <wire>
- <p1 x="660" y="-40"/>
- <p2 x="680" y="-40"/>
+ <p1 x="-220" y="740"/>
+ <p2 x="-200" y="740"/>
</wire>
<wire>
<p1 x="420" y="360"/>
@@ -1754,16 +2142,8 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="-20" y="360"/>
</wire>
<wire>
- <p1 x="420" y="300"/>
- <p2 x="440" y="300"/>
- </wire>
- <wire>
- <p1 x="240" y="300"/>
- <p2 x="260" y="300"/>
- </wire>
- <wire>
- <p1 x="60" y="300"/>
- <p2 x="80" y="300"/>
+ <p1 x="-180" y="620"/>
+ <p2 x="-160" y="620"/>
</wire>
<wire>
<p1 x="-280" y="-240"/>
@@ -1790,14 +2170,6 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="400" y="-240"/>
</wire>
<wire>
- <p1 x="420" y="560"/>
- <p2 x="440" y="560"/>
- </wire>
- <wire>
- <p1 x="340" y="560"/>
- <p2 x="400" y="560"/>
- </wire>
- <wire>
<p1 x="240" y="240"/>
<p2 x="260" y="240"/>
</wire>
@@ -1814,116 +2186,128 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="80" y="240"/>
</wire>
<wire>
- <p1 x="0" y="-180"/>
- <p2 x="20" y="-180"/>
+ <p1 x="420" y="500"/>
+ <p2 x="440" y="500"/>
</wire>
<wire>
- <p1 x="-160" y="180"/>
- <p2 x="-140" y="180"/>
+ <p1 x="100" y="-380"/>
+ <p2 x="240" y="-380"/>
</wire>
<wire>
- <p1 x="-80" y="180"/>
- <p2 x="-60" y="180"/>
+ <p1 x="680" y="-380"/>
+ <p2 x="700" y="-380"/>
</wire>
<wire>
- <p1 x="60" y="180"/>
- <p2 x="80" y="180"/>
+ <p1 x="420" y="380"/>
+ <p2 x="440" y="380"/>
</wire>
<wire>
- <p1 x="200" y="180"/>
- <p2 x="240" y="180"/>
+ <p1 x="-60" y="380"/>
+ <p2 x="-20" y="380"/>
</wire>
<wire>
- <p1 x="420" y="180"/>
- <p2 x="440" y="180"/>
+ <p1 x="-140" y="380"/>
+ <p2 x="-120" y="380"/>
</wire>
<wire>
- <p1 x="420" y="500"/>
- <p2 x="440" y="500"/>
+ <p1 x="320" y="-100"/>
+ <p2 x="320" y="-20"/>
</wire>
<wire>
- <p1 x="220" y="-440"/>
- <p2 x="240" y="-440"/>
+ <p1 x="640" y="-80"/>
+ <p2 x="640" y="-60"/>
</wire>
<wire>
- <p1 x="420" y="440"/>
- <p2 x="440" y="440"/>
+ <p1 x="0" y="260"/>
+ <p2 x="0" y="320"/>
</wire>
<wire>
- <p1 x="-280" y="-60"/>
- <p2 x="-260" y="-60"/>
+ <p1 x="-580" y="-140"/>
+ <p2 x="-580" y="-100"/>
</wire>
<wire>
- <p1 x="-160" y="-60"/>
- <p2 x="-100" y="-60"/>
+ <p1 x="200" y="-100"/>
+ <p2 x="200" y="-40"/>
</wire>
<wire>
- <p1 x="-440" y="-60"/>
- <p2 x="-420" y="-60"/>
+ <p1 x="200" y="60"/>
+ <p2 x="200" y="80"/>
</wire>
<wire>
- <p1 x="-100" y="-60"/>
- <p2 x="60" y="-60"/>
+ <p1 x="-140" y="-40"/>
+ <p2 x="-140" y="80"/>
</wire>
<wire>
- <p1 x="100" y="-380"/>
- <p2 x="240" y="-380"/>
+ <p1 x="-140" y="-100"/>
+ <p2 x="-140" y="-80"/>
</wire>
<wire>
- <p1 x="680" y="-380"/>
- <p2 x="700" y="-380"/>
+ <p1 x="140" y="-220"/>
+ <p2 x="140" y="-200"/>
</wire>
<wire>
- <p1 x="20" y="60"/>
- <p2 x="180" y="60"/>
+ <p1 x="-80" y="540"/>
+ <p2 x="-80" y="560"/>
</wire>
<wire>
- <p1 x="200" y="60"/>
- <p2 x="480" y="60"/>
+ <p1 x="400" y="-140"/>
+ <p2 x="400" y="-100"/>
</wire>
<wire>
- <p1 x="420" y="380"/>
- <p2 x="440" y="380"/>
+ <p1 x="-20" y="240"/>
+ <p2 x="-20" y="260"/>
</wire>
<wire>
- <p1 x="-140" y="380"/>
- <p2 x="-120" y="380"/>
+ <p1 x="20" y="-140"/>
+ <p2 x="20" y="-100"/>
</wire>
<wire>
- <p1 x="-60" y="380"/>
- <p2 x="-20" y="380"/>
+ <p1 x="20" y="0"/>
+ <p2 x="20" y="60"/>
</wire>
<wire>
- <p1 x="180" y="-320"/>
- <p2 x="240" y="-320"/>
+ <p1 x="340" y="280"/>
+ <p2 x="340" y="560"/>
</wire>
<wire>
- <p1 x="320" y="-100"/>
- <p2 x="320" y="-20"/>
+ <p1 x="-280" y="-240"/>
+ <p2 x="-280" y="-220"/>
</wire>
<wire>
- <p1 x="640" y="-80"/>
- <p2 x="640" y="-60"/>
+ <p1 x="-280" y="-140"/>
+ <p2 x="-280" y="-80"/>
</wire>
<wire>
- <p1 x="0" y="260"/>
- <p2 x="0" y="320"/>
+ <p1 x="-280" y="-220"/>
+ <p2 x="-280" y="-140"/>
</wire>
<wire>
- <p1 x="480" y="-200"/>
- <p2 x="480" y="-140"/>
+ <p1 x="280" y="-140"/>
+ <p2 x="280" y="-100"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="160"/>
+ <p2 x="220" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="220"/>
+ <p2 x="220" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="220"/>
+ <p2 x="-160" y="240"/>
</wire>
<wire>
<p1 x="480" y="0"/>
<p2 x="480" y="60"/>
</wire>
<wire>
- <p1 x="480" y="-140"/>
- <p2 x="480" y="-100"/>
+ <p1 x="480" y="-200"/>
+ <p2 x="480" y="-140"/>
</wire>
<wire>
- <p1 x="-580" y="-140"/>
- <p2 x="-580" y="-100"/>
+ <p1 x="480" y="-140"/>
+ <p2 x="480" y="-100"/>
</wire>
<wire>
<p1 x="-100" y="-80"/>
@@ -1942,12 +2326,8 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="100" y="-240"/>
</wire>
<wire>
- <p1 x="200" y="-100"/>
- <p2 x="200" y="-40"/>
- </wire>
- <wire>
- <p1 x="200" y="60"/>
- <p2 x="200" y="80"/>
+ <p1 x="740" y="-180"/>
+ <p2 x="740" y="-140"/>
</wire>
<wire>
<p1 x="680" y="20"/>
@@ -1962,22 +2342,6 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="680" y="-340"/>
</wire>
<wire>
- <p1 x="-140" y="-40"/>
- <p2 x="-140" y="80"/>
- </wire>
- <wire>
- <p1 x="-140" y="-100"/>
- <p2 x="-140" y="-80"/>
- </wire>
- <wire>
- <p1 x="-140" y="380"/>
- <p2 x="-140" y="480"/>
- </wire>
- <wire>
- <p1 x="140" y="-220"/>
- <p2 x="140" y="-200"/>
- </wire>
- <wire>
<p1 x="300" y="-240"/>
<p2 x="300" y="-140"/>
</wire>
@@ -1986,30 +2350,10 @@ program(0x4051, 0x40a2, 0x029b)
<p2 x="-240" y="-220"/>
</wire>
<wire>
- <p1 x="400" y="-140"/>
- <p2 x="400" y="-100"/>
- </wire>
- <wire>
<p1 x="240" y="180"/>
<p2 x="240" y="240"/>
</wire>
<wire>
- <p1 x="-20" y="240"/>
- <p2 x="-20" y="260"/>
- </wire>
- <wire>
- <p1 x="20" y="-140"/>
- <p2 x="20" y="-100"/>
- </wire>
- <wire>
- <p1 x="20" y="0"/>
- <p2 x="20" y="60"/>
- </wire>
- <wire>
- <p1 x="340" y="280"/>
- <p2 x="340" y="560"/>
- </wire>
- <wire>
<p1 x="180" y="-80"/>
<p2 x="180" y="-20"/>
</wire>
@@ -2019,40 +2363,16 @@ program(0x4051, 0x40a2, 0x029b)
</wire>
<wire>
<p1 x="180" y="-320"/>
- <p2 x="180" y="-240"/>
+ <p2 x="180" y="-280"/>
</wire>
<wire>
- <p1 x="-280" y="-240"/>
- <p2 x="-280" y="-220"/>
- </wire>
- <wire>
- <p1 x="-280" y="-140"/>
- <p2 x="-280" y="-80"/>
- </wire>
- <wire>
- <p1 x="-280" y="-220"/>
- <p2 x="-280" y="-140"/>
- </wire>
- <wire>
- <p1 x="280" y="-140"/>
- <p2 x="280" y="-100"/>
+ <p1 x="180" y="-280"/>
+ <p2 x="180" y="-240"/>
</wire>
<wire>
<p1 x="-60" y="180"/>
<p2 x="-60" y="240"/>
</wire>
- <wire>
- <p1 x="220" y="160"/>
- <p2 x="220" y="200"/>
- </wire>
- <wire>
- <p1 x="220" y="220"/>
- <p2 x="220" y="360"/>
- </wire>
- <wire>
- <p1 x="-160" y="220"/>
- <p2 x="-160" y="240"/>
- </wire>
</wires>
<measurementOrdering/>
</circuit> \ No newline at end of file
diff --git a/digital/atk16_mem.dig b/digital/atk16_mem.dig
index 540e64d..0c217b9 100644
--- a/digital/atk16_mem.dig
+++ b/digital/atk16_mem.dig
@@ -10,122 +10,194 @@
</entry>
<entry>
<string>Width</string>
- <int>5</int>
+ <int>7</int>
</entry>
</attributes>
<visualElements>
<visualElement>
- <elementName>RAMAsync</elementName>
+ <elementName>EEPROM</elementName>
<elementAttributes>
<entry>
<string>AddrBits</string>
<int>15</int>
</entry>
<entry>
+ <string>isProgramMemory</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
<string>Label</string>
- <string>MEM_RAM</string>
+ <string>MEM_ROM</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
+ <entry>
+ <string>Data</string>
+ <data>4014,2a00,6026,13*8000,18,18,18,1a,8000,0,e000,e001,4855,f000
+,3140,1b48,3148,1b48,4017,2000,2000,4216,2240,3040,1b49,2340,1b49
+,2140,e000,61ff</data>
+ </entry>
</elementAttributes>
- <pos x="680" y="280"/>
+ <pos x="740" y="100"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Ground</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="2"/>
+ <rotation rotation="1"/>
</entry>
+ </elementAttributes>
+ <pos x="720" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
<entry>
- <string>NetName</string>
- <string>MEM_IE</string>
+ <string>rotation</string>
+ <rotation rotation="1"/>
</entry>
</elementAttributes>
- <pos x="680" y="320"/>
+ <pos x="720" y="120"/>
</visualElement>
<visualElement>
- <elementName>EEPROM</elementName>
+ <elementName>VDD</elementName>
<elementAttributes>
<entry>
- <string>AddrBits</string>
- <int>15</int>
+ <string>rotation</string>
+ <rotation reference="../../../../visualElement[3]/elementAttributes/entry/rotation"/>
</entry>
+ </elementAttributes>
+ <pos x="720" y="180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
<entry>
- <string>isProgramMemory</string>
- <boolean>true</boolean>
+ <string>Description</string>
+ <string>Address</string>
</entry>
<entry>
<string>Label</string>
- <string>MEM_ROM</string>
+ <string>ADDR</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
+ </elementAttributes>
+ <pos x="160" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
<entry>
- <string>Data</string>
- <data>4014,2a00,6015,13*8000,4*16,8010,0,4855,e000,400a,9e00,1fe0,3178
-,1b48,6001,f000,3148,1b48,3150,1b48,1011,860a,3158,1b48,4200,4401
-,650,1280,14c0,1009,8408,61fa,1b49,2540,1b49,2340,1b49,2f40,51c0
-,10c0,1b49,2740,1b49,2540,1b49,2340,1b49,2f40,51c0</data>
+ <string>Input Splitting</string>
+ <string>16</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>13,1,1,1</string>
</entry>
</elementAttributes>
- <pos x="740" y="100"/>
+ <pos x="220" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_mem_mux.dig</elementName>
+ <elementAttributes/>
+ <pos x="320" y="160"/>
</visualElement>
<visualElement>
<elementName>Splitter</elementName>
<elementAttributes>
<entry>
<string>Input Splitting</string>
- <string>16</string>
+ <string>13,1,1</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>15</string>
+ </entry>
+ </elementAttributes>
+ <pos x="320" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1,1</string>
</entry>
<entry>
<string>Output Splitting</string>
- <string>15,1</string>
+ <string>2</string>
</entry>
</elementAttributes>
- <pos x="520" y="180"/>
+ <pos x="400" y="160"/>
</visualElement>
<visualElement>
<elementName>Demultiplexer</elementName>
<elementAttributes>
<entry>
+ <string>Selector Bits</string>
+ <int>2</int>
+ </entry>
+ <entry>
<string>Bits</string>
<int>15</int>
</entry>
</elementAttributes>
- <pos x="560" y="160"/>
+ <pos x="420" y="60"/>
</visualElement>
<visualElement>
- <elementName>Ground</elementName>
+ <elementName>Probe</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="1"/>
+ <string>Label</string>
+ <string>ROM_OUT</string>
</entry>
</elementAttributes>
- <pos x="720" y="160"/>
+ <pos x="840" y="100"/>
</visualElement>
<visualElement>
- <elementName>In</elementName>
+ <elementName>Driver</elementName>
<elementAttributes>
<entry>
- <string>Description</string>
- <string>Address</string>
+ <string>Bits</string>
+ <int>16</int>
</entry>
<entry>
- <string>Label</string>
- <string>ADDR</string>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
</entry>
+ </elementAttributes>
+ <pos x="880" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Demultiplexer</elementName>
+ <elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>Selector Bits</string>
+ <int>2</int>
+ </entry>
+ <entry>
+ <string>flipSelPos</string>
+ <boolean>true</boolean>
</entry>
</elementAttributes>
- <pos x="360" y="180"/>
+ <pos x="420" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>RAM_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
@@ -147,83 +219,159 @@
<boolean>true</boolean>
</entry>
</elementAttributes>
- <pos x="360" y="300"/>
+ <pos x="260" y="500"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="2"/>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>RAMDualPort</elementName>
+ <elementAttributes>
+ <entry>
+ <string>AddrBits</string>
+ <int>15</int>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>MEM_RAM</string>
</entry>
<entry>
<string>Bits</string>
<int>16</int>
</entry>
</elementAttributes>
- <pos x="700" y="440"/>
+ <pos x="660" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="360"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="3"/>
+ <rotation rotation="2"/>
</entry>
<entry>
<string>NetName</string>
- <string>MEM_OE</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>RAM_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="640" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Probe</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>RAM_OUT</string>
+ </entry>
+ </elementAttributes>
+ <pos x="760" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Driver</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
</entry>
</elementAttributes>
- <pos x="700" y="480"/>
+ <pos x="860" y="320"/>
</visualElement>
<visualElement>
<elementName>In</elementName>
<elementAttributes>
<entry>
<string>Description</string>
- <string>Memory input enable</string>
+ <string>Clock</string>
</entry>
<entry>
<string>Label</string>
- <string>MEM_IE</string>
+ <string>CLK</string>
</entry>
</elementAttributes>
- <pos x="360" y="420"/>
+ <pos x="160" y="280"/>
</visualElement>
<visualElement>
- <elementName>In</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
<string>Description</string>
- <string>Memory output enable</string>
+ <string>Memory-mapped I/O word input enable</string>
</entry>
<entry>
<string>Label</string>
- <string>MEM_OE</string>
+ <string>MMIO_IE</string>
</entry>
</elementAttributes>
- <pos x="360" y="540"/>
+ <pos x="880" y="540"/>
</visualElement>
<visualElement>
- <elementName>Tunnel</elementName>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
- <string>NetName</string>
- <string>MEM_OE</string>
+ <string>Description</string>
+ <string>Memory-mapped I/O word output enable</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>MMIO_OE</string>
</entry>
</elementAttributes>
- <pos x="380" y="540"/>
+ <pos x="880" y="600"/>
</visualElement>
<visualElement>
<elementName>Tunnel</elementName>
<elementAttributes>
<entry>
<string>NetName</string>
- <string>MEM_IE</string>
+ <string>MMIO_S</string>
</entry>
</elementAttributes>
- <pos x="380" y="420"/>
+ <pos x="260" y="40"/>
</visualElement>
<visualElement>
<elementName>Testcase</elementName>
@@ -231,243 +379,573 @@
<entry>
<string>Testdata</string>
<testData>
- <dataString>ADDR MEM_IE MEM_OE DBUS DBUS_out
+ <dataString>CLK ADDR MEM_IE MEM_OE DBUS DBUS_out
# read ROM
program(0xFF)
-0x0 0 1 Z 0xFF
+C 0x0 0 1 Z 0xFF
# read RAM
memory MEM_RAM(0x0)=0x55;
-0 0 0 Z X
-0x8000 0 1 Z 0x55
+C 0 0 0 Z X
+C 0x8000 0 1 Z 0x55
# write to RAM
-0x8000 1 0 0xAA 0xAA
-0x8000 0 1 Z 0xAA
+C 0x8000 1 0 0xAA 0xAA
+C 0x8000 0 1 Z 0xAA
</dataString>
</testData>
</entry>
</elementAttributes>
- <pos x="940" y="340"/>
+ <pos x="540" y="480"/>
</visualElement>
<visualElement>
- <elementName>Driver</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>Description</string>
+ <string>Memory input enable</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>MEM_IE</string>
</entry>
</elementAttributes>
- <pos x="800" y="300"/>
+ <pos x="160" y="340"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
+ <elementName>In</elementName>
<elementAttributes>
<entry>
- <string>rotation</string>
- <rotation rotation="1"/>
+ <string>Description</string>
+ <string>Memory output enable</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>MEM_OE</string>
</entry>
</elementAttributes>
- <pos x="720" y="120"/>
+ <pos x="260" y="560"/>
</visualElement>
<visualElement>
- <elementName>VDD</elementName>
+ <elementName>And</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation reference="../../../../visualElement[17]/elementAttributes/entry/rotation"/>
+ <rotation rotation="2"/>
</entry>
</elementAttributes>
- <pos x="720" y="180"/>
+ <pos x="960" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>RAM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="960" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="280" y="560"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="960" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="900" y="320"/>
</visualElement>
<visualElement>
- <elementName>DriverInvSel</elementName>
+ <elementName>And</elementName>
<elementAttributes>
<entry>
<string>rotation</string>
- <rotation rotation="3"/>
+ <rotation rotation="2"/>
</entry>
+ </elementAttributes>
+ <pos x="960" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
<entry>
- <string>Bits</string>
- <int>16</int>
+ <string>NetName</string>
+ <string>ROM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="960" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="960" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="920" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="280" y="500"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Decoder</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Selector Bits</string>
+ <int>2</int>
</entry>
<entry>
<string>flipSelPos</string>
<boolean>true</boolean>
</entry>
</elementAttributes>
- <pos x="840" y="180"/>
+ <pos x="460" y="180"/>
</visualElement>
<visualElement>
- <elementName>Probe</elementName>
+ <elementName>Tunnel</elementName>
<elementAttributes>
<entry>
- <string>Label</string>
- <string>ROM_OUT</string>
+ <string>NetName</string>
+ <string>ROM_OE</string>
</entry>
</elementAttributes>
- <pos x="880" y="140"/>
+ <pos x="500" y="180"/>
</visualElement>
<visualElement>
- <elementName>Probe</elementName>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>RAM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="500" y="200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="500" y="220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="480" y="340"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes/>
+ <pos x="780" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="780" y="620"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="780" y="580"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes/>
+ <pos x="780" y="500"/>
+ </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="780" y="540"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="780" y="500"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
<elementAttributes>
<entry>
+ <string>Description</string>
+ <string>Memory-mapped I/O word selector</string>
+ </entry>
+ <entry>
<string>Label</string>
- <string>RAM_OUT</string>
+ <string>MMIO_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
</entry>
</elementAttributes>
- <pos x="900" y="320"/>
+ <pos x="880" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>MMIO_S</string>
+ </entry>
+ </elementAttributes>
+ <pos x="860" y="460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>MEM_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="300" y="360"/>
</visualElement>
</visualElements>
<wires>
<wire>
- <p1 x="600" y="160"/>
- <p2 x="620" y="160"/>
- </wire>
- <wire>
<p1 x="720" y="160"/>
<p2 x="740" y="160"/>
</wire>
<wire>
- <p1 x="760" y="320"/>
+ <p1 x="240" y="160"/>
+ <p2 x="260" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="160"/>
+ <p2 x="400" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="420" y="160"/>
+ <p2 x="440" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="260" y="160"/>
+ <p2 x="320" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="160"/>
+ <p2 x="480" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="460" y="320"/>
+ <p2 x="480" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="640" y="320"/>
+ <p2 x="660" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="720" y="320"/>
+ <p2 x="760" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="880" y="320"/>
<p2 x="900" y="320"/>
</wire>
<wire>
+ <p1 x="760" y="320"/>
+ <p2 x="840" y="320"/>
+ </wire>
+ <wire>
<p1 x="620" y="100"/>
<p2 x="740" y="100"/>
</wire>
<wire>
- <p1 x="360" y="420"/>
- <p2 x="380" y="420"/>
+ <p1 x="260" y="100"/>
+ <p2 x="320" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="100"/>
+ <p2 x="420" y="100"/>
</wire>
<wire>
- <p1 x="540" y="200"/>
- <p2 x="580" y="200"/>
+ <p1 x="860" y="260"/>
+ <p2 x="900" y="260"/>
</wire>
<wire>
- <p1 x="600" y="200"/>
- <p2 x="620" y="200"/>
+ <p1 x="240" y="200"/>
+ <p2 x="320" y="200"/>
</wire>
<wire>
- <p1 x="360" y="300"/>
- <p2 x="520" y="300"/>
+ <p1 x="640" y="360"/>
+ <p2 x="660" y="360"/>
</wire>
<wire>
- <p1 x="820" y="300"/>
- <p2 x="840" y="300"/>
+ <p1 x="280" y="360"/>
+ <p2 x="300" y="360"/>
</wire>
<wire>
- <p1 x="740" y="300"/>
- <p2 x="760" y="300"/>
+ <p1 x="240" y="40"/>
+ <p2 x="260" y="40"/>
</wire>
<wire>
- <p1 x="520" y="300"/>
- <p2 x="680" y="300"/>
+ <p1 x="840" y="520"/>
+ <p2 x="860" y="520"/>
</wire>
<wire>
- <p1 x="760" y="300"/>
- <p2 x="780" y="300"/>
+ <p1 x="640" y="300"/>
+ <p2 x="660" y="300"/>
</wire>
<wire>
<p1 x="800" y="140"/>
<p2 x="840" y="140"/>
</wire>
<wire>
+ <p1 x="160" y="140"/>
+ <p2 x="220" y="140"/>
+ </wire>
+ <wire>
<p1 x="840" y="140"/>
- <p2 x="880" y="140"/>
+ <p2 x="860" y="140"/>
</wire>
<wire>
- <p1 x="640" y="240"/>
- <p2 x="800" y="240"/>
+ <p1 x="860" y="460"/>
+ <p2 x="880" y="460"/>
</wire>
<wire>
- <p1 x="800" y="240"/>
- <p2 x="820" y="240"/>
+ <p1 x="240" y="80"/>
+ <p2 x="320" y="80"/>
</wire>
<wire>
- <p1 x="540" y="180"/>
- <p2 x="560" y="180"/>
+ <p1 x="340" y="80"/>
+ <p2 x="380" y="80"/>
</wire>
<wire>
- <p1 x="360" y="180"/>
- <p2 x="520" y="180"/>
+ <p1 x="460" y="80"/>
+ <p2 x="600" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="260" y="560"/>
+ <p2 x="280" y="560"/>
</wire>
<wire>
<p1 x="720" y="180"/>
<p2 x="740" y="180"/>
</wire>
<wire>
- <p1 x="620" y="280"/>
- <p2 x="680" y="280"/>
+ <p1 x="240" y="180"/>
+ <p2 x="280" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="380" y="180"/>
+ <p2 x="400" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="880" y="180"/>
+ <p2 x="900" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="180"/>
+ <p2 x="320" y="180"/>
</wire>
<wire>
- <p1 x="520" y="440"/>
- <p2 x="680" y="440"/>
+ <p1 x="640" y="340"/>
+ <p2 x="660" y="340"/>
</wire>
<wire>
- <p1 x="720" y="440"/>
- <p2 x="840" y="440"/>
+ <p1 x="160" y="340"/>
+ <p2 x="280" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="460" y="340"/>
+ <p2 x="480" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="340"/>
+ <p2 x="420" y="340"/>
+ </wire>
+ <wire>
+ <p1 x="260" y="500"/>
+ <p2 x="280" y="500"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="280"/>
+ <p2 x="180" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="280"/>
+ <p2 x="660" y="280"/>
</wire>
<wire>
<p1 x="720" y="120"/>
<p2 x="740" y="120"/>
</wire>
<wire>
- <p1 x="580" y="220"/>
- <p2 x="640" y="220"/>
+ <p1 x="280" y="120"/>
+ <p2 x="320" y="120"/>
</wire>
<wire>
- <p1 x="360" y="540"/>
- <p2 x="380" y="540"/>
+ <p1 x="900" y="120"/>
+ <p2 x="920" y="120"/>
</wire>
<wire>
- <p1 x="640" y="220"/>
- <p2 x="640" y="240"/>
+ <p1 x="840" y="600"/>
+ <p2 x="880" y="600"/>
</wire>
<wire>
- <p1 x="800" y="240"/>
- <p2 x="800" y="280"/>
+ <p1 x="460" y="60"/>
+ <p2 x="620" y="60"/>
</wire>
<wire>
- <p1 x="580" y="200"/>
- <p2 x="580" y="220"/>
+ <p1 x="860" y="540"/>
+ <p2 x="880" y="540"/>
</wire>
<wire>
- <p1 x="820" y="180"/>
- <p2 x="820" y="240"/>
+ <p1 x="480" y="160"/>
+ <p2 x="480" y="180"/>
</wire>
<wire>
- <p1 x="520" y="300"/>
- <p2 x="520" y="440"/>
+ <p1 x="260" y="100"/>
+ <p2 x="260" y="160"/>
</wire>
<wire>
- <p1 x="840" y="200"/>
- <p2 x="840" y="300"/>
+ <p1 x="900" y="120"/>
+ <p2 x="900" y="140"/>
</wire>
<wire>
- <p1 x="840" y="140"/>
- <p2 x="840" y="160"/>
+ <p1 x="840" y="100"/>
+ <p2 x="840" y="140"/>
</wire>
<wire>
- <p1 x="840" y="300"/>
- <p2 x="840" y="440"/>
+ <p1 x="620" y="60"/>
+ <p2 x="620" y="100"/>
</wire>
<wire>
- <p1 x="760" y="300"/>
+ <p1 x="240" y="40"/>
+ <p2 x="240" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="240" y="80"/>
+ <p2 x="240" y="140"/>
+ </wire>
+ <wire>
+ <p1 x="880" y="160"/>
+ <p2 x="880" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="120"/>
+ <p2 x="280" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="280" y="340"/>
+ <p2 x="280" y="360"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="140"/>
+ <p2 x="440" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="440" y="160"/>
+ <p2 x="440" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="600" y="80"/>
+ <p2 x="600" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="760" y="280"/>
<p2 x="760" y="320"/>
</wire>
<wire>
- <p1 x="620" y="100"/>
- <p2 x="620" y="160"/>
+ <p1 x="380" y="80"/>
+ <p2 x="380" y="100"/>
</wire>
<wire>
- <p1 x="620" y="200"/>
- <p2 x="620" y="280"/>
+ <p1 x="860" y="520"/>
+ <p2 x="860" y="540"/>
</wire>
<wire>
- <p1 x="700" y="460"/>
- <p2 x="700" y="480"/>
+ <p1 x="860" y="260"/>
+ <p2 x="860" y="300"/>
</wire>
</wires>
<measurementOrdering/>
diff --git a/digital/atk16_mem_mux.dig b/digital/atk16_mem_mux.dig
new file mode 100644
index 0000000..d4be584
--- /dev/null
+++ b/digital/atk16_mem_mux.dig
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes/>
+ <visualElements>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>X</string>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>1</int>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="140"/>
+ </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>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>Y</string>
+ </entry>
+ <entry>
+ <string>Inputs</string>
+ <int>1</int>
+ </entry>
+ </elementAttributes>
+ <pos x="240" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Or</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="140" y="120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>wideShape</string>
+ <boolean>true</boolean>
+ </entry>
+ </elementAttributes>
+ <pos x="20" y="160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>C</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-40" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="3"/>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>B</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>A</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="-20" y="-60"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="-160" y="0"/>
+ <p2 x="20" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="80"/>
+ <p2 x="20" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="160"/>
+ <p2 x="20" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="160"/>
+ <p2 x="140" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="20"/>
+ <p2 x="20" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="20"/>
+ <p2 x="240" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="100"/>
+ <p2 x="120" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="100" y="180"/>
+ <p2 x="120" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="-40" y="40"/>
+ <p2 x="20" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="120"/>
+ <p2 x="20" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="120"/>
+ <p2 x="140" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="200"/>
+ <p2 x="20" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="220" y="140"/>
+ <p2 x="240" y="140"/>
+ </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="20"/>
+ <p2 x="-100" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="-80"/>
+ <p2 x="-100" y="20"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-80"/>
+ <p2 x="-20" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-20"/>
+ <p2 x="-20" y="200"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="200"/>
+ <p2 x="-20" y="220"/>
+ </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="220"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="100"/>
+ <p2 x="120" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="120" y="160"/>
+ <p2 x="120" y="180"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="-100"/>
+ <p2 x="-160" y="0"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="80"/>
+ <p2 x="-160" y="160"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="0"/>
+ <p2 x="-160" y="80"/>
+ </wire>
+ <wire>
+ <p1 x="-160" y="160"/>
+ <p2 x="-160" y="220"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-80"/>
+ <p2 x="-80" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-20"/>
+ <p2 x="-80" y="120"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="120"/>
+ <p2 x="-80" y="220"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file