aboutsummaryrefslogtreecommitdiffstats
path: root/digital-diagrams/atk16_ppu.dig
diff options
context:
space:
mode:
Diffstat (limited to 'digital-diagrams/atk16_ppu.dig')
-rw-r--r--digital-diagrams/atk16_ppu.dig827
1 files changed, 827 insertions, 0 deletions
diff --git a/digital-diagrams/atk16_ppu.dig b/digital-diagrams/atk16_ppu.dig
new file mode 100644
index 0000000..e6e7608
--- /dev/null
+++ b/digital-diagrams/atk16_ppu.dig
@@ -0,0 +1,827 @@
+<?xml version="1.0" encoding="utf-8"?>
+<circuit>
+ <version>2</version>
+ <attributes>
+ <entry>
+ <string>romContent</string>
+ <romList>
+ <roms/>
+ </romList>
+ </entry>
+ <entry>
+ <string>Width</string>
+ <int>7</int>
+ </entry>
+ </attributes>
+ <visualElements>
+ <visualElement>
+ <elementName>RAMDualPort</elementName>
+ <elementAttributes>
+ <entry>
+ <string>AddrBits</string>
+ <int>7</int>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>SPRITE MEM</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-220" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>8 bits tile pattern index
+10 bits Y position
+10 bits X position
+1 bit H flip
+1 bit V flip
+1 bit behind background? (priority)
+1 bit palette select
+= total 4 bytes per sprite
+x 64 sprites
+= 128 words</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-500" y="-540"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>2**7 selector addresses for
+sprite mem, starting from 0x0800</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-400" y="140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MMIO_IE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>MMIO_OE</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-380" 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="-240" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>MMI/O selector</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>MMIO_S</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>13</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-360" y="40"/>
+ </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="-240" y="-120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>SMEMBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-240" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>13</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>11,1,1</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-340" y="40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>And</elementName>
+ <elementAttributes>
+ <entry>
+ <string>inverterConfig</string>
+ <inverterConfig>
+ <string>In_2</string>
+ </inverterConfig>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>SM_QUERY</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-120" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Bits</string>
+ <int>11</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="300"/>
+ </visualElement>
+ <visualElement>
+ <elementName>RAMDualPort</elementName>
+ <elementAttributes>
+ <entry>
+ <string>AddrBits</string>
+ <int>9</int>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>SCAN BUFFER</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="80" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>X</string>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>mirror</string>
+ <boolean>true</boolean>
+ </entry>
+ <entry>
+ <string>Input Splitting</string>
+ <string>4</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>1*4</string>
+ </entry>
+ </elementAttributes>
+ <pos x="180" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>atk16_ppu_palette.dig</elementName>
+ <elementAttributes/>
+ <pos x="260" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1,1</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1,1</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Splitter</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Input Splitting</string>
+ <string>1,1</string>
+ </entry>
+ <entry>
+ <string>Output Splitting</string>
+ <string>2</string>
+ </entry>
+ </elementAttributes>
+ <pos x="380" y="-120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PR</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="-200"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PG</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PB</string>
+ </entry>
+ </elementAttributes>
+ <pos x="420" y="-120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>4</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-20" y="-160"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="0" y="-140"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Counter</elementName>
+ <elementAttributes/>
+ <pos x="-60" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PCLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-60" y="-80"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes/>
+ <pos x="-80" y="-120"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes/>
+ <pos x="-80" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>TODO</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-280" y="20"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>SMEMBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-100" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Ground</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>7</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-80" y="60"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Text</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>TODO: 8x8x4 tile pattern memory</string>
+ </entry>
+ </elementAttributes>
+ <pos x="80" y="-460"/>
+ </visualElement>
+ <visualElement>
+ <elementName>VDD</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="1"/>
+ </entry>
+ </elementAttributes>
+ <pos x="60" y="-100"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Probe</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>SCAN BUF</string>
+ </entry>
+ </elementAttributes>
+ <pos x="160" y="-40"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>PR</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>2</int>
+ </entry>
+ </elementAttributes>
+ <pos x="600" y="-260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>PG</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>2</int>
+ </entry>
+ </elementAttributes>
+ <pos x="600" y="-220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Out</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Label</string>
+ <string>PB</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>2</int>
+ </entry>
+ </elementAttributes>
+ <pos x="600" y="-180"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PB</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>PR</string>
+ </entry>
+ </elementAttributes>
+ <pos x="580" y="-260"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>rotation</string>
+ <rotation rotation="2"/>
+ </entry>
+ <entry>
+ <string>NetName</string>
+ <string>PG</string>
+ </entry>
+ </elementAttributes>
+ <pos x="580" y="-220"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Pixel clock</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>PCLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>PCLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="280"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>CPU clock</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>CLK</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="320"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>DBUS</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Data bus</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>DBUS</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>16</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="240"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>X pixel</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>X</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>9</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="380"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>X</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="380"/>
+ </visualElement>
+ <visualElement>
+ <elementName>In</elementName>
+ <elementAttributes>
+ <entry>
+ <string>Description</string>
+ <string>Y pixel</string>
+ </entry>
+ <entry>
+ <string>Label</string>
+ <string>Y</string>
+ </entry>
+ <entry>
+ <string>Bits</string>
+ <int>8</int>
+ </entry>
+ </elementAttributes>
+ <pos x="-440" y="420"/>
+ </visualElement>
+ <visualElement>
+ <elementName>Tunnel</elementName>
+ <elementAttributes>
+ <entry>
+ <string>NetName</string>
+ <string>Y</string>
+ </entry>
+ </elementAttributes>
+ <pos x="-420" y="420"/>
+ </visualElement>
+ </visualElements>
+ <wires>
+ <wire>
+ <p1 x="-440" y="320"/>
+ <p2 x="-420" y="320"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-260"/>
+ <p2 x="600" y="-260"/>
+ </wire>
+ <wire>
+ <p1 x="-380" y="-100"/>
+ <p2 x="-220" y="-100"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="-100"/>
+ <p2 x="80" y="-100"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-100"/>
+ <p2 x="-60" y="-100"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="100"/>
+ <p2 x="-300" y="100"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="420"/>
+ <p2 x="-420" y="420"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-200"/>
+ <p2 x="260" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="-200"/>
+ <p2 x="420" y="-200"/>
+ </wire>
+ <wire>
+ <p1 x="-360" y="40"/>
+ <p2 x="-340" y="40"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="-140"/>
+ <p2 x="-220" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="140" y="-140"/>
+ <p2 x="160" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-140"/>
+ <p2 x="260" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="-140"/>
+ <p2 x="80" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="-140"/>
+ <p2 x="180" y="-140"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="-80"/>
+ <p2 x="-220" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="0" y="-80"/>
+ <p2 x="20" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="240"/>
+ <p2 x="-420" y="240"/>
+ </wire>
+ <wire>
+ <p1 x="60" y="-180"/>
+ <p2 x="80" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-180"/>
+ <p2 x="260" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-180"/>
+ <p2 x="600" y="-180"/>
+ </wire>
+ <wire>
+ <p1 x="-240" y="-120"/>
+ <p2 x="-220" y="-120"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="-120"/>
+ <p2 x="420" y="-120"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="-120"/>
+ <p2 x="80" y="-120"/>
+ </wire>
+ <wire>
+ <p1 x="-120" y="280"/>
+ <p2 x="-100" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="280"/>
+ <p2 x="-420" y="280"/>
+ </wire>
+ <wire>
+ <p1 x="580" y="-220"/>
+ <p2 x="600" y="-220"/>
+ </wire>
+ <wire>
+ <p1 x="-380" y="-60"/>
+ <p2 x="-220" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-60"/>
+ <p2 x="-60" y="-60"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="60"/>
+ <p2 x="-280" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="60"/>
+ <p2 x="-80" y="60"/>
+ </wire>
+ <wire>
+ <p1 x="-440" y="380"/>
+ <p2 x="-420" y="380"/>
+ </wire>
+ <wire>
+ <p1 x="200" y="-160"/>
+ <p2 x="260" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="400" y="-160"/>
+ <p2 x="420" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="-20" y="-160"/>
+ <p2 x="80" y="-160"/>
+ </wire>
+ <wire>
+ <p1 x="160" y="-140"/>
+ <p2 x="160" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-100" y="280"/>
+ <p2 x="-100" y="300"/>
+ </wire>
+ <wire>
+ <p1 x="20" y="-120"/>
+ <p2 x="20" y="-80"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-120"/>
+ <p2 x="-80" y="-100"/>
+ </wire>
+ <wire>
+ <p1 x="-80" y="-60"/>
+ <p2 x="-80" y="-40"/>
+ </wire>
+ <wire>
+ <p1 x="-320" y="80"/>
+ <p2 x="-320" y="100"/>
+ </wire>
+ </wires>
+ <measurementOrdering/>
+</circuit> \ No newline at end of file