<mxfile host="65bd71144e">
    <diagram name="Page-1" id="vqPtpfTpDl2-zyb6y6Gk">
        <mxGraphModel dx="1708" dy="882" 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="QNMoGRvylN2gnaf27AE2-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="200" y="270" width="680" height="340" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="250" y="480" width="540" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-3" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;entryX=0.47;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.683;exitY=0.008;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="QNMoGRvylN2gnaf27AE2-24" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="650.4" y="435" as="sourcePoint"/>
                        <mxPoint x="649.9999999999999" y="355" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-4" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=0.588;exitY=0.999;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.489;entryY=0.019;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="QNMoGRvylN2gnaf27AE2-23" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="579.7999999999997" y="354.99999999999994" as="sourcePoint"/>
                        <mxPoint x="579.96" y="435.16" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-5" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.118;entryY=0.001;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="QNMoGRvylN2gnaf27AE2-7" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="299.7999999999998" y="400" as="sourcePoint"/>
                        <mxPoint x="299.7999999999998" y="480.0799999999999" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-6" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.118;entryY=0.001;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="QNMoGRvylN2gnaf27AE2-8" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="370" y="360" as="sourcePoint"/>
                        <mxPoint x="369.8" y="480" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-7" value="setClk()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="270" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-8" value="setReset()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="340" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-9" value="enable()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="410" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-10" value="setInitial()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="480" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-11" value="setBtn()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="550" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-12" value="getLed()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="620" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-13" value="loadRAM" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="690" y="325" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-14" value="dumpRAM()" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="760" y="325" width="70" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-15" value="cpu_harness" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="790" y="580" width="90" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-20" value="cpu (device under test)" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="645" y="530" width="150" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-21" value="clk" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="280" y="480" width="40" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-22" value="rst" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="345" y="480" width="40" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-23" value="btn[6:0]" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="550" y="480" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-24" value="led[7:0]" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="610" y="480" width="60" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-25" value="DPI-C tasks and functions" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="500" y="295" width="160" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-26" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="200" y="80" width="680" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-27" value="tb_cpu_harness" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="780" y="210" width="110" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-28" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;" parent="1" vertex="1">
                    <mxGeometry x="610" y="100" width="130" height="110" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-29" value="&lt;b&gt;class cpu&lt;/b&gt;&lt;div&gt;cpu::tick()&lt;/div&gt;&lt;div&gt;cpu::setReset()&lt;/div&gt;&lt;div&gt;cpu::waitClocks()&lt;/div&gt;&lt;div&gt;cpu::loadRAM()&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="630" y="110" width="110" height="100" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.052;exitY=0.966;exitDx=0;exitDy=0;exitPerimeter=0;flowAnimation=0;shadow=0;dashed=1;" parent="1" source="QNMoGRvylN2gnaf27AE2-28" target="QNMoGRvylN2gnaf27AE2-7" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="940" y="260" as="sourcePoint"/>
                        <mxPoint x="500" y="400" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-31" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.138;exitY=1.004;exitDx=0;exitDy=0;exitPerimeter=0;dashed=1;" parent="1" source="QNMoGRvylN2gnaf27AE2-28" target="QNMoGRvylN2gnaf27AE2-8" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="557" y="216" as="sourcePoint"/>
                        <mxPoint x="310" y="335" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-32" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.834;exitY=1.006;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.603;entryY=0.068;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;" parent="1" source="QNMoGRvylN2gnaf27AE2-29" target="QNMoGRvylN2gnaf27AE2-14" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="-20" y="450" as="sourcePoint"/>
                        <mxPoint x="30" y="400" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-33" value="&lt;b&gt;&lt;font style=&quot;font-size: 19px;&quot;&gt;...&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
                    <mxGeometry x="650" y="200" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-34" value="&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;b&gt;main()&lt;/b&gt;&lt;div&gt;create cpu instance&lt;/div&gt;&lt;div&gt;cpu.loadRam(&quot;hexfile&quot;);&lt;/div&gt;&lt;div&gt;cpu.reset(10);&lt;/div&gt;&lt;div&gt;cpu.start();&lt;/div&gt;&lt;div&gt;...&lt;/div&gt;&lt;div&gt;cpu.stop();&lt;/div&gt;&lt;div&gt;cpu.delete();&lt;/div&gt;&lt;/blockquote&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=default;align=left;" parent="1" vertex="1">
                    <mxGeometry x="260" y="95" width="210" height="130" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-35" value="" style="shape=flexArrow;endArrow=classic;startArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.002;entryY=0.547;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#bac8d3;strokeColor=default;" parent="1" source="QNMoGRvylN2gnaf27AE2-34" target="QNMoGRvylN2gnaf27AE2-28" edge="1">
                    <mxGeometry width="100" height="100" relative="1" as="geometry">
                        <mxPoint x="440" y="250" as="sourcePoint"/>
                        <mxPoint x="530" y="160" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-36" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;C++&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;rotation=-90;" parent="1" vertex="1">
                    <mxGeometry x="930" y="140" width="60" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-37" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;SystemVerilog&lt;/b&gt;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;rotation=-90;" parent="1" vertex="1">
                    <mxGeometry x="880" y="394" width="160" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-39" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="960" y="120" as="sourcePoint"/>
                        <mxPoint x="960" y="80" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-40" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="959.66" y="240" as="sourcePoint"/>
                        <mxPoint x="959.66" y="200" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-41" value="" style="endArrow=none;html=1;rounded=0;exitX=0.996;exitY=0.511;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="QNMoGRvylN2gnaf27AE2-37" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="959.66" y="325" as="sourcePoint"/>
                        <mxPoint x="959.66" y="285" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="QNMoGRvylN2gnaf27AE2-42" value="" style="endArrow=none;html=1;rounded=0;" parent="1" target="QNMoGRvylN2gnaf27AE2-37" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="959.66" y="560" as="sourcePoint"/>
                        <mxPoint x="959.66" y="520" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
                    <mxGeometry x="160" y="40" width="890" height="620" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>
