summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/diagrams/shadercore.drawio359
-rw-r--r--doc/diagrams/systemlevel.drawio393
2 files changed, 752 insertions, 0 deletions
diff --git a/doc/diagrams/shadercore.drawio b/doc/diagrams/shadercore.drawio
new file mode 100644
index 0000000..3a736b6
--- /dev/null
+++ b/doc/diagrams/shadercore.drawio
@@ -0,0 +1,359 @@
+<mxfile host="app.diagrams.net" modified="2024-03-09T19:39:22.318Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="wiLOeqs3MdpZ5lo9C1Iq" version="24.0.4" type="device">
+ <diagram name="Page-1" id="0X3vbdrHx6FdADkMzNYM">
+ <mxGraphModel dx="1505" dy="1479" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-1" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="270" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-2" value="&lt;div&gt;p0: FP/Integer&lt;/div&gt;&lt;div&gt;16 lanes reales&lt;br&gt;&lt;/div&gt;&lt;div&gt;= 4 quads&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="260" y="285" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-3" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="60" y="270" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-110" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-4" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="-80" y="300" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-4" value="&lt;div&gt;p1: Mem coalesce&lt;br&gt;&lt;/div&gt;&lt;div&gt;16 lanes -&amp;gt; 1 burst&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="60" y="285" width="120" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-63" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-5" target="gaYdnUDOfFCHFR6QDy4r-54" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-140" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" target="gaYdnUDOfFCHFR6QDy4r-5" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="310.0000000000002" y="-160" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-5" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="-79" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-6" value="Fetch" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="275" y="-65" width="70" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-7" value="" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="400" y="270" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-8" value="&lt;div&gt;p2: SFU &amp;amp; 1/x&lt;br&gt;&lt;/div&gt;&lt;div&gt;Lanes TBD&lt;/div&gt;&lt;div&gt;Posible: FSM escalar&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="390" y="270" width="140" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-9" target="gaYdnUDOfFCHFR6QDy4r-1" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-9" target="gaYdnUDOfFCHFR6QDy4r-7" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-9" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="170" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-10" value="Issue/dispatch" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="260" y="185" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.533;entryY=-0.02;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-9" target="gaYdnUDOfFCHFR6QDy4r-3" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-22" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="395" y="190" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-23" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="130" y="190" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-25" target="gaYdnUDOfFCHFR6QDy4r-5" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-25" value="" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
+ <mxGeometry x="440" y="-80" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-28" value="&lt;b&gt;valid con abort&lt;br&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="310" y="230" width="90" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-29" value="valid group, insn, 2x 32bit" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="320" y="120" width="140" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-31" value="Runnable group SCFIFO" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="455" y="-65" width="90" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-33" target="gaYdnUDOfFCHFR6QDy4r-25" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-82" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-33" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="690" y="10" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-33" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="630" y="-80" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-35" value="&lt;div&gt;rdreq&lt;br&gt;&lt;/div&gt;&lt;div&gt;group id&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="370" y="-80" width="70" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-36" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="50" y="-80" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-42" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-37" target="gaYdnUDOfFCHFR6QDy4r-5" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-37" value="&lt;div&gt;L1i (&amp;lt;1KiB?)&lt;br&gt;&lt;/div&gt;&lt;div&gt;(indispensable)&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="50" y="-65" width="120" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-47" value="Writeback" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="660" y="-65" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-49" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;curved=1;endArrow=none;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-48" target="gaYdnUDOfFCHFR6QDy4r-25" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-48" value="No debe llenarse jamás" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="430" y="-130" width="80" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-53" value="&lt;div&gt;wrreq&lt;/div&gt;&lt;div&gt;group id&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="570" y="-80" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-64" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-54" target="gaYdnUDOfFCHFR6QDy4r-9" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-54" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="42.5" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-56" value="Decode &amp;amp; read regs" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="285" y="57.5" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-57" value="valid group, insn" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="310" y="-20" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-65" value="hit/miss 32bit" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="180" y="-80" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-84" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="585" y="60" as="sourcePoint" />
+ <mxPoint x="370" y="60" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-70" value="Register file" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="585" y="10" width="165" height="125" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-74" value="&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;512 SGPRs&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;128 VGPRs&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;Cada VGPR es de &amp;lt;lanes&amp;gt;x32 bits&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;Cada SGPR es de 32 bits&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;Indexados por group id&lt;br&gt;&lt;/font&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="gaYdnUDOfFCHFR6QDy4r-70" vertex="1">
+ <mxGeometry x="15" y="10" width="150" height="90" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-86" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="585" y="80" as="sourcePoint" />
+ <mxPoint x="370" y="80" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-87" target="gaYdnUDOfFCHFR6QDy4r-129" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-87" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="560" y="270" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-88" value="&lt;div&gt;p3: Group ops&lt;/div&gt;&lt;div&gt;Voto y consenso&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="570" y="285" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-93" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="460" y="200" as="sourcePoint" />
+ <mxPoint x="620" y="270" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-94" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="560" y="190" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-124" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-95" target="gaYdnUDOfFCHFR6QDy4r-33" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="810" y="412" />
+ <mxPoint x="810" y="-50" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-95" value="Árbitro, &lt;b&gt;siempre&lt;/b&gt; prioriza p0" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="250" y="390" width="430" height="43.45" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-98" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.138;entryY=0.004;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-1" target="gaYdnUDOfFCHFR6QDy4r-95" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-101" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.857;entryY=-0.073;entryDx=0;entryDy=0;entryPerimeter=0;exitX=-0.08;exitY=0.387;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-107" target="gaYdnUDOfFCHFR6QDy4r-95" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-102" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.493;entryY=0.041;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-7" target="gaYdnUDOfFCHFR6QDy4r-95" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-103" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="60" y="381.73" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-106" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-104" target="gaYdnUDOfFCHFR6QDy4r-95" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-104" value="&lt;div&gt;Mem response&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="60" y="396.73" width="120" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="WTEnEo_Mk6_HzpezZbvf-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="gaYdnUDOfFCHFR6QDy4r-107" target="gaYdnUDOfFCHFR6QDy4r-108">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-107" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="620" y="320" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-108" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="460" y="320" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-109" value="&lt;div&gt;ready/valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="190" y="381.73" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-113" value="AXI Ax, W 32bits" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="-65" y="268" width="110" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-114" value="AXI R, B 32bits" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="-55" y="381.73" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-118" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="60" y="411.73" as="targetPoint" />
+ <mxPoint x="-80" y="411.73" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-119" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=-0.03;exitY=0.159;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="-90" y="-60" as="targetPoint" />
+ <mxPoint x="49.999999999999865" y="-60.230000000000246" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-120" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="51.5" y="-40" as="targetPoint" />
+ <mxPoint x="-90" y="-40" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-122" value="AXI-Lite 32bits" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="-55" y="-95" width="100" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-123" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="-80" y="426.73" as="sourcePoint" />
+ <mxPoint x="-90" y="-80" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-125" value="&lt;div&gt;valid&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="300" y="320" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-126" value="Text" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="590" y="80" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="310" y="-160" as="targetPoint" />
+ <mxPoint x="930" y="269.9999999999998" as="sourcePoint" />
+ <Array as="points">
+ <mxPoint x="930" y="-160" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-129" value="&lt;div&gt;PC table&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="860" y="270" width="140" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-151" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" target="gaYdnUDOfFCHFR6QDy4r-141" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1090" y="350" as="sourcePoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-141" value="&lt;div&gt;Lane mask table&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1020" y="270" width="140" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-143" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="750" y="320" as="sourcePoint" />
+ <mxPoint x="750" y="500" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-144" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-107" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="860" y="420" as="sourcePoint" />
+ <mxPoint x="750" y="320" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-145" value="Memoria" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="-170" y="72.5" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-147" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="780" y="350" as="sourcePoint" />
+ <mxPoint x="780" y="300" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-148" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1090" y="350" as="sourcePoint" />
+ <mxPoint x="780" y="350" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-152" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.833;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.455;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="gaYdnUDOfFCHFR6QDy4r-141" target="gaYdnUDOfFCHFR6QDy4r-33" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-153" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="560" y="500" as="sourcePoint" />
+ <mxPoint x="1140" y="500" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-154" value="Scheduler" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="850" y="500" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-155" value="&lt;div&gt;flag que indica terminación (irq?)&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="730" y="426.73" width="140" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-157" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="gaYdnUDOfFCHFR6QDy4r-129" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="930" y="500" as="sourcePoint" />
+ <mxPoint x="980" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-164" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.683;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1120.38" y="420" as="sourcePoint" />
+ <mxPoint x="1120" y="330" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-165" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="930" y="420" as="sourcePoint" />
+ <mxPoint x="1120" y="420" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-166" value="&lt;div&gt;AXI-Lite 32bits&lt;br&gt;&lt;/div&gt;&lt;div&gt;Interfaz de delegación&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="940" y="420" width="120" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-170" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.766;entryY=-0.04;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="530.08" y="-130" as="sourcePoint" />
+ <mxPoint x="530.0000000000001" y="-82.40000000000009" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-171" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="530" y="-130" as="sourcePoint" />
+ <mxPoint x="830" y="-130" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-172" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="830" y="420" as="sourcePoint" />
+ <mxPoint x="830" y="-130" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="gaYdnUDOfFCHFR6QDy4r-173" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="830" y="420" as="sourcePoint" />
+ <mxPoint x="930" y="420" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="NUNQSg8QHiQw5XYEKLLS-2" value="&lt;div&gt;p4: Texture sampling&lt;/div&gt;&lt;div&gt;Dependerá del tiempo&lt;br&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="660" y="171" width="120" height="60" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>
diff --git a/doc/diagrams/systemlevel.drawio b/doc/diagrams/systemlevel.drawio
new file mode 100644
index 0000000..914cbaf
--- /dev/null
+++ b/doc/diagrams/systemlevel.drawio
@@ -0,0 +1,393 @@
+<mxfile host="app.diagrams.net" modified="2024-03-09T19:39:40.597Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="Mm2voV-u_1cDmMAsNbS4" version="24.0.4" type="device">
+ <diagram name="Page-1" id="Q2LszdOE8oD0aeODJamO">
+ <mxGraphModel dx="696" dy="1503" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-2" value="&lt;div&gt;Scheduler core&lt;br&gt;&lt;/div&gt;&lt;div&gt;picorv32&lt;/div&gt;" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
+ <mxGeometry x="262" y="130" width="210" height="210" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-3" value="Shader core" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
+ <mxGeometry x="130" y="130" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-4" value="Shader core" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
+ <mxGeometry x="520" y="130" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-6" value="Shader core" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
+ <mxGeometry x="520" y="260" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-7" value="Shader core" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
+ <mxGeometry x="130" y="260" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-8" value="Boot ROM" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="260" y="510" width="70" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-9" value="Scheduler SRAM" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="370" y="380" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-11" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="360" y="450" as="sourcePoint" />
+ <mxPoint x="360" y="340" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-21" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="230" y="450" as="sourcePoint" />
+ <mxPoint x="360" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-22" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="350" y="450" as="sourcePoint" />
+ <mxPoint x="500" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-23" value="" style="shape=link;html=1;rounded=0;entryX=0.429;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="-E1Ao5R2xKxs-zW9gW03-8" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="290" y="450" as="sourcePoint" />
+ <mxPoint x="475" y="420" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-26" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="500" y="170" as="sourcePoint" />
+ <mxPoint x="500" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-27" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="230" y="170" as="sourcePoint" />
+ <mxPoint x="230" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-28" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="210" y="299.58" as="sourcePoint" />
+ <mxPoint x="230" y="300" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-29" value="" style="shape=link;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="-E1Ao5R2xKxs-zW9gW03-6" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="500" y="300" as="sourcePoint" />
+ <mxPoint x="520" y="289.58" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-30" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="210" y="169.57999999999998" as="sourcePoint" />
+ <mxPoint x="230" y="170" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-31" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="500" y="170" as="sourcePoint" />
+ <mxPoint x="520" y="169.57999999999998" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-33" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.541;entryY=0.013;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="370.39" y="87.27" as="sourcePoint" />
+ <mxPoint x="370" y="130.00000000000003" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-34" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="110" y="90" as="sourcePoint" />
+ <mxPoint x="370" y="90" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-35" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="110" y="300" as="sourcePoint" />
+ <mxPoint x="110" y="90" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-36" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="110" y="300" as="sourcePoint" />
+ <mxPoint x="130" y="300" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-38" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="110" y="170" as="sourcePoint" />
+ <mxPoint x="130" y="170" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-39" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="370" y="90" as="sourcePoint" />
+ <mxPoint x="630" y="90" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-40" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="630" y="300" as="sourcePoint" />
+ <mxPoint x="630" y="90" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-47" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="630" y="170" as="sourcePoint" />
+ <mxPoint x="600" y="170" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-48" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="-E1Ao5R2xKxs-zW9gW03-6" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="670" y="250" as="sourcePoint" />
+ <mxPoint x="630" y="300" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-49" value="irq" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="350" y="52" width="40" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-50" value="&lt;div&gt;AXI-Lite 32bits&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="325" y="460" width="80" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-53" value="&lt;div&gt;Graphics DRAM&lt;/div&gt;&lt;div&gt;Al menos 64MiB&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="110" y="-140" width="520" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-91" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="-E1Ao5R2xKxs-zW9gW03-54" target="-E1Ao5R2xKxs-zW9gW03-62" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-54" value="Display controller (VDC)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="560" y="510" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-55" value="Memory controller" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="100" y="-30" width="530" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-57" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.513;exitY=-0.053;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="-E1Ao5R2xKxs-zW9gW03-55" target="-E1Ao5R2xKxs-zW9gW03-53" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="370" y="-40" as="sourcePoint" />
+ <mxPoint x="430" y="20" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-58" value="&lt;div&gt;32Mx16bit DDR3 en DE1-SoC&lt;br&gt;32Mx16bitx2bancos en DE2i-150&lt;br&gt;&lt;/div&gt;&lt;div&gt;Irrelevante en Verilator&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="370" y="-90" width="200" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-60" value="&lt;div&gt;Tengo la extravagante hipótesis de que es posible obtener un surplus de bandwidth en Cyclone V de esta manera:&lt;/div&gt;&lt;div&gt;- Usar bridge f2s (poco documentado)&lt;/div&gt;&lt;div&gt;- Provocar un hard lock-up intencional en HPS&lt;br&gt;&lt;/div&gt;&lt;div&gt;- Agarrar lock de AXI desde FPGA y nunca soltarlo&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="52" y="-250" width="630" height="70" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-62" value="Video DAC" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="560" y="620" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-65" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="500" y="450" as="sourcePoint" />
+ <mxPoint x="620" y="450" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="-E1Ao5R2xKxs-zW9gW03-66" value="" style="shape=link;html=1;rounded=0;" parent="1" target="-E1Ao5R2xKxs-zW9gW03-54" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="620" y="450" as="sourcePoint" />
+ <mxPoint x="740" y="540" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-5" value="Virtual FIFO" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;direction=south;" parent="1" vertex="1">
+ <mxGeometry x="1055" y="600" width="60" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-6" value="" style="shape=link;html=1;rounded=0;exitX=0.667;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="-E1Ao5R2xKxs-zW9gW03-2" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="405" y="340" as="sourcePoint" />
+ <mxPoint x="400" y="380" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-10" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1005" y="270" width="160" height="290" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="s-TU3r22yMbpCtiJYlU4-1" target="s-TU3r22yMbpCtiJYlU4-2" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-1" value="Triangle setup" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1025" y="307.5" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-26" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="s-TU3r22yMbpCtiJYlU4-2" target="s-TU3r22yMbpCtiJYlU4-3" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-2" value="Coarse" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1025" y="390" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-3" value="Fine" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1025" y="470" width="120" height="70" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-7" value="&lt;div&gt;&quot;Native&quot; 32bits&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="410" y="350" width="80" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="920" y="450" as="sourcePoint" />
+ <mxPoint x="920" y="600" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-8" value="Input assembly" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="860" y="390" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-11" value="Rasterizer" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="1055" y="270" width="60" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-14" value="" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1185" y="270" width="160" height="290" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="s-TU3r22yMbpCtiJYlU4-15" target="s-TU3r22yMbpCtiJYlU4-16" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-15" value="Z-test" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1205" y="350" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-16" value="Blending" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="1205" y="440" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-18" value="Render output (ROP)" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+ <mxGeometry x="1185" y="270" width="160" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-37" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="630" y="-1" as="sourcePoint" />
+ <mxPoint x="730" y="-1" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;shape=link;" parent="1" source="s-TU3r22yMbpCtiJYlU4-40" target="s-TU3r22yMbpCtiJYlU4-58" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-72" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" source="s-TU3r22yMbpCtiJYlU4-40" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="960" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-40" value="Crossbar AXI 1:N" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="730" y="-40" width="190" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-41" value="AXI4*" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="655" y="-32" width="50" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-42" value="&lt;b&gt;Nota: &lt;/b&gt;&quot;AXI4*&quot; es AXI4-Lite + IDs + bursts" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="60" y="-280" width="231" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-51" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="s-TU3r22yMbpCtiJYlU4-44" target="s-TU3r22yMbpCtiJYlU4-11" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-44" value="Virtual FIFO" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;direction=south;" parent="1" vertex="1">
+ <mxGeometry x="1055" y="110" width="60" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="s-TU3r22yMbpCtiJYlU4-46" target="s-TU3r22yMbpCtiJYlU4-18" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-46" value="Virtual FIFO" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;direction=south;" parent="1" vertex="1">
+ <mxGeometry x="1235" y="110" width="60" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-47" value="Virtual FIFO" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;direction=south;" parent="1" vertex="1">
+ <mxGeometry x="890" y="600" width="60" height="120" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-50" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="s-TU3r22yMbpCtiJYlU4-3" target="s-TU3r22yMbpCtiJYlU4-5" edge="1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-55" value="" style="shape=link;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="920.9999999999986" y="140" as="sourcePoint" />
+ <mxPoint x="1051" y="139.47" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-56" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="1020" y="160" as="sourcePoint" />
+ <mxPoint x="1235" y="160" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-57" value="" style="shape=link;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="s-TU3r22yMbpCtiJYlU4-58" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="600" y="140" as="sourcePoint" />
+ <mxPoint x="720" y="140" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-58" value="Crossbar AXI M:N" style="ellipse;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+ <mxGeometry x="730" y="100" width="190" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-61" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="600" y="268.95" as="sourcePoint" />
+ <mxPoint x="830" y="269" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-62" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="826" y="182" as="sourcePoint" />
+ <mxPoint x="826" y="270" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-67" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="955" y="190" as="sourcePoint" />
+ <mxPoint x="1020" y="190" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-73" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="957" as="sourcePoint" />
+ <mxPoint x="957" y="193" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-75" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="1020" y="209" as="sourcePoint" />
+ <mxPoint x="1235" y="209.13" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-76" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1020" y="190" as="sourcePoint" />
+ <mxPoint x="1020" y="210" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-77" value="" style="shape=link;html=1;rounded=0;entryX=0.678;entryY=0.969;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="s-TU3r22yMbpCtiJYlU4-44" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="1020" y="190" as="sourcePoint" />
+ <mxPoint x="1050" y="190" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-80" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="990" y="188.5" as="sourcePoint" />
+ <mxPoint x="990" y="650" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-82" value="" style="shape=link;html=1;rounded=0;exitX=0.417;exitY=0.007;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.43;entryY=0.997;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="s-TU3r22yMbpCtiJYlU4-47" target="s-TU3r22yMbpCtiJYlU4-5" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="988" y="649.5" as="sourcePoint" />
+ <mxPoint x="1050" y="651" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-83" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="920" y="190" as="sourcePoint" />
+ <mxPoint x="920" y="390" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-84" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="100" relative="1" as="geometry">
+ <mxPoint x="920" y="190" as="sourcePoint" />
+ <mxPoint x="955" y="190" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-85" value="&lt;div&gt;ready/valid&lt;/div&gt;&lt;div&gt;paquetes&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="850" y="490" width="80" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-86" value="&lt;div&gt;ready/valid&lt;/div&gt;&lt;div&gt;paquetes&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="1080" y="560" width="80" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-87" value="&lt;div&gt;ready/valid&lt;/div&gt;&lt;div&gt;paquetes&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="1080" y="220" width="80" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-88" value="&lt;div&gt;ready/valid&lt;/div&gt;&lt;div&gt;paquetes&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
+ <mxGeometry x="1260" y="220" width="80" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="s-TU3r22yMbpCtiJYlU4-90" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;shape=link;width=6.428571428571431;" parent="1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1025" y="140" as="sourcePoint" />
+ <mxPoint x="1022" y="160" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+</mxfile>