Files
ywkang 533e699299 IPCQ-DMA co-design HW design doc + fix IPCQ slot BW model
Add hardware design document (docs/ipcq-dma-codesign-hw.md) covering
PE_IPCQ high-level architecture, simulator verification, proposed HW
implementation, and alternatives analysis. Include D2 block diagrams
for baseline and proposed PE architectures.

Fix IPCQ slot-memory bandwidth parameters to match topology.yaml:
SRAM 128→512 GB/s (intrinsic BW, NoC-bottlenecked at 128),
HBM 32→256 GB/s (was per-channel, now per-PE aggregate).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 13:31:02 -07:00

122 lines
44 KiB
XML

<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" data-d2-version="0.7.1" preserveAspectRatio="xMinYMin meet" viewBox="0 0 3287 718" width="4931" height="1077"><svg class="d2-713338305 d2-svg" width="3287" height="718" viewBox="-49 -49 3287 718"><rect x="-49.000000" y="-49.000000" width="3287.000000" height="718.000000" rx="0.000000" fill="#FFFFFF" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
.d2-713338305 .text {
font-family: "d2-713338305-font-regular";
}
@font-face {
font-family: d2-713338305-font-regular;
src: url("data:application/font-woff;base64,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");
}
.d2-713338305 .text-bold {
font-family: "d2-713338305-font-bold";
}
@font-face {
font-family: d2-713338305-font-bold;
src: url("data:application/font-woff;base64,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");
}
.d2-713338305 .text-italic {
font-family: "d2-713338305-font-italic";
}
@font-face {
font-family: d2-713338305-font-italic;
src: url("data:application/font-woff;base64,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");
}]]></style><style type="text/css"><![CDATA[.shape {
shape-rendering: geometricPrecision;
stroke-linejoin: round;
}
.connection {
stroke-linecap: round;
stroke-linejoin: round;
}
.blend {
mix-blend-mode: multiply;
opacity: 0.5;
}
.d2-713338305 .fill-N1{fill:#0A0F25;}
.d2-713338305 .fill-N2{fill:#676C7E;}
.d2-713338305 .fill-N3{fill:#9499AB;}
.d2-713338305 .fill-N4{fill:#CFD2DD;}
.d2-713338305 .fill-N5{fill:#DEE1EB;}
.d2-713338305 .fill-N6{fill:#EEF1F8;}
.d2-713338305 .fill-N7{fill:#FFFFFF;}
.d2-713338305 .fill-B1{fill:#0D32B2;}
.d2-713338305 .fill-B2{fill:#0D32B2;}
.d2-713338305 .fill-B3{fill:#E3E9FD;}
.d2-713338305 .fill-B4{fill:#E3E9FD;}
.d2-713338305 .fill-B5{fill:#EDF0FD;}
.d2-713338305 .fill-B6{fill:#F7F8FE;}
.d2-713338305 .fill-AA2{fill:#4A6FF3;}
.d2-713338305 .fill-AA4{fill:#EDF0FD;}
.d2-713338305 .fill-AA5{fill:#F7F8FE;}
.d2-713338305 .fill-AB4{fill:#EDF0FD;}
.d2-713338305 .fill-AB5{fill:#F7F8FE;}
.d2-713338305 .stroke-N1{stroke:#0A0F25;}
.d2-713338305 .stroke-N2{stroke:#676C7E;}
.d2-713338305 .stroke-N3{stroke:#9499AB;}
.d2-713338305 .stroke-N4{stroke:#CFD2DD;}
.d2-713338305 .stroke-N5{stroke:#DEE1EB;}
.d2-713338305 .stroke-N6{stroke:#EEF1F8;}
.d2-713338305 .stroke-N7{stroke:#FFFFFF;}
.d2-713338305 .stroke-B1{stroke:#0D32B2;}
.d2-713338305 .stroke-B2{stroke:#0D32B2;}
.d2-713338305 .stroke-B3{stroke:#E3E9FD;}
.d2-713338305 .stroke-B4{stroke:#E3E9FD;}
.d2-713338305 .stroke-B5{stroke:#EDF0FD;}
.d2-713338305 .stroke-B6{stroke:#F7F8FE;}
.d2-713338305 .stroke-AA2{stroke:#4A6FF3;}
.d2-713338305 .stroke-AA4{stroke:#EDF0FD;}
.d2-713338305 .stroke-AA5{stroke:#F7F8FE;}
.d2-713338305 .stroke-AB4{stroke:#EDF0FD;}
.d2-713338305 .stroke-AB5{stroke:#F7F8FE;}
.d2-713338305 .background-color-N1{background-color:#0A0F25;}
.d2-713338305 .background-color-N2{background-color:#676C7E;}
.d2-713338305 .background-color-N3{background-color:#9499AB;}
.d2-713338305 .background-color-N4{background-color:#CFD2DD;}
.d2-713338305 .background-color-N5{background-color:#DEE1EB;}
.d2-713338305 .background-color-N6{background-color:#EEF1F8;}
.d2-713338305 .background-color-N7{background-color:#FFFFFF;}
.d2-713338305 .background-color-B1{background-color:#0D32B2;}
.d2-713338305 .background-color-B2{background-color:#0D32B2;}
.d2-713338305 .background-color-B3{background-color:#E3E9FD;}
.d2-713338305 .background-color-B4{background-color:#E3E9FD;}
.d2-713338305 .background-color-B5{background-color:#EDF0FD;}
.d2-713338305 .background-color-B6{background-color:#F7F8FE;}
.d2-713338305 .background-color-AA2{background-color:#4A6FF3;}
.d2-713338305 .background-color-AA4{background-color:#EDF0FD;}
.d2-713338305 .background-color-AA5{background-color:#F7F8FE;}
.d2-713338305 .background-color-AB4{background-color:#EDF0FD;}
.d2-713338305 .background-color-AB5{background-color:#F7F8FE;}
.d2-713338305 .color-N1{color:#0A0F25;}
.d2-713338305 .color-N2{color:#676C7E;}
.d2-713338305 .color-N3{color:#9499AB;}
.d2-713338305 .color-N4{color:#CFD2DD;}
.d2-713338305 .color-N5{color:#DEE1EB;}
.d2-713338305 .color-N6{color:#EEF1F8;}
.d2-713338305 .color-N7{color:#FFFFFF;}
.d2-713338305 .color-B1{color:#0D32B2;}
.d2-713338305 .color-B2{color:#0D32B2;}
.d2-713338305 .color-B3{color:#E3E9FD;}
.d2-713338305 .color-B4{color:#E3E9FD;}
.d2-713338305 .color-B5{color:#EDF0FD;}
.d2-713338305 .color-B6{color:#F7F8FE;}
.d2-713338305 .color-AA2{color:#4A6FF3;}
.d2-713338305 .color-AA4{color:#EDF0FD;}
.d2-713338305 .color-AA5{color:#F7F8FE;}
.d2-713338305 .color-AB4{color:#EDF0FD;}
.d2-713338305 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker-d2-713338305);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker-d2-713338305);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark-d2-713338305);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker-d2-713338305);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark-d2-713338305);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal-d2-713338305);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal-d2-713338305);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright-d2-713338305);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]></style><g class="cGU="><g class="shape" ><rect x="12.000000" y="12.000000" width="2571.000000" height="512.000000" rx="8.000000" stroke="#495057" fill="#f8f9fa" style="stroke-width:2;" /></g><text x="1297.500000" y="45.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:28px">PE</text></g><g class="bm9j"><g class="shape" ><rect x="2658.000000" y="360.000000" width="126.000000" height="160.000000" rx="6.000000" stroke="#6a1b9a" fill="#f3e5f5" style="stroke-width:2;" /></g><text x="2721.000000" y="445.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">NoC Router</text></g><g class="aGJt"><g class="shape" ><rect x="2914.000000" y="84.000000" width="263.000000" height="166.000000" rx="6.000000" stroke="#283593" fill="#e8eaf6" style="stroke-width:2;" /></g><text x="3045.500000" y="117.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:28px">Local HBM</text></g><g class="c3JhbQ=="><g class="shape" ><rect x="2914.000000" y="270.000000" width="263.000000" height="166.000000" rx="6.000000" stroke="#00695c" fill="#e0f7fa" style="stroke-width:2;" /></g><text x="3045.500000" y="303.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:28px">Cube SRAM</text></g><g class="b3RoZXJfcGU="><g class="shape" ><rect x="2914.000000" y="456.000000" width="115.000000" height="66.000000" rx="6.000000" stroke="#6a1b9a" fill="#ede7f6" style="stroke-width:2;" /></g><text x="2971.500000" y="494.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Other PEs</text></g><g class="b3RoZXJfY3ViZQ=="><g class="shape" ><rect x="2914.000000" y="542.000000" width="175.000000" height="66.000000" rx="6.000000" stroke="#6a1b9a" fill="#ede7f6" style="stroke-width:2;" /></g><text x="3001.500000" y="580.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Other Cubes / SIPs</text></g><g class="cGUuY3B1"><g class="shape" ><rect x="62.000000" y="257.000000" width="165.000000" height="80.000000" rx="4.000000" stroke="#1565c0" fill="#bbdefb" style="stroke-width:2;" /></g><text x="144.500000" y="302.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">PE_CPU (control)</text></g><g class="cGUuc2NoZWQ="><g class="shape" ><rect x="540.000000" y="135.000000" width="193.000000" height="66.000000" rx="4.000000" stroke="#1565c0" fill="#bbdefb" style="stroke-width:2;" /></g><text x="636.500000" y="173.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">PE_SCHED (dispatch)</text></g><g class="cGUuaXBjcV9hZGRlZA=="><g class="shape" ><rect x="480.000000" y="264.000000" width="313.000000" height="180.000000" rx="6.000000" stroke="#0277bd" fill="#e1f5fe" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" /></g><text x="636.500000" y="293.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:24px">IPCQ (added)</text></g><g class="cGUuZG1h"><g class="shape" ><rect x="1153.000000" y="217.000000" width="237.000000" height="160.000000" rx="6.000000" stroke="#e65100" fill="#fff3e0" style="stroke-width:2;" /></g><text x="1271.500000" y="302.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">PE_DMA (single FIFO inbox)</text></g><g class="cGUuZnM="><g class="shape" ><rect x="1713.000000" y="220.000000" width="171.000000" height="120.000000" rx="4.000000" stroke="#2e7d32" fill="#c8e6c9" style="stroke-width:2;" /></g><text x="1798.500000" y="285.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">PE_FETCH_STORE</text></g><g class="cGUudGNt"><g class="shape" ><rect x="2270.000000" y="62.000000" width="263.000000" height="166.000000" rx="6.000000" stroke="#c62828" fill="#fce4ec" style="stroke-width:2;" /></g><text x="2401.500000" y="91.000000" fill="#0A0F25" class="text fill-N1" style="text-anchor:middle;font-size:24px">TCM (16MB SRAM)</text></g><g class="cGUuZ2VtbQ=="><g class="shape" ><rect x="2270.000000" y="248.000000" width="140.000000" height="66.000000" rx="4.000000" stroke="#2e7d32" fill="#c8e6c9" style="stroke-width:2;" /></g><text x="2340.000000" y="286.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">GEMM engine</text></g><g class="cGUubWF0aA=="><g class="shape" ><rect x="2270.000000" y="334.000000" width="136.000000" height="66.000000" rx="4.000000" stroke="#2e7d32" fill="#c8e6c9" style="stroke-width:2;" /></g><text x="2338.000000" y="372.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">MATH engine</text></g><g class="cGUuZnBvcnQ="><g class="shape" ><rect x="1520.000000" y="407.000000" width="123.000000" height="66.000000" rx="4.000000" stroke="#e65100" fill="#ffe0b2" style="stroke-width:2;" /></g><text x="1581.500000" y="445.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Fabric Port</text></g><g class="aGJtLmlwY3Ffc2xvdF9oYm0="><g class="shape" ><rect x="2964.000000" y="134.000000" width="163.000000" height="66.000000" rx="3.000000" stroke="#283593" fill="#c5cae9" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" /></g><text x="3045.500000" y="172.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">IPCQ Slot Region</text></g><g class="c3JhbS5pcGNxX3Nsb3Rfc3JhbQ=="><g class="shape" ><rect x="2964.000000" y="320.000000" width="163.000000" height="66.000000" rx="3.000000" stroke="#00695c" fill="#b2dfdb" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" /></g><text x="3045.500000" y="358.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">IPCQ Slot Region</text></g><g class="cGUuaXBjcV9hZGRlZC5pcGNx"><g class="shape" ><rect x="530.000000" y="314.000000" width="213.000000" height="80.000000" rx="4.000000" stroke="#1565c0" fill="#bbdefb" style="stroke-width:2;" /></g><text x="636.500000" y="359.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">PE_IPCQ (control plane)</text></g><g class="cGUudGNtLmlwY3Ffc2xvdA=="><g class="shape" ><rect x="2320.000000" y="112.000000" width="163.000000" height="66.000000" rx="3.000000" stroke="#c62828" fill="#ffcdd2" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" /></g><text x="2401.500000" y="150.500000" fill="#0A0F25" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">IPCQ Slot Region</text></g><g class="cGUuKGNwdSAtJmd0OyBzY2hlZClbMF0="><marker id="mk-d2-713338305-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 229.000000 284.165985 L 257.000000 284.165985 S 267.000000 284.165985 267.000000 274.165985 L 267.000000 178.832993 S 267.000000 168.832993 277.000000 168.832993 L 536.000000 168.832993" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="326.000000" y="174.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">cmd dispatch</text></g><g class="cGUuKGNwdSAtJmd0OyBpcGNxX2FkZGVkLmlwY3EpWzBd"><path d="M 229.000000 310.833008 L 257.000000 310.833008 S 267.000000 310.833008 267.000000 320.833008 L 267.000000 358.165985 S 267.000000 368.165985 277.000000 368.165985 L 526.000000 368.165985" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="350.000000" y="374.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">IpcqRequest</text></g><g class="cGUuKHNjaGVkIC0mZ3Q7IGRtYSlbMF0="><path d="M 735.000000 168.832993 L 1103.000000 168.832993 S 1113.000000 168.832993 1113.000000 178.832993 L 1113.000000 239.500000 S 1113.000000 249.500000 1123.000000 249.500000 L 1149.000000 249.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="983.500000" y="166.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="983.500000" dy="0.000000">TileToken</tspan><tspan x="983.500000" dy="18.500000">(compute port)</tspan></text></g><g class="cGUuKGRtYSAtJmd0OyBmcylbMF0="><path d="M 1392.000000 280.665985 L 1709.000000 280.665985" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="1551.500000" y="286.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">TileToken</text></g><g class="cGUuKGRtYSAmbHQ7LSZndDsgdGNtKVswXQ=="><marker id="mk-d2-713338305-2451250203" markerWidth="10.000000" markerHeight="12.000000" refX="3.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="10.000000,0.000000 0.000000,6.000000 10.000000,12.000000" fill="#0D32B2" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 1394.000000 257.500000 L 1420.000000 257.500000 S 1430.000000 257.500000 1430.000000 247.500000 L 1430.000000 125.000000 S 1430.000000 115.000000 1440.000000 115.000000 L 2266.000000 115.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="1758.500000" y="113.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="1758.500000" dy="0.000000">DMA_READ/WRITE</tspan><tspan x="1758.500000" dy="18.500000">(HBM ↔ TCM)</tspan></text></g><g class="cGUuKGZzICZsdDstJmd0OyB0Y20pWzBd"><path d="M 1888.000000 240.666000 L 1914.000000 240.666000 S 1924.000000 240.666000 1924.000000 230.666000 L 1924.000000 185.000000 S 1924.000000 175.000000 1934.000000 175.000000 L 2266.000000 175.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="2044.000000" y="173.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="2044.000000" dy="0.000000">fetch/store</tspan><tspan x="2044.000000" dy="18.500000">(TCM ↔ reg)</tspan></text></g><g class="cGUuKGZzIC0mZ3Q7IGdlbW0pWzBd"><path d="M 1886.000000 260.665985 L 2225.332993 260.665985 C 2234.667007 260.665985 2225.332993 270.000000 2234.667007 270.000000 L 2266.000000 270.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="2081.500000" y="266.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">TileToken</text></g><g class="cGUuKGZzIC0mZ3Q7IG1hdGgpWzBd"><path d="M 1886.000000 300.665985 L 1964.000000 300.665985 S 1974.000000 300.665985 1974.000000 310.665985 L 1974.000000 346.000000 S 1974.000000 356.000000 1984.000000 356.000000 L 2266.000000 356.000000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="2049.500000" y="362.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">TileToken</text></g><g class="cGUuKGdlbW0gLSZndDsgZnMpWzBd"><path d="M 2268.000000 292.000000 L 2232.750000 292.000000 C 2227.250000 292.000000 2232.750000 297.500000 2227.250000 297.500000 L 2032.417007 297.500000 C 2015.582993 297.500000 2032.417007 280.665985 2015.582993 280.665985 L 1888.000000 280.665985" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="2071.500000" y="303.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">TileToken</text></g><g class="cGUuKG1hdGggLSZndDsgZnMpWzBd"><path d="M 2268.000000 383.500000 L 1934.000000 383.500000 S 1924.000000 383.500000 1924.000000 373.500000 L 1924.000000 330.665985 S 1924.000000 320.665985 1914.000000 320.665985 L 1888.000000 320.665985" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /><text x="2045.500000" y="389.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">TileToken</text></g><g class="cGUuKGlwY3FfYWRkZWQuaXBjcSAtJmd0OyBkbWEpWzBd"><marker id="mk-d2-713338305-1735117424" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#1565c0" class="connection" stroke-width="2" /> </marker><path d="M 745.000000 341.500000 L 828.000000 341.500000 S 838.000000 341.500000 838.000000 331.500000 L 838.000000 329.165985 S 838.000000 319.165985 848.000000 319.165985 L 1149.000000 319.165985" stroke="#1565c0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-1735117424)" mask="url(#d2-713338305)" /><text x="936.500000" y="317.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="936.500000" dy="0.000000">IpcqDmaToken</tspan><tspan x="936.500000" dy="18.500000">(IPCQ port)</tspan></text></g><g class="cGUuKGRtYSAtJmd0OyBpcGNxX2FkZGVkLmlwY3EpWzBd"><path d="M 1151.000000 281.500000 L 1073.000000 281.500000 S 1063.000000 281.500000 1063.000000 271.500000 L 1063.000000 242.832993 S 1063.000000 232.832993 1053.000000 232.832993 L 445.000000 232.832993 S 435.000000 232.832993 435.000000 242.832993 L 435.000000 331.500000 S 435.000000 341.500000 445.000000 341.500000 L 526.000000 341.500000" stroke="#1565c0" fill="none" class="connection" style="stroke-width:2;" marker-end="url(#mk-d2-713338305-1735117424)" mask="url(#d2-713338305)" /><text x="717.000000" y="238.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px">IpcqMetaArrival</text></g><g class="cGUuKGlwY3FfYWRkZWQuaXBjcSAtJmd0OyBkbWEpWzFd"><marker id="mk-d2-713338305-1551563587" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" fill="#7b1fa2" class="connection" stroke-width="2" /> </marker><path d="M 745.000000 368.165985 L 1053.000000 368.165985 S 1063.000000 368.165985 1063.000000 358.165985 L 1063.000000 355.500000 S 1063.000000 345.500000 1073.000000 345.500000 L 1149.000000 345.500000" stroke="#7b1fa2" fill="none" class="connection" style="stroke-width:2;stroke-dasharray:10.000000,9.865639;" marker-end="url(#mk-d2-713338305-1551563587)" mask="url(#d2-713338305)" /><text x="959.500000" y="366.000000" fill="#676C7E" class="text-italic fill-N2" style="text-anchor:middle;font-size:16px"><tspan x="959.500000" dy="0.000000">IpcqCreditMetadata</tspan><tspan x="959.500000" dy="18.500000">(NoC latency charged)</tspan></text></g><g class="cGUuKGRtYSAmbHQ7LSZndDsgZnBvcnQpWzBd"><path d="M 1394.000000 337.500000 L 1420.000000 337.500000 S 1430.000000 337.500000 1430.000000 347.500000 L 1430.000000 430.500000 S 1430.000000 440.500000 1440.000000 440.500000 L 1516.000000 440.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><g class="KHBlLmZwb3J0ICZsdDstJmd0OyBub2MpWzBd"><path d="M 1647.000000 440.500000 L 2654.000000 440.500000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><g class="KG5vYyAmbHQ7LSZndDsgaGJtKVswXQ=="><path d="M 2788.000000 392.500000 L 2814.000000 392.500000 S 2824.000000 392.500000 2824.000000 382.500000 L 2824.000000 177.750000 S 2824.000000 167.750000 2834.000000 167.750000 L 2910.000000 167.750000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><g class="KG5vYyAmbHQ7LSZndDsgc3JhbSlbMF0="><path d="M 2788.000000 424.500000 L 2864.000000 424.500000 S 2874.000000 424.500000 2874.000000 414.500000 L 2874.000000 363.750000 S 2874.000000 353.750000 2884.000000 353.750000 L 2910.000000 353.750000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><g class="KG5vYyAmbHQ7LSZndDsgb3RoZXJfcGUpWzBd"><path d="M 2788.000000 456.500000 L 2864.000000 456.500000 S 2874.000000 456.500000 2874.000000 466.500000 L 2874.000000 479.750000 S 2874.000000 489.750000 2884.000000 489.750000 L 2910.000000 489.750000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><g class="KG5vYyAmbHQ7LSZndDsgb3RoZXJfY3ViZSlbMF0="><path d="M 2788.000000 488.500000 L 2814.000000 488.500000 S 2824.000000 488.500000 2824.000000 498.500000 L 2824.000000 565.750000 S 2824.000000 575.750000 2834.000000 575.750000 L 2910.000000 575.750000" stroke="#0D32B2" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-start="url(#mk-d2-713338305-2451250203)" marker-end="url(#mk-d2-713338305-3488378134)" mask="url(#d2-713338305)" /></g><mask id="d2-713338305" maskUnits="userSpaceOnUse" x="-49" y="-49" width="3287" height="718">
<rect x="-49" y="-49" width="3287" height="718" fill="white"></rect>
<rect x="280.000000" y="158.000000" width="92" height="21" fill="black"></rect>
<rect x="307.000000" y="358.000000" width="86" height="21" fill="black"></rect>
<rect x="933.000000" y="150.000000" width="101" height="37" fill="black"></rect>
<rect x="1518.000000" y="270.000000" width="67" height="21" fill="black"></rect>
<rect x="1697.000000" y="97.000000" width="123" height="37" fill="black"></rect>
<rect x="2004.000000" y="157.000000" width="80" height="37" fill="black"></rect>
<rect x="2048.000000" y="250.000000" width="67" height="21" fill="black"></rect>
<rect x="2016.000000" y="346.000000" width="67" height="21" fill="black"></rect>
<rect x="2038.000000" y="287.000000" width="67" height="21" fill="black"></rect>
<rect x="2012.000000" y="373.000000" width="67" height="21" fill="black"></rect>
<rect x="885.000000" y="301.000000" width="103" height="37" fill="black"></rect>
<rect x="663.000000" y="222.000000" width="108" height="21" fill="black"></rect>
<rect x="885.000000" y="350.000000" width="149" height="37" fill="black"></rect>
</mask></svg></svg>