Examples of using cocotb for functional verification of VHDL designs with GHDL.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3 lines
20 KiB

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="771px" height="271px" viewBox="-0.5 -0.5 771 271" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2021-02-24T21:16:54.413Z&quot; agent=&quot;5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36&quot; version=&quot;13.6.9&quot; etag=&quot;H6NqWOhdMwn0khNj5a5v&quot; type=&quot;github&quot;&gt;&lt;diagram id=&quot;r8NbWRaPU3hClnF-LqDV&quot; name=&quot;Page-1&quot;&gt;7Zptj5s4EIB/TaS7D0XYxrx8bN52K7XSStnb632kwU3QERw5zibpr68JJgGGvcsmDhu2ZaUsHmNjnhl7xgM9Mlhs70S4nH/hEUt62I62PTLsYez7WP1mgl0uoLaXC2YijnIROgom8Q+mhbaWruOIrSoXSs4TGS+rwilPUzaVFVkoBN9UL/vOk+pdl+GMAcFkGiZQ+nccybl+LOwe5fcsns2LOyM3yGsWYXGxfpLVPIz4piQiox4ZCM5lfrbYDliSsSu45O3GL9QeBiZYKk9pQEje4jlM1vrh9MDkrnhawddpxLIGqEf6m3ks2WQZTrPajVKvkn2Pk2TAEy72DcjIzf7gUPTonpmQbFsS6aHdMb5gUuzUJbq2oLSrFjdH5oRq2bzEG7taGGo9zw49H1GoE02jmUzR8WVkDvpt0MyrcTi0gsOFOFATDuQbwOHdsp1Qp2ooiAIyuNFQPANkfEBm+NdjL1sLiFqvSP+PJybihM96mfmO1e/T/fDzn5fTG9KRP3RM25iLqkaGPMgS2U1WZhtgiRCA+fTw6XJW43GferZpVtSusvLhhPQaSDkmQMF1++n+LFIlIi9juwIsRFqk5QBa48+dgtWmaVEA6+5256BTW/oDCMppWq2wCVJw6QeYWKQiR11Mear+9VkafcyC0LJE3fmrKttF4Z+sYNGsuI3lV005O89rML0M8IqvxZRVFS5DMWOHkDWXZcP/TzWc7BYES0IZP1cj6Cb6+h4PPFZjPurZr7l4FFi02kn+TLpdOeatdYWCalcfCK13laMAXe0N4vDwp9lI8GY2cm0TIbduIg6yPHw8kNcBe8EnbDuuZC/etQ3GuXWDcYkVOKXD7YLBwJB5Mp2zaJ0wASxnJQX/95CzwLlel1nlYjvLUjUWE9Y04WvVef/bWkqePrLtHrsyDZ7KkmnY+0PLdY5GTTEj8Y9rVwlS6NUP8aPxTUiRxnn1FGyecJi+CORmZoJX2/Vh+8y10iP/05FBwz8hJfHe1XSuSwNqqndkUE3nBsnvSE3YlJrqHRlUE4xTR4tvan93o/s+Qmq+24Z5Kr9Bx8SAgyAwRhttpQrBOgPLbREWjE9Om/+nBrQmt8LFLKiErfRWlpddrZ9Xx6X1huaWD4KvrGWTm5PCrH9r+bVahnnUN95r1CziYzBwRiY2IIdXzUVa0beaXoTgBgMIcH2zd9ayCaPbh52c8xRwlnto/ZXyK3E6e+TKqww/0Borpyjrdia8ivIill0+ggoyDHm5DbhMJGIJjDEn8WKt5h+HdvlmvNx6NNceIAcuzwOughMZq0X34qDF2KxDtcA58CzIqOm9BzIw4xz4Sq0LjBBqFRL0AJ2ARFqFBBNInYBEW4UEHVwnIHmtQoKOrROQWl24KdxhPrKVBHzeLlCqZbMbIsmmZLYJx0/P3Zd1N/tGA0O57PqnUFfMZdMTPsN872o6N5cN1HS9XDaF0c8vp6Zzc9lATcZy2ap4/GA6v/z41TkZ/QQ=&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><rect x="0" y="5" width="350" height="260" rx="39" ry="39" fill="#e6e6e6" stroke="#000000" pointer-events="all"/><rect x="25" y="45" width="150" height="180" rx="22.5" ry="22.5" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="25" y="45" width="150" height="180" rx="22.5" ry="22.5" fill="#ffffff" stroke="#000000" pointer-events="all"/><rect x="520" y="0" width="250" height="270" rx="37.5" ry="37.5" fill="#e6e6e6" stroke="#000000" pointer-events="all"/><rect x="595" y="160" width="100" height="100" rx="15" ry="15" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="595" y="160" width="100" height="100" rx="15" ry="15" fill="#d5e8d4" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 210px; margin-left: 596px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">DUT<br />(Verilog / VHDL)</div></div></div></foreignObject><text x="645" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">DUT...</text></switch></g><rect x="485" y="65" width="70" height="40" rx="6" ry="6" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="485" y="65" width="70" height="40" rx="6" ry="6" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 85px; margin-left: 486px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VPI</div></div></div></foreignObject><text x="520" y="89" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VPI</text></switch></g><rect x="485" y="115" width="70" height="40" rx="6" ry="6" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="485" y="115" width="70" height="40" rx="6" ry="6" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 135px; margin-left: 486px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">VHPI</div></div></div></foreignObject><text x="520" y="139" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">VHPI</text></switch></g><rect x="485" y="165" width="70" height="40" rx="6" ry="6" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="485" y="165" width="70" height="40" rx="6" ry="6" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 185px; margin-left: 486px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">FLI</div></div></div></foreignObject><text x="520" y="189" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">FLI</text></switch></g><rect x="420" y="75" width="40" height="120" rx="6" ry="6" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="420" y="75" width="40" height="120" rx="6" ry="6" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 135px; margin-left: 421px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">GPI</div></div></div></foreignObject><text x="440" y="139" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">GPI</text></switch></g><path d="M 460 105 L 485 85" fill="none" stroke="#000000" stroke-miterlimit="10" transform="translate(2,3)" opacity="0.25"/><path d="M 460 105 L 485 85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 460 135 L 485 135" fill="none" stroke="#000000" stroke-miterlimit="10" transform="translate(2,3)" opacity="0.25"/><path d="M 460 135 L 485 135" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 460 165 L 485 185" fill="none" stroke="#000000" stroke-miterlimit="10" transform="translate(2,3)" opacity="0.25"/><path d="M 460 165 L 485 185" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 612.5 60 C 586.5 60 580 85 600.8 90 C 580 101 603.4 125 620.3 115 C 632 135 671 135 684 115 C 710 115 710 95 693.75 85 C 710 65 684 45 661.25 55 C 645 40 619 40 612.5 60" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g fill="#666666" font-family="Arial,Helvetica" text-anchor="middle" font-size="17px"/><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="17px"><text x="644.5" y="92">Scheduler</text></g><path d="M 695 192 L 708.63 192" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 713.88 192 L 706.88 195.5 L 708.63 192 L 706.88 188.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 695 202 L 708.63 202" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 713.88 202 L 706.88 205.5 L 708.63 202 L 706.88 198.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 695 212 L 708.63 212" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 713.88 212 L 706.88 215.5 L 708.63 212 L 706.88 208.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="310" y="90" width="80" height="30" rx="4.5" ry="4.5" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="310" y="90" width="80" height="30" rx="4.5" ry="4.5" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 105px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Embed</div></div></div></foreignObject><text x="350" y="109" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Embed</text></switch></g><rect x="310" y="150" width="80" height="30" rx="4.5" ry="4.5" fill="#000000" stroke="#000000" transform="translate(2,3)" opacity="0.25"/><rect x="310" y="150" width="80" height="30" rx="4.5" ry="4.5" fill="#ffb570" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 78px; height: 1px; padding-top: 165px; margin-left: 311px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Extend</div></div></div></foreignObject><text x="350" y="169" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Extend</text></switch></g><path d="M 390 105 L 420 105" fill="none" stroke="#000000" stroke-miterlimit="10" transform="translate(2,3)" opacity="0.25"/><path d="M 390 105 L 420 105" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 390 165 L 420 165" fill="none" stroke="#000000" stroke-miterlimit="10" transform="translate(2,3)" opacity="0.25"/><path d="M 390 165 L 420 165" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 220 106.88 C 196 106.88 190 130 209.2 134.63 C 190 144.8 211.6 167 227.2 157.75 C 238 176.25 274 176.25 286 157.75 C 310 157.75 310 139.25 295 130 C 310 111.5 286 93 265 102.25 C 250 88.38 226 88.38 220 106.88" fill="#a9c4eb" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/><g fill="#666666" font-family="Arial,Helvetica" text-anchor="middle" font-size="17px"/><g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="17px"><text x="249.5" y="137">Scheduler</text></g><rect x="145" y="10" width="60" height="20" fill="none" stroke="none" pointer-events="all"/><g fill="#000000" font-family="Helvetica" font-weight="bold" font-size="14px"><text x="146.5" y="24.5">Python</text></g><rect x="615" y="10" width="60" height="20" fill="none" stroke="none" pointer-events="all"/><g fill="#000000" font-family="Helvetica" font-weight="bold" font-size="14px"><text x="616.5" y="24.5">Simulator</text></g><rect x="95" y="82.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 90px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="94" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="95" y="102.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 110px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="114" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="95" y="122.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 130px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="134" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="95" y="142.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 150px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="154" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="95" y="162.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 170px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="174" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="95" y="182.5" width="70" height="15" rx="2.25" ry="2.25" fill="#a9c4eb" stroke="#000000" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 68px; height: 1px; padding-top: 190px; margin-left: 96px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Coroutine</div></div></div></foreignObject><text x="130" y="194" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Coroutine</text></switch></g><rect x="80" y="60" width="30" height="20" fill="none" stroke="none" pointer-events="all"/><g fill="#000000" font-family="Helvetica" font-weight="bold" font-size="14px"><text x="81.5" y="74.5">Test</text></g><path d="M 575 192 L 588.63 192" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593.88 192 L 586.88 195.5 L 588.63 192 L 586.88 188.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 575 202 L 588.63 202" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593.88 202 L 586.88 205.5 L 588.63 202 L 586.88 198.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 575 212 L 588.63 212" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 593.88 212 L 586.88 215.5 L 588.63 212 L 586.88 208.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>