diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-03-10 16:04:52 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-03-10 16:04:52 -0600 |
| commit | 2034e0a7bc2099e43739dc9f47b25369051307c6 (patch) | |
| tree | 34295b5ff4f4429cd80a6f4bf3fc5ada06dc6d99 | |
| parent | 88a1fbece18c06dc0bbb3dcc63bcad87f7040f2c (diff) | |
doc/diagramas: add shadercore, systemlevel
| -rw-r--r-- | doc/diagrams/shadercore.drawio | 359 | ||||
| -rw-r--r-- | doc/diagrams/systemlevel.drawio | 393 |
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="<div>p0: FP/Integer</div><div>16 lanes reales<br></div><div>= 4 quads<br></div>" 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="<div>p1: Mem coalesce<br></div><div>16 lanes -&gt; 1 burst<br></div>" 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="<div>p2: SFU &amp; 1/x<br></div><div>Lanes TBD</div><div>Posible: FSM escalar<br></div>" 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="<div>ready/valid</div>" 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="<div>ready/valid</div>" 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="<b>valid con abort<br></b>" 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="<div>rdreq<br></div><div>group id<br></div>" 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="<div>L1i (&lt;1KiB?)<br></div><div>(indispensable)<br></div>" 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="<div>wrreq</div><div>group id<br></div>" 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; 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="<div><font style="font-size: 8px;">512 SGPRs<br></font></div><div><font style="font-size: 8px;">128 VGPRs</font></div><div><font style="font-size: 8px;">Cada VGPR es de &lt;lanes&gt;x32 bits</font></div><div><font style="font-size: 8px;">Cada SGPR es de 32 bits</font></div><div><font style="font-size: 8px;">Indexados por group id<br></font></div>" 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="<div>p3: Group ops</div><div>Voto y consenso<br></div>" 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="<div>ready/valid</div>" 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, <b>siempre</b> 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="<div>Mem response<br></div>" 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="<div>ready/valid</div>" 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="<div>ready/valid</div>" 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="<div>ready/valid</div>" 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="<div>valid</div>" 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="<div>PC table</div>" 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="<div>Lane mask table<br></div>" 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="<div>flag que indica terminación (irq?)<br></div>" 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="<div>AXI-Lite 32bits<br></div><div>Interfaz de delegación<br></div>" 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="<div>p4: Texture sampling</div><div>Dependerá del tiempo<br></div>" 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="<div>Scheduler core<br></div><div>picorv32</div>" 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="<div>AXI-Lite 32bits</div><div><br></div>" 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="<div>Graphics DRAM</div><div>Al menos 64MiB<br></div>" 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="<div>32Mx16bit DDR3 en DE1-SoC<br>32Mx16bitx2bancos en DE2i-150<br></div><div>Irrelevante en Verilator<br></div>" 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="<div>Tengo la extravagante hipótesis de que es posible obtener un surplus de bandwidth en Cyclone V de esta manera:</div><div>- Usar bridge f2s (poco documentado)</div><div>- Provocar un hard lock-up intencional en HPS<br></div><div>- Agarrar lock de AXI desde FPGA y nunca soltarlo</div>" 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="<div>"Native" 32bits<br></div><div><br></div>" 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="<b>Nota: </b>"AXI4*" 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="<div>ready/valid</div><div>paquetes<br></div>" 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="<div>ready/valid</div><div>paquetes<br></div>" 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="<div>ready/valid</div><div>paquetes<br></div>" 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="<div>ready/valid</div><div>paquetes<br></div>" 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> |
