diff options
| author | Alejandro Soto <alejandro@34project.org> | 2024-03-20 23:08:31 -0600 |
|---|---|---|
| committer | Alejandro Soto <alejandro@34project.org> | 2024-03-20 23:08:31 -0600 |
| commit | 19be5b2df2209ed22a1ab0aea10eccc6c02dbd19 (patch) | |
| tree | 358fe51667114efd97e22bb8bb71b8ff76d0c70f /doc | |
| parent | f1270a246570eacc093c836337dc55546aabd399 (diff) | |
doc/diagrams: update to match design doc
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/diagrams/ready-valid.json | 7 | ||||
| -rw-r--r-- | doc/diagrams/shadercore.drawio | 17 | ||||
| -rw-r--r-- | doc/diagrams/systemlevel.drawio | 39 | ||||
| -rw-r--r-- | doc/diagrams/toplevel.drawio | 151 | ||||
| -rw-r--r-- | doc/diagrams/usecases.drawio | 94 |
5 files changed, 259 insertions, 49 deletions
diff --git a/doc/diagrams/ready-valid.json b/doc/diagrams/ready-valid.json new file mode 100644 index 0000000..92b21e4 --- /dev/null +++ b/doc/diagrams/ready-valid.json @@ -0,0 +1,7 @@ +{"signal": [ + {"name": "clk", "wave": "P................"}, + {"name": "ready", "wave": "0.....1...0...10."}, + {"name": "valid", "wave": "0..1....01.....0."}, + {}, + {"name": "data", "wave": "x..2...3x45....x.", "data": ["d0", "d1", "d2", "d3"]} +]} diff --git a/doc/diagrams/shadercore.drawio b/doc/diagrams/shadercore.drawio index 3a736b6..faa83f5 100644 --- a/doc/diagrams/shadercore.drawio +++ b/doc/diagrams/shadercore.drawio @@ -1,6 +1,6 @@ -<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"> +<mxfile host="app.diagrams.net" modified="2024-03-13T07:39:41.440Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="qHIianCc7u_M4J3qsU5C" version="24.0.5" 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"> + <mxGraphModel dx="1474" dy="1438" 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" /> @@ -192,9 +192,6 @@ <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> @@ -240,9 +237,6 @@ <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" /> @@ -302,8 +296,8 @@ <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 id="gaYdnUDOfFCHFR6QDy4r-155" value="irq que indica terminación" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="750" y="441.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"> @@ -350,9 +344,6 @@ <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> diff --git a/doc/diagrams/systemlevel.drawio b/doc/diagrams/systemlevel.drawio index 914cbaf..797b7a0 100644 --- a/doc/diagrams/systemlevel.drawio +++ b/doc/diagrams/systemlevel.drawio @@ -1,6 +1,6 @@ -<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"> +<mxfile host="app.diagrams.net" modified="2024-03-13T22:50:33.701Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="PAWtuiVG_ZUraCSPmPm4" version="24.0.6" 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"> + <mxGraphModel dx="874" dy="1573" 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" /> @@ -19,9 +19,6 @@ <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> @@ -43,12 +40,6 @@ <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" /> @@ -148,12 +139,6 @@ <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> @@ -166,24 +151,6 @@ <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> @@ -262,7 +229,7 @@ <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" /> + <mxGeometry x="110" y="-170" 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" /> diff --git a/doc/diagrams/toplevel.drawio b/doc/diagrams/toplevel.drawio new file mode 100644 index 0000000..44f408d --- /dev/null +++ b/doc/diagrams/toplevel.drawio @@ -0,0 +1,151 @@ +<mxfile host="app.diagrams.net" modified="2024-03-13T05:38:02.087Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="yiHlR6A42D_C2ZT4gc8G" version="24.0.5" type="device"> + <diagram name="Page-1" id="rwhLFNzuSwDDQGD2A5Sg"> + <mxGraphModel dx="874" dy="1573" 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="RUWsAF9ddRFt_Wxrr_4N-1" value="<div>CPU<br></div><div>VexRiscv</div>" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1"> + <mxGeometry x="380" y="210" width="140" height="140" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-2" value="<div>Memoria de sistema</div><div>Al menos 16MiB<br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="380" y="110" width="140" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-3" value="<div>GPU</div><div>Implementada como parte del producto<br></div>" style="whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1"> + <mxGeometry x="650" y="210" width="140" height="140" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-4" value="Memoria de vídeo" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="650" y="110" width="140" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-5" value="SGDMA AXI 32bits" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="520" y="20" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-6" target="RUWsAF9ddRFt_Wxrr_4N-7" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-6" value="Controlador de salida de vídeo (VDC)" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="850" y="110" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-7" value="Convertidor D/A de triple canal " style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="850" y="210" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-8" value="Pantalla o salida" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;" parent="1" vertex="1"> + <mxGeometry x="850" y="300" width="120" height="80" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-7" target="RUWsAF9ddRFt_Wxrr_4N-8" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-12" value="" style="shape=link;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="RUWsAF9ddRFt_Wxrr_4N-3" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="520" y="279.58" as="sourcePoint" /> + <mxPoint x="620" y="279.58" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-15" value="<div>Interfaz de</div><div>calendarizador</div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> + <mxGeometry x="560" y="240" width="100" height="40" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-16" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="640" y="49.58000000000001" as="sourcePoint" /> + <mxPoint x="720" y="50" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-17" value="" style="shape=link;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="RUWsAF9ddRFt_Wxrr_4N-4" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="720" y="50" as="sourcePoint" /> + <mxPoint x="700" y="100" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-18" value="" style="shape=link;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="RUWsAF9ddRFt_Wxrr_4N-5" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="440" y="50" as="sourcePoint" /> + <mxPoint x="525" y="49.58000000000001" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-19" value="" style="shape=link;html=1;rounded=0;exitX=0.425;exitY=-0.011;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-2" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="520" y="200" as="sourcePoint" /> + <mxPoint x="440" y="50" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-20" value="" style="shape=link;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-3" target="RUWsAF9ddRFt_Wxrr_4N-4" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="700" y="200" as="sourcePoint" /> + <mxPoint x="620" y="200" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-21" value="" style="shape=link;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-4" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="780" y="130" as="sourcePoint" /> + <mxPoint x="850" y="139.57999999999998" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-22" value="" style="shape=link;html=1;rounded=0;exitX=0.985;exitY=0.33;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-27" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="350" y="200" as="sourcePoint" /> + <mxPoint x="530" y="200" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-23" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="530" y="200" as="sourcePoint" /> + <mxPoint x="530" y="280" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-24" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="440" y="170" as="sourcePoint" /> + <mxPoint x="440" y="200" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-25" value="Periféricos de baja velocidad ofrecidos por la plataforma (switches, botones, ...)" style="shape=label;whiteSpace=wrap;html=1;fixedSize=1;rounded=0;" parent="1" vertex="1"> + <mxGeometry x="160" y="90" width="180" height="70" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-27" value="<div>Temporizador</div><div>Granularidad mín: 1ms<br></div>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="180" y="180" width="130" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-29" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="340" y="124.71" as="sourcePoint" /> + <mxPoint x="360" y="125" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-30" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="360" y="-10" as="sourcePoint" /> + <mxPoint x="360" y="390" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-31" value="UART" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="185" y="270" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-32" value="<div>ROM</div>" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="185" y="360" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-33" value="" style="shape=link;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-32" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="310" y="390" as="sourcePoint" /> + <mxPoint x="360" y="390" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-34" 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="305" y="299.71" as="sourcePoint" /> + <mxPoint x="360" y="299.71" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-35" value="" style="shape=link;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="360" y="-10" as="sourcePoint" /> + <mxPoint x="580" y="-10" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="RUWsAF9ddRFt_Wxrr_4N-36" value="" style="shape=link;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="RUWsAF9ddRFt_Wxrr_4N-5" edge="1"> + <mxGeometry width="100" relative="1" as="geometry"> + <mxPoint x="520" y="140" as="sourcePoint" /> + <mxPoint x="580" y="-10" as="targetPoint" /> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/doc/diagrams/usecases.drawio b/doc/diagrams/usecases.drawio new file mode 100644 index 0000000..19896bf --- /dev/null +++ b/doc/diagrams/usecases.drawio @@ -0,0 +1,94 @@ +<mxfile host="app.diagrams.net" modified="2024-03-14T02:10:05.956Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" etag="a7uSP3LApET3o-PU5paG" version="24.0.6" type="device"> + <diagram name="Page-1" id="sW1qzQkao8cC7eieJrQE"> + <mxGraphModel dx="603" dy="326" 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="Qmx1keI5x_QG-CHELu95-35" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="340" y="315" width="480" height="125" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-2" value="<h1 style="margin-top: 0px;">Actores</h1><p><br></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="230" y="155" width="90" height="30" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-3" value="<h1 style="margin-top: 0px;">Servicios<br></h1><p><br></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="220" y="330" width="110" height="30" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-4" value="<h1 style="margin-top: 0px;">Producto<br></h1><p><br></p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1"> + <mxGeometry x="530" y="400" width="110" height="30" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-7" value="Desarrolladores e investigadores" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="350" y="140" width="470" height="80" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-6" value="Usuarios finales" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="360" y="150" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-8" value="Renderizar gráficos en una aplicación interactiva" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="350" y="330" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-12" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.136;exitY=0.975;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="Qmx1keI5x_QG-CHELu95-6"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="510" y="330" as="sourcePoint" /> + <mxPoint x="376" y="329" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-13" value="<div>Movimientos,</div><div>comandos<br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-12"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-16" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.136;exitY=0.975;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="450" y="330" as="sourcePoint" /> + <mxPoint x="450" y="210" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-17" value="<div>Vídeo en</div><div>pantalla<br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-16"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-18" value="Escribir aplicaciones gráficas" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="520" y="330" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-19" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="530" y="218" as="sourcePoint" /> + <mxPoint x="530" y="330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-20" value="<div>Sombreadores,</div><div>Escenas,</div><div>Programas<br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-19"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-22" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="630" y="332" as="sourcePoint" /> + <mxPoint x="630" y="220" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-23" value="<div>Simulaciones<br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-22"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-27" value="Extender o alterar las funciones del sistema" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="690" y="330" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-28" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.081;exitY=0.994;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="Qmx1keI5x_QG-CHELu95-34"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="700" y="218" as="sourcePoint" /> + <mxPoint x="700" y="330" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-29" value="<div>RTL,</div><div><i>firmware</i><br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-28"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.957;entryY=0.875;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="Qmx1keI5x_QG-CHELu95-7"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="800" y="332" as="sourcePoint" /> + <mxPoint x="800" y="220" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-31" value="<div>Sistema de gráficos</div><div>modificado<br></div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="Qmx1keI5x_QG-CHELu95-30"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="Qmx1keI5x_QG-CHELu95-34" value="Diseñadores" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1"> + <mxGeometry x="690" y="150" width="120" height="60" as="geometry" /> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> |
