diff --git a/docs/img/FSM.drawio b/docs/img/FSM.drawio index bd839a9b01be6c20eb7b6840fcbab9fd73e2336d..4143964a1b451d8e2b22c755b217e7238d41b1f8 100644 --- a/docs/img/FSM.drawio +++ b/docs/img/FSM.drawio @@ -1,149 +1,282 @@ -<mxfile host="Electron" modified="2023-04-28T15:06:41.325Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="FiJOiTXp0n2vq3d9UAum" version="21.2.1" type="device"> +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0" version="26.1.1"> <diagram name="Page-1" id="lufUWjv2mjaYaQ6cVEt1"> - <mxGraphModel dx="798" dy="1290" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <mxGraphModel dx="1535" dy="2341" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="bw7OO0sNot4gaAuLXok9-1" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="240" y="40" width="160" height="80" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-3" value="InterIIR" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="255" y="57" width="160" height="80" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-2" value="<font style="font-size: 21px;" face="Ubuntu Mono">Wait Sample</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="250" y="50" width="140" height="60" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-5" value="Processing<br>Loop3" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="249" y="211" width="160" height="80" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-3" value="Store" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="240" y="160" width="160" height="80" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-9" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="bw7OO0sNot4gaAuLXok9-3" target="bw7OO0sNot4gaAuLXok9-5" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="328.76" y="213.19" as="sourcePoint" /> + <mxPoint x="328.76" y="293.19" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-5" value="Processing<br>Loop" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="240" y="280" width="160" height="80" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-10" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="bw7OO0sNot4gaAuLXok9-5" target="FC-L6MPvyguzHvPPfmFm-3" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="328.76" y="160.19" as="sourcePoint" /> + <mxPoint x="329" y="200.19000000000005" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-6" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="240" y="400" width="160" height="80" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-15" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="309" y="353.19" as="sourcePoint" /> + <mxPoint x="349" y="353.19" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-7" value="Wait End<br>Sample" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="240" y="520" width="160" height="80" as="geometry" /> + <mxCell id="bw7OO0sNot4gaAuLXok9-31" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="412" y="92.99999999999994" as="sourcePoint" /> + <mxPoint x="492" y="92.99999999999994" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-8" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="bw7OO0sNot4gaAuLXok9-1" target="bw7OO0sNot4gaAuLXok9-3"> + <mxCell id="bw7OO0sNot4gaAuLXok9-27" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="560" y="650" as="sourcePoint" /> - <mxPoint x="610" y="600" as="targetPoint" /> + <mxPoint x="412" y="252.99999999999994" as="sourcePoint" /> + <mxPoint x="492" y="252.99999999999994" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-9" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="bw7OO0sNot4gaAuLXok9-5"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-3" value="Store3" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="248" y="419" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-4" value="Processing<br>Loop4" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="581" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-5" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="701" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="FC-L6MPvyguzHvPPfmFm-6" target="FC-L6MPvyguzHvPPfmFm-30" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="332" y="1053" /> + <mxPoint x="160" y="1053" /> + <mxPoint x="160" y="-868" /> + <mxPoint x="332" y="-868" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-6" value="Wait End<br>Sample" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="821" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-8" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="319.76" y="240" as="sourcePoint" /> - <mxPoint x="319.76" y="320" as="targetPoint" /> + <mxPoint x="327.76" y="499" as="sourcePoint" /> + <mxPoint x="328" y="580" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-10" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="bw7OO0sNot4gaAuLXok9-6"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-9" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="FC-L6MPvyguzHvPPfmFm-5" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="319.76" y="360" as="sourcePoint" /> - <mxPoint x="320" y="400" as="targetPoint" /> + <mxPoint x="331.76" y="661" as="sourcePoint" /> + <mxPoint x="332" y="701" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-11" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="bw7OO0sNot4gaAuLXok9-6" target="bw7OO0sNot4gaAuLXok9-7"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-10" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="FC-L6MPvyguzHvPPfmFm-5" target="FC-L6MPvyguzHvPPfmFm-6" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="319.76" y="480" as="sourcePoint" /> - <mxPoint x="319.76" y="560" as="targetPoint" /> + <mxPoint x="331.76" y="781" as="sourcePoint" /> + <mxPoint x="331.76" y="861" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-12" value="" style="curved=1;endArrow=block;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endFill=1;" edge="1" parent="1" source="bw7OO0sNot4gaAuLXok9-7" target="bw7OO0sNot4gaAuLXok9-1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-14" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="510" y="320" as="sourcePoint" /> - <mxPoint x="560" y="270" as="targetPoint" /> - <Array as="points"> - <mxPoint x="320" y="670" /> - <mxPoint x="170" y="640" /> - <mxPoint x="180" y="80" /> - <mxPoint x="230" y="20" /> - </Array> + <mxPoint x="312" y="681" as="sourcePoint" /> + <mxPoint x="352" y="681" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-14" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-15" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="140" as="sourcePoint" /> - <mxPoint x="340" y="140" as="targetPoint" /> + <mxPoint x="312" y="921" as="sourcePoint" /> + <mxPoint x="352" y="921" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-17" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="bw7OO0sNot4gaAuLXok9-14"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="10" as="offset" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-17" value="<span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">inputSampleValid = '0'</span>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" connectable="0" vertex="1"> + <mxGeometry x="339.00279069767436" y="934" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-21" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="412" y="740.77" as="sourcePoint" /> + <mxPoint x="492" y="740.77" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-15" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-25" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="380" as="sourcePoint" /> - <mxPoint x="340" y="380" as="targetPoint" /> + <mxPoint x="408" y="458.80999999999995" as="sourcePoint" /> + <mxPoint x="488" y="458.80999999999995" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-16" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-27" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="620" as="sourcePoint" /> - <mxPoint x="340" y="620" as="targetPoint" /> + <mxPoint x="412" y="620.81" as="sourcePoint" /> + <mxPoint x="492" y="620.81" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-18" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="1"> - <mxGeometry x="340.00279069767436" y="380" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-29" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="412" y="860.81" as="sourcePoint" /> + <mxPoint x="492" y="860.81" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-30" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="-751" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-31" value="<font style="font-size: 21px;" face="Ubuntu Mono">Wait Sample</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="262" y="-741" width="140" height="60" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-32" value="Store1" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="-625" width="160" height="80" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-19" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 3</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="1"> - <mxGeometry x="340.00279069767436" y="620" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-33" value="Processing<br>Loop1" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="252" y="-484" width="160" height="80" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-20" value="" style="curved=1;endArrow=block;html=1;rounded=0;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="bw7OO0sNot4gaAuLXok9-1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-36" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="FC-L6MPvyguzHvPPfmFm-30" target="FC-L6MPvyguzHvPPfmFm-32" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="350" y="-10" as="sourcePoint" /> - <mxPoint x="460" y="90" as="targetPoint" /> + <mxPoint x="572" y="-141" as="sourcePoint" /> + <mxPoint x="622" y="-191" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-37" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="FC-L6MPvyguzHvPPfmFm-33" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="331.76" y="-551" as="sourcePoint" /> + <mxPoint x="331.76" y="-471" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-38" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="FC-L6MPvyguzHvPPfmFm-33" target="FC-L6MPvyguzHvPPfmFm-76" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="331.76" y="-431" as="sourcePoint" /> + <mxPoint x="332" y="-334" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-41" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="312" y="-651" as="sourcePoint" /> + <mxPoint x="352" y="-651" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-42" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">inputSampleValid = '1'</span></font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="FC-L6MPvyguzHvPPfmFm-41" connectable="0" vertex="1"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="-4" y="-10" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-43" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="304" y="-387" as="sourcePoint" /> + <mxPoint x="352" y="-387" as="targetPoint" /> <Array as="points"> - <mxPoint x="330" /> + <mxPoint x="331" y="-387" /> </Array> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-21" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Rst = '1'</span></font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="1"> - <mxGeometry x="350.00279069767436" y="-10" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-45" value="<span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">processingDone = '1'</span>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" connectable="0" vertex="1"> + <mxGeometry x="339.00279069767436" y="-377" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-23" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = '0'<br>InitAddress = '0'<br>IncrAddress = '0'<br>InitSum = '0'<br>LoadSum = '0'<br>LoadOutput = '1'<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;container=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="480" y="380" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-24" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-47" value="" style="curved=1;endArrow=block;html=1;rounded=0;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="FC-L6MPvyguzHvPPfmFm-30" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="439.77" as="sourcePoint" /> - <mxPoint x="480" y="439.77" as="targetPoint" /> + <mxPoint x="362" y="-801" as="sourcePoint" /> + <mxPoint x="472" y="-701" as="targetPoint" /> + <Array as="points"> + <mxPoint x="342" y="-791" /> + </Array> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-33" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="480" y="20" width="240" height="110" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-48" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Rst = '1'</span></font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" parent="1" connectable="0" vertex="1"> + <mxGeometry x="362.00279069767436" y="-801" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-51" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0&nbsp; ;&nbsp;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 0<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux=00<br>LoadSum = 0&nbsp;<br></font><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="488" y="-816" width="277" height="139" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-34" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-52" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="79.80999999999995" as="sourcePoint" /> - <mxPoint x="480" y="79.80999999999995" as="targetPoint" /> + <mxPoint x="412" y="-711.19" as="sourcePoint" /> + <mxPoint x="492" y="-711.19" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-30" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="480" y="140" width="240" height="110" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-54" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="412" y="-591.19" as="sourcePoint" /> + <mxPoint x="492" y="-591.19" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-31" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-56" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="199.80999999999995" as="sourcePoint" /> - <mxPoint x="480" y="199.80999999999995" as="targetPoint" /> + <mxPoint x="410" y="-444.63000000000005" as="sourcePoint" /> + <mxPoint x="490" y="-444.63000000000005" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-25" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="480" y="260" width="240" height="110" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-63" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress =&nbsp; 1<br>IncrAddress =&nbsp; 0<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 10<br>LoadSum = 0<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="548" y="20" width="332" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-64" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 1</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress =&nbsp; 1<br>IncrAddress =&nbsp; 0<br>InitSum = 1</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 00<br>LoadSum = 0<br></font><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font><font style="font-size: 15px;" face="Ubuntu Mono"></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="545" y="-661" width="302" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-66" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 1<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 00<br>LoadSum = 1<br></font><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font><font style="font-size: 15px;" face="Ubuntu Mono"></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="548" y="-513.5" width="324" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-67" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 1</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress =&nbsp; 1<br>IncrAddress =&nbsp; 0<br>InitSum = 1</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 11<br>LoadSum = 0<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="569" y="374" width="327" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-68" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 1<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 10<br>LoadSum = 1<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="553" y="194" width="319" height="139" as="geometry" /> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-27" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-70" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 0<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 00<br>LoadSum = 0<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="569" y="827" width="325" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-71" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 0<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 11<br>LoadSum = 0<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 1<br></font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="564" y="682" width="333" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-72" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 1<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 11<br>LoadSum = 1<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="569" y="528" width="323" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-74" value="<font style="font-size: 14px;">processingDone = '1'</font>" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="339.0000305175781" y="676.0000610351562" width="164" height="40" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-76" value="Store2" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="255" y="-315" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="q2NBXy2qhxmf1ht5OkMo-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="FC-L6MPvyguzHvPPfmFm-77" target="bw7OO0sNot4gaAuLXok9-3"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-77" value="Processing<br>Loop2" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="255" y="-162" width="160" height="80" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-78" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="FC-L6MPvyguzHvPPfmFm-76" target="FC-L6MPvyguzHvPPfmFm-77" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="334.76" y="-159.81" as="sourcePoint" /> + <mxPoint x="334.76" y="-79.81" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-79" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="319.80999999999995" as="sourcePoint" /> - <mxPoint x="480" y="319.80999999999995" as="targetPoint" /> + <mxPoint x="315" y="-19.810000000000002" as="sourcePoint" /> + <mxPoint x="355" y="-19.810000000000002" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-36" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="480" y="500" width="240" height="110" as="geometry" /> + <mxCell id="FC-L6MPvyguzHvPPfmFm-80" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="418" y="-280.00000000000006" as="sourcePoint" /> + <mxPoint x="498" y="-280.00000000000006" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-37" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> + <mxCell id="FC-L6MPvyguzHvPPfmFm-81" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="559.81" as="sourcePoint" /> - <mxPoint x="480" y="559.81" as="targetPoint" /> + <mxPoint x="418" y="-120.00000000000006" as="sourcePoint" /> + <mxPoint x="498" y="-120.00000000000006" as="targetPoint" /> </mxGeometry> </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-82" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 1 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress =&nbsp; 1<br>IncrAddress =&nbsp; 0<br>InitSum = 1</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 01<br>LoadSum = 0<font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0<br></font></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="551" y="-351" width="326" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-83" value="<div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = 0</font><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadShift2= 0 ;&nbsp;</font><span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">LoadShift3= 0</span><font style="font-size: 15px;" face="Ubuntu Mono"><br>InitAddress = 0<br>IncrAddress = 1<br>InitSum = 0</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">CntrMux= 01<br>LoadSum = 1<font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><br></font></font></font></div><div><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono"><font style="font-size: 15px;" face="Ubuntu Mono">loadY = 0</font></font></font></div></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="550" y="-186" width="328" height="139" as="geometry" /> + </mxCell> + <mxCell id="FC-L6MPvyguzHvPPfmFm-84" value="<span style="font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;">processingDone = '1'</span>" style="text;whiteSpace=wrap;html=1;" parent="1" vertex="1"> + <mxGeometry x="358" y="-20" width="182" height="40" as="geometry" /> + </mxCell> + <mxCell id="q2NBXy2qhxmf1ht5OkMo-3" value="<font style="font-size: 14px;">processingDone = '1'</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1"> + <mxGeometry x="337.5" y="343" width="148" height="29" as="geometry" /> + </mxCell> </root> </mxGraphModel> </diagram> diff --git a/docs/img/FSM.png b/docs/img/FSM.png deleted file mode 100644 index 7f6db881fff5cdfb9351c0348dfec49ff082516d..0000000000000000000000000000000000000000 Binary files a/docs/img/FSM.png and /dev/null differ diff --git a/docs/img/OperativeUnit.drawio b/docs/img/OperativeUnit.drawio index 9bb0e4be6bf247cea4d08b3cc71698bff753d164..d839989621a3c537588ecf151980d95a43958319 100644 --- a/docs/img/OperativeUnit.drawio +++ b/docs/img/OperativeUnit.drawio @@ -1,425 +1,820 @@ -<mxfile host="Electron" modified="2023-05-02T15:25:12.389Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="-5AHYXFrDsyYUGHEENvj" version="21.2.1" type="device"> +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0" version="26.1.1"> <diagram name="Page-1" id="HnFJvu7xD7cCTyxCgidn"> - <mxGraphModel dx="1430" dy="830" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <mxGraphModel dx="2680" dy="2064" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> - <mxCell id="uwrRxOYGmB2LabIKb8In-1" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" vertex="1" parent="1"> - <mxGeometry x="340" y="40" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-2" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="340" y="90" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-3" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="60" as="sourcePoint" /> - <mxPoint x="550" y="160" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-4" value="I_initAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-3"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="-29" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-5" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="79.83" as="sourcePoint" /> - <mxPoint x="340" y="79.83" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-6" value="I_incrAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-5"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="-29" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-7" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="460" y="60" as="sourcePoint" /> - <mxPoint x="500" y="60" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-8" value="O_processingDone" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-7"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="11" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-9" value="Samples" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" vertex="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-159" value="Samples" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> <mxGeometry x="160" y="200" width="120" height="280" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-11" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-160" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="160" y="280" as="sourcePoint" /> <mxPoint x="280" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-12" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-161" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="160" y="240" as="sourcePoint" /> <mxPoint x="280" y="240" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-13" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-162" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="160" y="440" as="sourcePoint" /> <mxPoint x="280" y="440" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-14" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" vertex="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-163" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-164" target="7X3AgIlieK-k1dyfllYh-264" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="340" y="590" /> + <mxPoint x="680" y="590" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-164" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> <mxGeometry x="190" y="330" width="280" height="20" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-15" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-165" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="280" y="220" as="sourcePoint" /> <mxPoint x="320" y="220" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-17" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-166" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="280" y="260" as="sourcePoint" /> <mxPoint x="320" y="260" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-18" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-167" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="280" y="460" as="sourcePoint" /> + <mxPoint x="300" y="470" as="sourcePoint" /> <mxPoint x="320" y="460" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-21" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-168" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="300" y="440" as="sourcePoint" /> <mxPoint x="300" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-25" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-169" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="219.89" y="430" as="sourcePoint" /> <mxPoint x="219.89" y="460" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-28" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-170" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="219.94" y="230" as="sourcePoint" /> <mxPoint x="219.94" y="260" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-29" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-171" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="219.94" y="270" as="sourcePoint" /> <mxPoint x="219.94" y="300" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-30" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" vertex="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-172" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> <mxGeometry x="520" y="200" width="120" height="280" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-31" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-173" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="280" as="sourcePoint" /> <mxPoint x="640" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-32" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-174" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="240" as="sourcePoint" /> <mxPoint x="640" y="240" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-33" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-175" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="440" as="sourcePoint" /> <mxPoint x="640" y="440" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-34" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" vertex="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-176" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-177" target="7X3AgIlieK-k1dyfllYh-262" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="440" y="340" /> + <mxPoint x="440" y="530" /> + <mxPoint x="1120" y="530" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="dccOzbdqGY2gTYpR8YRW-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-177" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="400" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-177" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> <mxGeometry x="330" y="330" width="280" height="20" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-35" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-178" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="220" as="sourcePoint" /> <mxPoint x="480" y="220" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-38" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-179" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="500" y="440" as="sourcePoint" /> <mxPoint x="500" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-42" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-180" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="260" as="sourcePoint" /> <mxPoint x="480" y="260" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-43" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-181" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> <mxPoint x="520" y="460" as="sourcePoint" /> <mxPoint x="480" y="460" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-45" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-1" target="uwrRxOYGmB2LabIKb8In-14"> + <mxCell id="7X3AgIlieK-k1dyfllYh-182" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="160" y="450" width="10" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-183" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="7X3AgIlieK-k1dyfllYh-159" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="160" as="sourcePoint" /> - <mxPoint x="440" y="160" as="targetPoint" /> + <mxPoint x="150" y="120" as="sourcePoint" /> + <mxPoint x="250" y="170" as="targetPoint" /> <Array as="points"> - <mxPoint x="400" y="160" /> + <mxPoint x="220" y="120" /> + <mxPoint x="230" y="120" /> + <mxPoint x="250" y="140" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-46" value="SR_ReadAddress" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-45"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="41" y="-51" as="offset" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-184" value="I_inputSample" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;" parent="7X3AgIlieK-k1dyfllYh-183" connectable="0" vertex="1"> + <mxGeometry x="-0.9128" y="-1" relative="1" as="geometry"> + <mxPoint x="-7" y="-1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-47" value="" style="endArrow=block;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endFill=1;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-34"> + <mxCell id="7X3AgIlieK-k1dyfllYh-185" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-159" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="120" as="sourcePoint" /> - <mxPoint x="340" y="220" as="targetPoint" /> + <mxPoint x="150" y="150" as="sourcePoint" /> + <mxPoint x="190" y="190" as="targetPoint" /> <Array as="points"> - <mxPoint x="400" y="160" /> + <mxPoint x="180" y="150" /> + <mxPoint x="190" y="160" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-49" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-50"> + <mxCell id="7X3AgIlieK-k1dyfllYh-186" value="I_loadShift1" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-185" connectable="0" vertex="1"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-9" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-187" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="180" y="130" as="sourcePoint" /> + <mxPoint x="200" y="110" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-188" value="8" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="7X3AgIlieK-k1dyfllYh-187" connectable="0" vertex="1"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="5" y="-4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-189" value="Samples" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="720" y="210" width="120" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-190" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="720" y="290" as="sourcePoint" /> + <mxPoint x="840" y="290" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-191" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="340" y="339.71" as="sourcePoint" /> - <mxPoint x="380" y="339.71" as="targetPoint" /> + <mxPoint x="720" y="250" as="sourcePoint" /> + <mxPoint x="840" y="250" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-192" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="720" y="450" as="sourcePoint" /> + <mxPoint x="840" y="450" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-193" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-194" target="7X3AgIlieK-k1dyfllYh-264" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-194" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="750" y="340" width="280" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-195" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="840" y="230" as="sourcePoint" /> + <mxPoint x="880" y="230" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-196" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="840" y="270" as="sourcePoint" /> + <mxPoint x="880" y="270" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-197" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="860" y="480" as="sourcePoint" /> + <mxPoint x="880" y="470" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-198" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="860" y="450" as="sourcePoint" /> + <mxPoint x="860" y="290" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-199" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="779.89" y="440" as="sourcePoint" /> + <mxPoint x="779.89" y="470" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-200" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="779.94" y="240" as="sourcePoint" /> + <mxPoint x="779.94" y="270" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-201" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="779.94" y="280" as="sourcePoint" /> + <mxPoint x="779.94" y="310" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-202" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="1080" y="210" width="120" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-203" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="290" as="sourcePoint" /> + <mxPoint x="1200" y="290" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-204" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="250" as="sourcePoint" /> + <mxPoint x="1200" y="250" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-205" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="450" as="sourcePoint" /> + <mxPoint x="1200" y="450" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-206" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-207" target="7X3AgIlieK-k1dyfllYh-262" edge="1"> + <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="350" y="340" /> - <mxPoint x="350" y="490" /> + <mxPoint x="1000" y="350" /> + <mxPoint x="1000" y="520" /> + <mxPoint x="1190" y="520" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-50" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1"> - <mxGeometry x="360" y="500" width="80" height="80" as="geometry" /> + <mxCell id="dccOzbdqGY2gTYpR8YRW-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-207" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="930" y="110" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="931" y="160" /> + <mxPoint x="1030" y="160" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-207" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="890" y="340" width="280" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-208" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="230" as="sourcePoint" /> + <mxPoint x="1040" y="230" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-209" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1060" y="450" as="sourcePoint" /> + <mxPoint x="1060" y="290" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-210" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="270" as="sourcePoint" /> + <mxPoint x="1040" y="270" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-211" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1080" y="470" as="sourcePoint" /> + <mxPoint x="1040" y="470" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-51" value="" style="endArrow=block;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-34" target="uwrRxOYGmB2LabIKb8In-50"> + <mxCell id="7X3AgIlieK-k1dyfllYh-212" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="720" y="460" width="10" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-213" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-189" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="350" y="349.71" as="sourcePoint" /> - <mxPoint x="382" y="542" as="targetPoint" /> + <mxPoint x="710" y="160" as="sourcePoint" /> + <mxPoint x="750" y="200" as="targetPoint" /> <Array as="points"> - <mxPoint x="450" y="340" /> - <mxPoint x="450" y="490" /> + <mxPoint x="740" y="160" /> + <mxPoint x="750" y="170" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-52" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50"> + <mxCell id="7X3AgIlieK-k1dyfllYh-214" value="I_loadShift2" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-213" connectable="0" vertex="1"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-9" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-215" value="Samples" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="1640" y="190" width="120" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-216" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1640" y="270" as="sourcePoint" /> + <mxPoint x="1760" y="270" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-217" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="420" y="610" as="sourcePoint" /> - <mxPoint x="470" y="560" as="targetPoint" /> + <mxPoint x="1640" y="230" as="sourcePoint" /> + <mxPoint x="1760" y="230" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-53" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50"> + <mxCell id="7X3AgIlieK-k1dyfllYh-218" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="382" y="598" as="sourcePoint" /> - <mxPoint x="438" y="542" as="targetPoint" /> + <mxPoint x="1640" y="430" as="sourcePoint" /> + <mxPoint x="1760" y="430" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-54" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1"> - <mxGeometry x="360" y="650" width="80" height="80" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-220" target="7X3AgIlieK-k1dyfllYh-264" edge="1"> + <mxGeometry relative="1" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-55" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-54"> + <mxCell id="7X3AgIlieK-k1dyfllYh-220" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="1670" y="320" width="280" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-221" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="620" as="sourcePoint" /> - <mxPoint x="360" y="710" as="targetPoint" /> + <mxPoint x="1760" y="210" as="sourcePoint" /> + <mxPoint x="1800" y="210" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-56" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54"> + <mxCell id="7X3AgIlieK-k1dyfllYh-222" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="438" y="568" as="sourcePoint" /> - <mxPoint x="382" y="512" as="targetPoint" /> + <mxPoint x="1760" y="250" as="sourcePoint" /> + <mxPoint x="1800" y="250" as="targetPoint" /> + <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-57" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54"> + <mxCell id="7X3AgIlieK-k1dyfllYh-223" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="450" y="700" as="sourcePoint" /> - <mxPoint x="370" y="700" as="targetPoint" /> + <mxPoint x="1780" y="460" as="sourcePoint" /> + <mxPoint x="1800" y="450" as="targetPoint" /> + <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-58" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;" vertex="1" parent="1"> - <mxGeometry x="160" y="660" width="120" height="60" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-224" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1780" y="430" as="sourcePoint" /> + <mxPoint x="1780" y="270" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-59" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1"> - <mxGeometry x="160" y="690" width="10" height="20" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-225" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1699.8899999999999" y="420" as="sourcePoint" /> + <mxPoint x="1699.8899999999999" y="450" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-63" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1"> - <mxGeometry x="160" y="450" width="10" height="20" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-226" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1699.94" y="220" as="sourcePoint" /> + <mxPoint x="1699.94" y="250" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-227" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1699.94" y="260" as="sourcePoint" /> + <mxPoint x="1699.94" y="290" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-228" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="2000" y="190" width="120" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-229" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2000" y="270" as="sourcePoint" /> + <mxPoint x="2120" y="270" as="targetPoint" /> + </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-64" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-58" target="uwrRxOYGmB2LabIKb8In-54"> + <mxCell id="7X3AgIlieK-k1dyfllYh-230" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="410" y="580" as="sourcePoint" /> - <mxPoint x="340" y="650" as="targetPoint" /> + <mxPoint x="2000" y="230" as="sourcePoint" /> + <mxPoint x="2120" y="230" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-231" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2000" y="430" as="sourcePoint" /> + <mxPoint x="2120" y="430" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-232" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.124;entryY=0.95;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-233" target="7X3AgIlieK-k1dyfllYh-262" edge="1"> + <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="220" y="620" /> - <mxPoint x="330" y="620" /> + <mxPoint x="1940" y="520" /> + <mxPoint x="1295" y="520" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-65" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-58"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="230" y="670" as="sourcePoint" /> - <mxPoint x="382" y="672" as="targetPoint" /> + <mxCell id="dccOzbdqGY2gTYpR8YRW-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-233" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1810" y="80" as="sourcePoint" /> <Array as="points"> - <mxPoint x="400" y="770" /> - <mxPoint x="270" y="770" /> + <mxPoint x="1811" y="130" /> + <mxPoint x="1950" y="130" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-67" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-68"> + <mxCell id="7X3AgIlieK-k1dyfllYh-233" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="1810" y="320" width="280" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-234" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2000" y="210" as="sourcePoint" /> + <mxPoint x="1960" y="210" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-235" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1980" y="430" as="sourcePoint" /> + <mxPoint x="1980" y="270" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-236" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2000" y="250" as="sourcePoint" /> + <mxPoint x="1960" y="250" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-237" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="2000" y="450" as="sourcePoint" /> + <mxPoint x="1960" y="450" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-238" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="1640" y="440" width="10" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-239" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-215" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="399.97" y="730" as="sourcePoint" /> - <mxPoint x="399.97" y="810" as="targetPoint" /> + <mxPoint x="1630" y="140" as="sourcePoint" /> + <mxPoint x="1670" y="180" as="targetPoint" /> <Array as="points"> - <mxPoint x="400" y="790" /> - <mxPoint x="420" y="810" /> + <mxPoint x="1660" y="140" /> + <mxPoint x="1670" y="150" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-68" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rotation=90;strokeWidth=2;" vertex="1" parent="1"> - <mxGeometry x="480" y="780" width="120" height="60" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-240" value="I_loadShift3" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-239" connectable="0" vertex="1"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-9" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-241" value="SR_ReadAddress" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" connectable="0" vertex="1"> + <mxGeometry x="1060.4090067592674" y="-130.699426885589" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-69" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1"> - <mxGeometry x="510" y="840" width="10" height="20" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-243" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="990" y="-230" width="120" height="80" as="geometry" /> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-70" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=0.007;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" edge="1" parent="1" source="uwrRxOYGmB2LabIKb8In-68"> + <mxCell id="7X3AgIlieK-k1dyfllYh-244" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="990" y="-180" width="10" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-245" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" target="7X3AgIlieK-k1dyfllYh-243" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="570" y="809.98" as="sourcePoint" /> - <mxPoint x="650" y="810" as="targetPoint" /> + <mxPoint x="950" y="-210" as="sourcePoint" /> + <mxPoint x="1200" y="-110" as="targetPoint" /> <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-71" value="O_Y" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" vertex="1" connectable="0" parent="1"> - <mxGeometry x="650.0017647058825" y="810.0000000000002" as="geometry" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-246" value="I_initAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="7X3AgIlieK-k1dyfllYh-245" connectable="0" vertex="1"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-29" as="offset" /> + </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-72" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-9"> + <mxCell id="7X3AgIlieK-k1dyfllYh-247" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="150" y="120" as="sourcePoint" /> - <mxPoint x="250" y="170" as="targetPoint" /> + <mxPoint x="950" y="-190.17000000000002" as="sourcePoint" /> + <mxPoint x="990" y="-190.17000000000002" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-248" value="I_incrAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="7X3AgIlieK-k1dyfllYh-247" connectable="0" vertex="1"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-29" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-249" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1110" y="-210" as="sourcePoint" /> + <mxPoint x="1150" y="-210" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-250" value="O_processingDone" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="7X3AgIlieK-k1dyfllYh-249" connectable="0" vertex="1"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="11" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-252" value="" style="shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=#dae8fc;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;fontSize=17;strokeColor=#6c8ebf;rounded=0;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="1040" y="-120" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-257" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-164" edge="1"> + <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="220" y="120" /> - <mxPoint x="230" y="120" /> - <mxPoint x="250" y="140" /> + <mxPoint x="830" /> + <mxPoint x="330" /> </Array> + <mxPoint x="880" y="-41" as="sourcePoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-74" value="I_inputSample" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-72"> - <mxGeometry x="-0.9128" y="-1" relative="1" as="geometry"> - <mxPoint x="-7" y="-1" as="offset" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-258" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-194" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="930" y="-41" /> + <mxPoint x="930" y="160" /> + <mxPoint x="890" y="160" /> + </Array> + <mxPoint x="870" y="-40.700000000000045" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-259" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-220" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="880" y="-41" /> + <mxPoint x="880" /> + <mxPoint x="1810" /> + </Array> + <mxPoint x="910" y="-40.700000000000045" as="sourcePoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-73" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-9"> + <mxCell id="7X3AgIlieK-k1dyfllYh-261" value="" style="shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=#dae8fc;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;fontSize=17;strokeColor=#6c8ebf;rounded=0;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="860" y="-70" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-262" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;direction=north;" parent="1" vertex="1"> + <mxGeometry x="1180" y="550" width="20" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-263" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-264" target="7X3AgIlieK-k1dyfllYh-265" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-264" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;direction=north;" parent="1" vertex="1"> + <mxGeometry x="740" y="550" width="20" height="280" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-265" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="940" y="850" width="80" height="80" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-266" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="7X3AgIlieK-k1dyfllYh-265" target="7X3AgIlieK-k1dyfllYh-265" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="150" y="150" as="sourcePoint" /> - <mxPoint x="190" y="190" as="targetPoint" /> + <mxPoint x="700" y="780" as="sourcePoint" /> + <mxPoint x="750" y="730" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-267" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="7X3AgIlieK-k1dyfllYh-265" target="7X3AgIlieK-k1dyfllYh-265" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="662" y="768" as="sourcePoint" /> + <mxPoint x="718" y="712" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-268" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-269" target="7X3AgIlieK-k1dyfllYh-282" edge="1"> + <mxGeometry relative="1" as="geometry"> <Array as="points"> - <mxPoint x="180" y="150" /> - <mxPoint x="190" y="160" /> + <mxPoint x="980" y="1190" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-76" value="I_loadShift" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-73"> - <mxGeometry x="-0.7861" relative="1" as="geometry"> - <mxPoint x="-9" as="offset" /> + <mxCell id="7X3AgIlieK-k1dyfllYh-269" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="940" y="1010" width="80" height="80" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-270" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" source="7X3AgIlieK-k1dyfllYh-265" target="7X3AgIlieK-k1dyfllYh-269" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="680" y="790" as="sourcePoint" /> + <mxPoint x="640" y="880" as="targetPoint" /> + <Array as="points" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-271" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="7X3AgIlieK-k1dyfllYh-269" target="7X3AgIlieK-k1dyfllYh-269" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="718" y="738" as="sourcePoint" /> + <mxPoint x="662" y="682" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-272" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="7X3AgIlieK-k1dyfllYh-269" target="7X3AgIlieK-k1dyfllYh-269" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="730" y="870" as="sourcePoint" /> + <mxPoint x="650" y="870" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-77" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-273" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-275" target="7X3AgIlieK-k1dyfllYh-269" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-274" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-275" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="980" y="1140" as="sourcePoint" /> + <Array as="points"> + <mxPoint x="860" y="1140" /> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-275" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="800" y="1020" width="120" height="60" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-276" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="800" y="1050" width="10" height="20" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-277" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="630" as="sourcePoint" /> - <mxPoint x="170" y="660" as="targetPoint" /> + <mxPoint x="770" y="990" as="sourcePoint" /> + <mxPoint x="810" y="1020" as="targetPoint" /> <Array as="points"> - <mxPoint x="160" y="630" /> - <mxPoint x="170" y="640" /> + <mxPoint x="800" y="990" /> + <mxPoint x="810" y="1000" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-78" value="I_loadSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-77"> + <mxCell id="7X3AgIlieK-k1dyfllYh-278" value="I_loadSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-277" connectable="0" vertex="1"> <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> <mxPoint x="-9" y="1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-79" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" target="uwrRxOYGmB2LabIKb8In-58"> + <mxCell id="7X3AgIlieK-k1dyfllYh-279" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-275" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="610" as="sourcePoint" /> - <mxPoint x="170" y="641" as="targetPoint" /> + <mxPoint x="770" y="970" as="sourcePoint" /> + <mxPoint x="810" y="1001" as="targetPoint" /> <Array as="points"> - <mxPoint x="170" y="610" /> - <mxPoint x="190" y="630" /> + <mxPoint x="810" y="970" /> + <mxPoint x="830" y="990" /> </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-80" value="I_initSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-79"> + <mxCell id="7X3AgIlieK-k1dyfllYh-280" value="I_initSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-279" connectable="0" vertex="1"> <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> <mxPoint x="-13" y="1" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-81" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-281" value="" style="shape=waypoint;sketch=0;size=6;pointerEvents=1;points=[];fillColor=default;resizable=0;rotatable=0;perimeter=centerPerimeter;snapToPoint=1;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="970" y="840" width="20" height="20" as="geometry" /> + </mxCell> + <mxCell id="slADeYBO6sJwLNavmEFx-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="7X3AgIlieK-k1dyfllYh-282"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="1020" y="1400.0000000000005" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-282" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rotation=90;strokeWidth=2;direction=south;" parent="1" vertex="1"> + <mxGeometry x="990" y="1220" width="60" height="120" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-283" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;direction=south;" parent="1" vertex="1"> + <mxGeometry x="970" y="1255" width="20" height="10" as="geometry" /> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-284" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.816;entryY=0.982;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-282" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="830" as="sourcePoint" /> - <mxPoint x="510" y="830" as="targetPoint" /> + <mxPoint x="980" y="1210" as="sourcePoint" /> + <mxPoint x="1090" y="1210" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-82" value="I_loadY" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-81"> + <mxCell id="7X3AgIlieK-k1dyfllYh-285" value="I_loadY" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="7X3AgIlieK-k1dyfllYh-284" connectable="0" vertex="1"> <mxGeometry x="-0.9221" y="-1" relative="1" as="geometry"> <mxPoint x="-15" as="offset" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-83" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="7X3AgIlieK-k1dyfllYh-287" 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"> + <Array as="points"> + <mxPoint x="980" y="1140" /> + <mxPoint x="60" y="1140" /> + <mxPoint x="60" y="50" /> + <mxPoint x="790" y="50" /> + </Array> + <mxPoint x="980" y="1160" as="sourcePoint" /> + <mxPoint x="790" y="220" as="targetPoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-288" value="-" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-215" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="2210" y="1160" /> + <mxPoint x="2210" y="80" /> + <mxPoint x="1730" y="80" /> + </Array> + <mxPoint x="980" y="1160" as="sourcePoint" /> + </mxGeometry> + </mxCell> + <mxCell id="7X3AgIlieK-k1dyfllYh-291" value="S_Y" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="1" connectable="0" vertex="1"> + <mxGeometry x="995.0024156510848" y="1399.998009359496" as="geometry"> + <mxPoint x="11" y="-4" as="offset" /> + </mxGeometry> + </mxCell> + <mxCell id="dccOzbdqGY2gTYpR8YRW-9" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" target="7X3AgIlieK-k1dyfllYh-243" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="590" y="820" as="sourcePoint" /> - <mxPoint x="610" y="800" as="targetPoint" /> + <mxPoint x="880" y="-40" as="sourcePoint" /> + <mxPoint x="1070" y="10" as="targetPoint" /> + <Array as="points"> + <mxPoint x="1050" y="-40" /> + </Array> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-84" value="??" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-83"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.733;entryY=0.883;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="7X3AgIlieK-k1dyfllYh-262" target="7X3AgIlieK-k1dyfllYh-281" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-10" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="1320" y="200" width="120" height="280" as="geometry" /> + </mxCell> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-11" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1320" y="280" as="sourcePoint" /> + <mxPoint x="1440" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-85" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-12" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="440" y="820" as="sourcePoint" /> - <mxPoint x="460" y="800" as="targetPoint" /> + <mxPoint x="1320" y="240" as="sourcePoint" /> + <mxPoint x="1440" y="240" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-86" value="??" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-85"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-13" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1320" y="440" as="sourcePoint" /> + <mxPoint x="1440" y="440" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-87" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-14" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="1130" y="330" width="280" height="20" as="geometry" /> + </mxCell> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-15" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="390" y="620" as="sourcePoint" /> - <mxPoint x="410" y="600" as="targetPoint" /> + <mxPoint x="1320" y="220" as="sourcePoint" /> + <mxPoint x="1280" y="220" as="targetPoint" /> + <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-88" value="??" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-87"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-16" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1300" y="440" as="sourcePoint" /> + <mxPoint x="1300" y="280" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-89" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-17" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="180" y="130" as="sourcePoint" /> - <mxPoint x="200" y="110" as="targetPoint" /> + <mxPoint x="1320" y="260" as="sourcePoint" /> + <mxPoint x="1280" y="260" as="targetPoint" /> + <Array as="points" /> </mxGeometry> </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-90" value="8" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" vertex="1" connectable="0" parent="uwrRxOYGmB2LabIKb8In-89"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-18" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="1320" y="460" as="sourcePoint" /> + <mxPoint x="1280" y="460" as="targetPoint" /> + <Array as="points" /> </mxGeometry> </mxCell> + <mxCell id="oCSWQqDWGWV09ZMwsdjC-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.321;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="oCSWQqDWGWV09ZMwsdjC-14" target="7X3AgIlieK-k1dyfllYh-262" edge="1"> + <mxGeometry relative="1" as="geometry" /> + </mxCell> </root> </mxGraphModel> </diagram> diff --git a/docs/img/OperativeUnit.png b/docs/img/OperativeUnit.png deleted file mode 100644 index 64a947ab89b5c179f8cda30834baa893918774d1..0000000000000000000000000000000000000000 Binary files a/docs/img/OperativeUnit.png and /dev/null differ diff --git a/proj/proj.cache/wt/project.wpc b/proj/proj.cache/wt/project.wpc new file mode 100644 index 0000000000000000000000000000000000000000..de67d9ce23793f8584f54b90c2cdeadf8114ad0a --- /dev/null +++ b/proj/proj.cache/wt/project.wpc @@ -0,0 +1,3 @@ +version:1 +6d6f64655f636f756e7465727c4755494d6f6465:3 +eof: diff --git a/proj/proj.hw/proj.lpr b/proj/proj.hw/proj.lpr new file mode 100644 index 0000000000000000000000000000000000000000..afc0a86cf8f820e635f040c3869b4b647d11ec04 --- /dev/null +++ b/proj/proj.hw/proj.lpr @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Product Version: Vivado v2024.1 (64-bit) --> +<!-- --> +<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. --> +<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. --> + +<labtools version="1" minor="0"/> diff --git a/proj/proj.xpr b/proj/proj.xpr new file mode 100644 index 0000000000000000000000000000000000000000..a783aa4d16914a3207ffbab545470fdf346470fb --- /dev/null +++ b/proj/proj.xpr @@ -0,0 +1,224 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Product Version: Vivado v2024.1 (64-bit) --> +<!-- --> +<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. --> +<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. --> + +<Project Product="Vivado" Version="7" Minor="67" Path="/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.xpr"> + <DefaultLaunch Dir="$PRUNDIR"/> + <Configuration> + <Option Name="Id" Val="f8353fa4146b4726a38f18540294ef4c"/> + <Option Name="Part" Val="xc7z020clg484-1"/> + <Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/> + <Option Name="CompiledLibDirXSim" Val=""/> + <Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/> + <Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/> + <Option Name="CompiledLibDirXcelium" Val="$PCACHEDIR/compile_simlib/xcelium"/> + <Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/> + <Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/> + <Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/> + <Option Name="SimulatorInstallDirModelSim" Val=""/> + <Option Name="SimulatorInstallDirQuesta" Val=""/> + <Option Name="SimulatorInstallDirXcelium" Val=""/> + <Option Name="SimulatorInstallDirVCS" Val=""/> + <Option Name="SimulatorInstallDirRiviera" Val=""/> + <Option Name="SimulatorInstallDirActiveHdl" Val=""/> + <Option Name="SimulatorGccInstallDirModelSim" Val=""/> + <Option Name="SimulatorGccInstallDirQuesta" Val=""/> + <Option Name="SimulatorGccInstallDirXcelium" Val=""/> + <Option Name="SimulatorGccInstallDirVCS" Val=""/> + <Option Name="SimulatorGccInstallDirRiviera" Val=""/> + <Option Name="SimulatorGccInstallDirActiveHdl" Val=""/> + <Option Name="SimulatorVersionXsim" Val="2024.1"/> + <Option Name="SimulatorVersionModelSim" Val="2023.2"/> + <Option Name="SimulatorVersionQuesta" Val="2023.2"/> + <Option Name="SimulatorVersionXcelium" Val="23.03.002"/> + <Option Name="SimulatorVersionVCS" Val="U-2023.03-1"/> + <Option Name="SimulatorVersionRiviera" Val="2023.04"/> + <Option Name="SimulatorVersionActiveHdl" Val="14.1"/> + <Option Name="SimulatorGccVersionXsim" Val="9.3.0"/> + <Option Name="SimulatorGccVersionModelSim" Val="7.4.0"/> + <Option Name="SimulatorGccVersionQuesta" Val="7.4.0"/> + <Option Name="SimulatorGccVersionXcelium" Val="9.3.0"/> + <Option Name="SimulatorGccVersionVCS" Val="9.2.0"/> + <Option Name="SimulatorGccVersionRiviera" Val="9.3.0"/> + <Option Name="SimulatorGccVersionActiveHdl" Val="9.3.0"/> + <Option Name="TargetLanguage" Val="VHDL"/> + <Option Name="BoardPart" Val="avnet.com:zedboard:part0:1.4"/> + <Option Name="ActiveSimSet" Val="sim_1"/> + <Option Name="DefaultLib" Val="xil_defaultlib"/> + <Option Name="ProjectType" Val="Default"/> + <Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/> + <Option Name="IPDefaultOutputPath" Val="$PGENDIR/sources_1"/> + <Option Name="IPCachePermission" Val="read"/> + <Option Name="IPCachePermission" Val="write"/> + <Option Name="EnableCoreContainer" Val="FALSE"/> + <Option Name="EnableResourceEstimation" Val="FALSE"/> + <Option Name="SimCompileState" Val="TRUE"/> + <Option Name="CreateRefXciForCoreContainers" Val="FALSE"/> + <Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/> + <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/> + <Option Name="EnableBDX" Val="FALSE"/> + <Option Name="DSABoardId" Val="zedboard"/> + <Option Name="WTXSimLaunchSim" Val="0"/> + <Option Name="WTModelSimLaunchSim" Val="0"/> + <Option Name="WTQuestaLaunchSim" Val="0"/> + <Option Name="WTIesLaunchSim" Val="0"/> + <Option Name="WTVcsLaunchSim" Val="0"/> + <Option Name="WTRivieraLaunchSim" Val="0"/> + <Option Name="WTActivehdlLaunchSim" Val="0"/> + <Option Name="WTXSimExportSim" Val="0"/> + <Option Name="WTModelSimExportSim" Val="0"/> + <Option Name="WTQuestaExportSim" Val="0"/> + <Option Name="WTIesExportSim" Val="0"/> + <Option Name="WTVcsExportSim" Val="0"/> + <Option Name="WTRivieraExportSim" Val="0"/> + <Option Name="WTActivehdlExportSim" Val="0"/> + <Option Name="GenerateIPUpgradeLog" Val="TRUE"/> + <Option Name="XSimRadix" Val="hex"/> + <Option Name="XSimTimeUnit" Val="ns"/> + <Option Name="XSimArrayDisplayLimit" Val="1024"/> + <Option Name="XSimTraceLimit" Val="65536"/> + <Option Name="SimTypes" Val="rtl"/> + <Option Name="SimTypes" Val="bfm"/> + <Option Name="SimTypes" Val="tlm"/> + <Option Name="SimTypes" Val="tlm_dpi"/> + <Option Name="MEMEnableMemoryMapGeneration" Val="TRUE"/> + <Option Name="DcpsUptoDate" Val="TRUE"/> + <Option Name="ClassicSocBoot" Val="FALSE"/> + <Option Name="LocalIPRepoLeafDirName" Val="ip_repo"/> + </Configuration> + <FileSets Version="1" Minor="32"> + <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1"> + <Filter Type="Srcs"/> + <File Path="$PPRDIR/../src/hdl/controlUnit.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="controlUnit"/> + <Option Name="TopAutoSet" Val="TRUE"/> + </Config> + </FileSet> + <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1"> + <Filter Type="Constrs"/> + <Config> + <Option Name="ConstrsType" Val="XDC"/> + </Config> + </FileSet> + <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1"> + <Filter Type="Srcs"/> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="controlUnit"/> + <Option Name="TopLib" Val="xil_defaultlib"/> + <Option Name="TopAutoSet" Val="TRUE"/> + <Option Name="TransportPathDelay" Val="0"/> + <Option Name="TransportIntDelay" Val="0"/> + <Option Name="SelectedSimModel" Val="rtl"/> + <Option Name="PamDesignTestbench" Val=""/> + <Option Name="PamDutBypassFile" Val="xil_dut_bypass"/> + <Option Name="PamSignalDriverFile" Val="xil_bypass_driver"/> + <Option Name="PamPseudoTop" Val="pseudo_tb"/> + <Option Name="SrcSet" Val="sources_1"/> + </Config> + </FileSet> + <FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1"> + <Filter Type="Utils"/> + <Config> + <Option Name="TopAutoSet" Val="TRUE"/> + </Config> + </FileSet> + </FileSets> + <Simulators> + <Simulator Name="XSim"> + <Option Name="Description" Val="Vivado Simulator"/> + <Option Name="CompiledLib" Val="0"/> + </Simulator> + <Simulator Name="ModelSim"> + <Option Name="Description" Val="ModelSim Simulator"/> + </Simulator> + <Simulator Name="Questa"> + <Option Name="Description" Val="Questa Advanced Simulator"/> + </Simulator> + <Simulator Name="Xcelium"> + <Option Name="Description" Val="Xcelium Parallel Simulator"/> + </Simulator> + <Simulator Name="VCS"> + <Option Name="Description" Val="Verilog Compiler Simulator (VCS)"/> + </Simulator> + <Simulator Name="Riviera"> + <Option Name="Description" Val="Riviera-PRO Simulator"/> + </Simulator> + </Simulators> + <Runs Version="1" Minor="22"> + <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7z020clg484-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true"> + <Strategy Version="1" Minor="2"> + <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2024"/> + <Step Id="synth_design"/> + </Strategy> + <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2024"/> + <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> + <RQSFiles/> + </Run> + <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7z020clg484-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1" ParallelReportGen="true"> + <Strategy Version="1" Minor="2"> + <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2024"/> + <Step Id="init_design"/> + <Step Id="opt_design"/> + <Step Id="power_opt_design"/> + <Step Id="place_design"/> + <Step Id="post_place_power_opt_design"/> + <Step Id="phys_opt_design"/> + <Step Id="route_design"/> + <Step Id="post_route_phys_opt_design"/> + <Step Id="write_bitstream"/> + </Strategy> + <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2024"/> + <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> + <RQSFiles/> + </Run> + </Runs> + <Board> + <Jumpers/> + </Board> + <DashboardSummary Version="1" Minor="0"> + <Dashboards> + <Dashboard Name="default_dashboard"> + <Gadgets> + <Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_drc_0 "/> + </Gadget> + <Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_methodology_0 "/> + </Gadget> + <Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_power_0 "/> + </Gadget> + <Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_timing_summary_0 "/> + </Gadget> + <Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="synth_1#synth_1_synth_report_utilization_0 "/> + <GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/> + <GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/> + </Gadget> + <Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_place_report_utilization_0 "/> + </Gadget> + </Gadgets> + </Dashboard> + <CurrentDashboard>default_dashboard</CurrentDashboard> + </Dashboards> + </DashboardSummary> +</Project> diff --git a/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd new file mode 100644 index 0000000000000000000000000000000000000000..ae02b33fcbc54ce94e5475bb06c8e83bdf0f3669 --- /dev/null +++ b/src/hdl/controlUnit.vhd @@ -0,0 +1,145 @@ +------------------------------------------------------------------------------- +-- Title : controlUnit +-- Project : +------------------------------------------------------------------------------- +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity controlUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSampleValid : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_processingDone : in std_logic; + O_loadShift1 : out std_logic; -- filtered sample + O_loadShift2 : out std_logic; -- filtered sample + O_loadShift3 : out std_logic; -- filtered sample + O_initAddress : out std_logic; -- Control signal to initialize register read address + O_incrAddress : out std_logic; -- Control signal to increment register read address + O_initSum : out std_logic; -- Control signal to initialize the MAC register + O_cntrMux : out std_logic_vector(1 downto 0); + O_loadSum : out std_logic; -- Control signal to load the MAC register; + O_loadY : out std_logic; -- Control signal to load Y register + O_FilteredSampleValid : out std_logic -- Data valid signal for filtered sample + ); + +end entity controlUnit; +architecture archi_operativeUnit of controlUnit is + + + type T_state is (WAIT_SAMPLE, STORE1, STORE2, STORE3, PROCESSING_LOOP1, PROCESSING_LOOP2, PROCESSING_LOOP3,PROCESSING_LOOP4, INTER_IIR, OUTPUT, WAIT_END_SAMPLE); -- state list + signal SR_presentState : T_state; + signal SR_futurState : T_state; + +begin + + process (I_reset, I_clock) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + SR_presentState <= WAIT_SAMPLE; + elsif rising_edge(I_clock) then -- rising clock edge + SR_presentState <= SR_futurState; + end if; + end process; + + process (I_clock) is + begin + case SR_presentState is + + when WAIT_SAMPLE => + O_cntrMux <= "00"; + if ( I_inputSampleValid ='1') then + SR_futurState <= STORE1; + else + SR_futurState <= WAIT_SAMPLE; + end if; + + + when STORE1 => + O_cntrMux <= "00"; + SR_futurState <= PROCESSING_LOOP1; + + + when PROCESSING_LOOP1 => + O_cntrMux <= "00"; + if ( I_processingDone ='1') then + SR_futurState <= STORE2; + else + SR_futurState <= PROCESSING_LOOP1; + end if; + + + when STORE2=> + O_cntrMux <= "01"; + SR_futurState <= PROCESSING_LOOP2; + + when PROCESSING_LOOP2 => + O_cntrMux <= "01"; + if ( I_processingDone ='1') then + SR_futurState <= INTER_IIR; + else + SR_futurState <= PROCESSING_LOOP2; + end if; + + when INTER_IIR=> + O_cntrMux <= "10"; + SR_futurState <= PROCESSING_LOOP3; + + when PROCESSING_LOOP3 => + O_cntrMux <= "10"; + if ( I_processingDone ='1') then + SR_futurState <= STORE3; + else + SR_futurState <= PROCESSING_LOOP3; + end if; + + when STORE3 => + O_cntrMux <= "11"; + SR_futurState <= PROCESSING_LOOP4; + + + when PROCESSING_LOOP4 => + O_cntrMux <= "11"; + if ( I_processingDone ='1') then + SR_futurState <= OUTPUT; + else + SR_futurState <= PROCESSING_LOOP4; + end if; + + when OUTPUT => + O_cntrMux <= "11"; + SR_futurState <= WAIT_END_SAMPLE; + + when WAIT_END_SAMPLE => + O_cntrMux <= "00"; + if (I_inputSampleValid ='0') then + SR_futurState <= WAIT_SAMPLE; + else + SR_futurState <= WAIT_END_SAMPLE; + end if; + + + when others => null; + end case; + end process; + + O_loadShift1 <= '1' when SR_presentState = STORE1 else '0'; + O_loadShift2 <= '1' when SR_presentState = STORE2 else '0'; + O_loadShift3 <= '1' when SR_presentState = STORE3 else '0'; + + O_initAddress <= '1' when SR_presentState = STORE1 or SR_presentState = STORE2 or SR_presentState = STORE3 or SR_presentState = INTER_IIR else '0' ; + O_incrAddress <= '1' when SR_presentState = PROCESSING_LOOP1 or SR_presentState = PROCESSING_LOOP2 or SR_presentState = PROCESSING_LOOP3 or SR_presentState = PROCESSING_LOOP4 else '0' ; + O_initSum <= '1' when SR_presentState = STORE1 or SR_presentState = STORE2 or SR_presentState = STORE3 else '0'; + + O_loadSum <= '1' when SR_presentState = PROCESSING_LOOP1 or SR_presentState = PROCESSING_LOOP2 or SR_presentState = PROCESSING_LOOP3 or SR_presentState = PROCESSING_LOOP4 else '0' ; + O_loadY <= '1' when SR_presentState = OUTPUT else '0'; + O_FilteredSampleValid <= '1' when SR_presentState = OUTPUT else '0'; + + + + +end architecture archi_operativeUnit; \ No newline at end of file diff --git a/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd new file mode 100644 index 0000000000000000000000000000000000000000..f1e19abbf8d63333cd0c582a68dee3c62b4be187 --- /dev/null +++ b/src/hdl/operativeUnit.vhd @@ -0,0 +1,254 @@ +------------------------------------------------------------------------------- +-- Title : operativeUnit +-- Project : +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity operativeUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(7 downto 0); -- 8 bit input sample + I_loadShift1 : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift2 : in std_logic; + I_loadShift3 : in std_logic; + I_initAddress : in std_logic; -- Control signal to initialize register read address + I_incrAddress : in std_logic; -- Control signal to increment register read address + I_initSum : in std_logic; -- Control signal to initialize the MAC register + I_loadSum : in std_logic; -- Control signal to load the MAC register; + I_cntrMux : in std_logic_vector(1 downto 0); + I_loadY : in std_logic; -- Control signal to load Y register + O_processingDone : out std_logic; -- Indicate that processing is done + O_Y : out std_logic_vector(7 downto 0) -- filtered sample + ); + +end entity operativeUnit; + +architecture arch_operativeUnit of operativeUnit is + type registerFile is array(0 to 15) of signed(7 downto 0); + signal SR_coefRegister1 : registerFile; + signal SR_coefRegister2 : registerFile; + signal SR_coefRegister3 : registerFile; + signal SR_coefRegister4 : registerFile; + + + signal SR_shiftRegister1 : registerFile; -- shift register file used to store and shift input samples + signal SR_shiftRegister2 : registerFile; + signal SR_shiftRegister3 : registerFile; + signal SC_multOperand1 : signed(7 downto 0); + signal SC_multOperand2 : signed(7 downto 0); + signal SC_MultResult : signed(15 downto 0); -- Result of the multiplication Xi*Hi + signal SC_addResult : signed(19 downto 0); -- result of the accumulation addition + signal SR_sum : signed(19 downto 0); -- Accumulation register + signal SR_Y : signed(7 downto 0); -- filtered sample storage register + signal SR_readAddress : integer range 0 to 15; -- register files read address + + +begin + +-- Low-pass filter provided with octave (or Matlab ;)) command +--fir1(15, .001)/sqrt(sum(fir1(15, .001).^2))*2^6 + SR_coefRegister1 <= (to_signed(2, 8), -- ROM register used file to store FIR coefficients + to_signed(3, 8), + to_signed(6, 8), + to_signed(10, 8), + to_signed(15, 8), + to_signed(20, 8), + to_signed(24, 8), + to_signed(26, 8), + to_signed(26, 8), + to_signed(24, 8), + to_signed(20, 8), + to_signed(15, 8), + to_signed(10, 8), + to_signed(6, 8), + to_signed(3, 8), + to_signed(2, 8) + ); + + SR_coefRegister2 <= (to_signed(2, 8), -- ROM register used file to store FIR coefficients + to_signed(3, 8), + to_signed(6, 8), + to_signed(10, 8), + to_signed(15, 8), + to_signed(20, 8), + to_signed(24, 8), + to_signed(26, 8), + to_signed(26, 8), + to_signed(24, 8), + to_signed(20, 8), + to_signed(15, 8), + to_signed(10, 8), + to_signed(6, 8), + to_signed(3, 8), + to_signed(2, 8) + ); + + SR_coefRegister3 <= (to_signed(2, 8), -- ROM register used file to store FIR coefficients + to_signed(3, 8), + to_signed(6, 8), + to_signed(10, 8), + to_signed(15, 8), + to_signed(20, 8), + to_signed(24, 8), + to_signed(26, 8), + to_signed(26, 8), + to_signed(24, 8), + to_signed(20, 8), + to_signed(15, 8), + to_signed(10, 8), + to_signed(6, 8), + to_signed(3, 8), + to_signed(2, 8) + ); + + SR_coefRegister4 <= (to_signed(2, 8), -- ROM register used file to store FIR coefficients + to_signed(3, 8), + to_signed(6, 8), + to_signed(10, 8), + to_signed(15, 8), + to_signed(20, 8), + to_signed(24, 8), + to_signed(26, 8), + to_signed(26, 8), + to_signed(24, 8), + to_signed(20, 8), + to_signed(15, 8), + to_signed(10, 8), + to_signed(6, 8), + to_signed(3, 8), + to_signed(2, 8) + ); + + + shift1 : process (I_reset, I_clock) is + begin -- process shift + if I_reset = '1' then -- asynchronous reset (active high) + SR_shiftRegister1 <= (others => (others => '0')); + elsif rising_edge(I_clock) then + if I_loadShift1 = '1' then + for i in 15 downto 1 loop + SR_shiftRegister1(i) <= SR_shiftRegister1(i-1); + end loop; + SR_shiftRegister1(0) <= signed(I_inputSample); + end if; + end if; + end process shift1; + + shift2 : process (I_reset, I_clock) is + begin -- process shift + if I_reset = '1' then -- asynchronous reset (active high) + SR_shiftRegister2 <= (others => (others => '0')); + elsif rising_edge(I_clock) then + if I_loadShift2 = '1' then + for i in 15 downto 1 loop + SR_shiftRegister2(i) <= SR_shiftRegister2(i-1); + end loop; + if SR_sum(6) = '1' then + SR_shiftRegister2(0) <= to_signed( to_integer(SR_sum(14 downto 7)) + 1, 8) ; + else + SR_shiftRegister2(0) <= SR_sum(14 downto 7); + end if; + end if; + end if; + end process shift2; + + shift3 : process (I_reset, I_clock) is + begin -- process shift + if I_reset = '1' then -- asynchronous reset (active high) + SR_shiftRegister3 <= (others => (others => '0')); + elsif rising_edge(I_clock) then + if I_loadShift3 = '1' then + for i in 15 downto 1 loop + SR_shiftRegister3(i) <= SR_shiftRegister3(i-1); + end loop; + if SR_sum(6) = '1' then + SR_shiftRegister3(0) <= to_signed( to_integer(SR_sum(14 downto 7)) + 1, 8) ; + else + SR_shiftRegister3(0) <= SR_sum(14 downto 7); + end if; + end if; + end if; + end process shift3; + + + incr_address : process (I_reset, I_clock) is + begin + + + if I_reset = '1' then -- asynchronous reset (active high) + SR_readAddress <= 0; + elsif rising_edge(I_clock) then + if I_initAddress = '1' then + SR_readAddress <= 0; + elsif I_incrAddress = '1' then + if SR_readAddress = 15 then + SR_readAddress <= 0; + else + SR_readAddress <= SR_readAddress + 1; + end if; + end if; + end if; + end process incr_address; + + O_processingDone <= '1' when SR_readAddress=15 else '0' ; + + Mux : process (SR_readAddress, I_cntrMux) is + begin + case I_cntrMux is + + when "00" => + SC_multOperand1 <= SR_shiftRegister1(SR_readAddress); + SC_multOperand2 <= SR_coefRegister1(SR_readAddress); + when "01" => + SC_multOperand1 <= SR_shiftRegister2(SR_readAddress); + SC_multOperand2 <= SR_coefRegister2(SR_readAddress); + when "10" => + SC_multOperand1 <= SR_shiftRegister3(SR_readAddress); + SC_multOperand2 <= SR_coefRegister3(SR_readAddress); + when others => + SC_multOperand1 <= SR_shiftRegister3(SR_readAddress); + SC_multOperand2 <= SR_coefRegister4(SR_readAddress); + end case; + end process; + + SC_MultResult <= SC_multOperand1 * SC_multOperand2; -- 16 bits + SC_addResult <= resize(SC_MultResult, SC_addResult'length) + SR_sum; + + sum_acc : process (I_reset, I_clock) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + SR_sum <= (others => '0'); + elsif rising_edge(I_clock) then + if I_initSum = '1' then + SR_sum <= (others => '0'); + elsif I_loadSum = '1' then + SR_sum <= SC_addResult; + end if; + end if; + end process sum_acc; + + store_result : process (I_reset, I_clock) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + SR_Y <= (others => '0'); + elsif rising_edge(I_clock) then + if I_loadY = '1' then + -- Rounding: add 1 if bit 11 is '1' + if SR_sum(6) = '1' then + SR_Y <= to_signed( to_integer(SR_sum(14 downto 7)) + 1, 8) ; + else + SR_Y <= SR_sum(14 downto 7); + end if; + end if; + end if; + + end process store_result; + + O_Y <= std_logic_vector(SR_Y); + +end architecture arch_operativeUnit; \ No newline at end of file