From 02e3847b22e7783809e5900656eebf3d02cbabd5 Mon Sep 17 00:00:00 2001 From: vauban353 <vauban353@gmail.com> Date: Sun, 5 Feb 2023 10:03:39 +0000 Subject: [PATCH] Documentation: Add skeleton documentation for gateware overview and GPIO. --- .../BeagleVFire-ImmutableConnections.svg | 324 ++++++++++ doc/diagrams/BeagleVFire-overview.svg | 578 ++++++++++++++++++ doc/gateware_design_overview.md | 9 + doc/mss_gpio.md | 41 ++ doc/user_leds.md | 20 + 5 files changed, 972 insertions(+) create mode 100644 doc/diagrams/BeagleVFire-ImmutableConnections.svg create mode 100644 doc/diagrams/BeagleVFire-overview.svg create mode 100644 doc/gateware_design_overview.md create mode 100644 doc/mss_gpio.md create mode 100644 doc/user_leds.md diff --git a/doc/diagrams/BeagleVFire-ImmutableConnections.svg b/doc/diagrams/BeagleVFire-ImmutableConnections.svg new file mode 100644 index 0000000..3843cc9 --- /dev/null +++ b/doc/diagrams/BeagleVFire-ImmutableConnections.svg @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by Microsoft Visio, SVG Export BeagleVFire-ImmutableConnections.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" + xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="11.6929in" height="8.26772in" + viewBox="0 0 841.89 595.276" xml:space="preserve" color-interpolation-filters="sRGB" class="st9"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"> + <v:userDefs> + <v:ud v:nameU="msvSubprocessMaster" v:prompt="" v:val="VT4(Rectangle)"/> + <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/> + </v:userDefs> + </v:documentProperties> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#fff2cc;fill-opacity:0.5;stroke:#000000;stroke-width:0.5} + .st2 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-weight:bold} + .st3 {fill:#f2f2f2;stroke:#000000;stroke-width:0.5} + .st4 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold} + .st5 {font-size:1em} + .st6 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} + .st7 {fill:none;stroke:none;stroke-width:0.25} + .st8 {fill:#000000;font-family:Calibri;font-size:0.666664em} + .st9 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <v:userDefs> + <v:ud v:nameU="msvThemeOrder" v:val="VT0(0):26"/> + </v:userDefs> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <g id="shape7-1" v:mID="7" v:groupContext="shape" transform="translate(155.906,-127.559)"> + <title>Rectangle.7</title> + <desc>Immutable Connections</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="248.031" cy="382.677" width="496.07" height="425.197"/> + <rect x="0" y="170.079" width="496.063" height="425.197" class="st1"/> + <text x="4" y="186.68" class="st2" v:langID="6153"><v:paragraph/><v:tabList/>Immutable Connections</text> </g> + <g id="shape1-4" v:mID="1" v:groupContext="shape" transform="translate(283.465,-255.118)"> + <title>Rectangle</title> + <desc>Microprocessor Subsystem</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="92.126" cy="467.717" width="184.26" height="255.118"/> + <rect x="0" y="340.157" width="184.252" height="255.118" class="st3"/> + <text x="59.76" y="464.72" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Microprocessor<v:newlineChar/><tspan + x="69.72" dy="1.2em" class="st5">Subsystem</tspan></text> </g> + <g id="shape2-8" v:mID="2" v:groupContext="shape" transform="translate(170.079,-297.638)"> + <title>Rectangle.2</title> + <desc>USB</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="19.92" y="584.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>USB</text> </g> + <g id="shape3-11" v:mID="3" v:groupContext="shape" transform="translate(170.079,-481.89)"> + <title>Rectangle.3</title> + <desc>Debug UART</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="14.94" y="578.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Debug <tspan x="16.76" + dy="1.2em" class="st5">UART</tspan></text> </g> + <g id="shape5-15" v:mID="5" v:groupContext="shape" transform="translate(524.409,-467.717)"> + <title>Rectangle.5</title> + <desc>Ethernet</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="56.6929" cy="574.016" width="113.39" height="42.5197"/> + <rect x="0" y="552.756" width="113.386" height="42.5197" class="st3"/> + <text x="38.61" y="577.02" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Ethernet</text> </g> + <g id="shape6-18" v:mID="6" v:groupContext="shape" transform="translate(524.409,-340.157)"> + <title>Rectangle.6</title> + <desc>SYZYGY Connector</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="56.6929" cy="574.016" width="113.39" height="42.5197"/> + <rect x="0" y="552.756" width="113.386" height="42.5197" class="st3"/> + <text x="40.96" y="571.02" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>SYZYGY<v:newlineChar/><tspan + x="35.18" dy="1.2em" class="st5">Connector</tspan></text> </g> + <g id="shape8-22" v:mID="8" v:groupContext="shape" transform="translate(170.079,-411.024)"> + <title>Rectangle.8</title> + <desc>User Button</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="18.79" y="578.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>User <tspan x="14.02" + dy="1.2em" class="st5">Button</tspan></text> </g> + <g id="shape9-26" v:mID="9" v:groupContext="shape" transform="translate(170.079,-255.118)"> + <title>Rectangle.9</title> + <desc>eMMC</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="14.44" y="584.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>eMMC</text> </g> + <g id="shape10-29" v:mID="10" v:groupContext="shape" v:layerMember="0" transform="translate(226.772,-262.205)"> + <title>Dynamic connector</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="shape11-32" v:mID="11" v:groupContext="shape" v:layerMember="0" transform="translate(226.772,-304.724)"> + <title>Dynamic connector.11</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="shape12-35" v:mID="12" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-361.417)"> + <title>Dynamic connector.12</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 602.36 L56.69 602.36" class="st6"/> + </g> + <g id="shape13-38" v:mID="13" v:groupContext="shape" transform="translate(425.197,-432.283)"> + <title>Sheet.13</title> + <desc>I2C0</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="21.2598" cy="588.189" width="42.52" height="14.1732"/> + <rect x="0" y="581.102" width="42.5197" height="14.1732" class="st7"/> + <text x="24.13" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>I2C0</text> </g> + <g id="shape15-41" v:mID="15" v:groupContext="shape" transform="translate(425.197,-262.205)"> + <title>Sheet.15</title> + <desc>I2C1</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="21.2598" cy="588.189" width="42.52" height="14.1732"/> + <rect x="0" y="581.102" width="42.5197" height="14.1732" class="st7"/> + <text x="24.13" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>I2C1</text> </g> + <g id="shape16-44" v:mID="16" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-446.457)"> + <title>Dynamic connector.16</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 602.36 L56.69 602.36" class="st6"/> + </g> + <g id="shape18-47" v:mID="18" v:groupContext="shape" transform="translate(425.197,-488.976)"> + <title>Sheet.18</title> + <desc>SGMII0</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="21.2598" cy="588.189" width="42.52" height="14.1732"/> + <rect x="0" y="581.102" width="42.5197" height="14.1732" class="st7"/> + <text x="14.87" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>SGMII0</text> </g> + <g id="shape19-50" v:mID="19" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-488.976)"> + <title>Dynamic connector.19</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="shape20-53" v:mID="20" v:groupContext="shape" transform="translate(411.024,-474.803)"> + <title>Sheet.20</title> + <desc>MAC0_MDIO</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="588.189" width="56.7" height="14.1732"/> + <rect x="0" y="581.102" width="56.6929" height="14.1732" class="st7"/> + <text x="9.85" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>MAC0_MDIO</text> </g> + <g id="shape21-56" v:mID="21" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-474.803)"> + <title>Dynamic connector.21</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="shape22-59" v:mID="22" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-439.37)"> + <title>Dynamic connector.22</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L10.63 595.28 L10.63 666.73 L56.69 666.73" class="st6"/> + </g> + <g id="shape23-62" v:mID="23" v:groupContext="shape" transform="translate(425.197,-347.244)"> + <title>Sheet.23</title> + <desc>SGMII1</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="21.2598" cy="588.189" width="42.52" height="14.1732"/> + <rect x="0" y="581.102" width="42.5197" height="14.1732" class="st7"/> + <text x="14.87" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>SGMII1</text> </g> + <g id="shape24-65" v:mID="24" v:groupContext="shape" transform="translate(524.409,-255.118)"> + <title>Rectangle.24</title> + <desc>EEPROM</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="10.24" y="584.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>EEPROM</text> </g> + <g id="shape25-68" v:mID="25" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-276.378)"> + <title>Dynamic connector.25</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 602.36 L56.69 602.36" class="st6"/> + </g> + <g id="shape26-71" v:mID="26" v:groupContext="shape" transform="translate(524.409,-198.425)"> + <title>Rectangle.26</title> + <desc>M.2 Connectors</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="56.6929" cy="574.016" width="113.39" height="42.5197"/> + <rect x="0" y="552.756" width="113.386" height="42.5197" class="st3"/> + <text x="48.45" y="571.02" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>M.2<v:newlineChar/><tspan + x="33.19" dy="1.2em" class="st5">Connectors</tspan></text> </g> + <g id="shape27-75" v:mID="27" v:groupContext="shape" transform="translate(524.409,-141.732)"> + <title>Rectangle.27</title> + <desc>MIPI-CSI Connectors</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="56.6929" cy="574.016" width="113.39" height="42.5197"/> + <rect x="0" y="552.756" width="113.386" height="42.5197" class="st3"/> + <text x="39.12" y="571.02" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>MIPI-CSI<v:newlineChar/><tspan + x="33.19" dy="1.2em" class="st5">Connectors</tspan></text> </g> + <g id="shape28-79" v:mID="28" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-269.291)"> + <title>Dynamic connector.28</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L10.63 595.28 L10.63 701.57 L56.69 701.57" class="st6"/> + </g> + <g id="shape29-82" v:mID="29" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-269.291)"> + <title>Dynamic connector.29</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L10.63 595.28 L10.63 644.88 L56.69 644.88" class="st6"/> + </g> + <g id="shape30-85" v:mID="30" v:groupContext="shape" transform="translate(283.465,-488.976)"> + <title>Sheet.30</title> + <desc>MMUART0</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="588.189" width="56.7" height="14.1732"/> + <rect x="0" y="581.102" width="56.6929" height="14.1732" class="st7"/> + <text x="4" y="590.59" class="st8" v:langID="6153"><v:paragraph/><v:tabList/>MMUART0</text> </g> + <g id="shape31-88" v:mID="31" v:groupContext="shape" v:layerMember="0" transform="translate(226.772,-488.976)"> + <title>Dynamic connector.31</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="group32-91" transform="translate(524.409,-396.85)" v:mID="32" v:groupContext="group"> + <title>Sheet.32</title> + <g id="shape4-92" v:mID="4" v:groupContext="shape"> + <title>Rectangle.4</title> + <desc>Cape Connectors</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="56.6929" cy="566.929" width="113.39" height="56.6929"/> + <rect x="0" y="538.583" width="113.386" height="56.6929" class="st3"/> + <text x="46.38" y="563.93" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Cape<v:newlineChar/><tspan + x="33.19" dy="1.2em" class="st5">Connectors</tspan></text> </g> + <g id="shape17-96" v:mID="17" v:groupContext="shape" transform="translate(7.99361E-15,-42.5197)"> + <title>Sheet.17</title> + <desc>P9 (19, 20)</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="590.551" width="56.7" height="9.44882"/> + <rect x="0" y="585.827" width="56.6929" height="9.44882" class="st7"/> + <text x="4" y="592.95" class="st8" v:langID="6153"><v:paragraph/><v:tabList/>P9 (19, 20)</text> </g> + </g> + <g id="shape33-99" v:mID="33" v:groupContext="shape" v:layerMember="0" transform="translate(226.772,-418.11)"> + <title>Dynamic connector.33</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + <g id="shape34-102" v:mID="34" v:groupContext="shape" transform="translate(524.409,-297.638)"> + <title>Rectangle.34</title> + <desc>ADC</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st3"/> + <text x="19.52" y="584.1" class="st4" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>ADC</text> </g> + <g id="shape35-105" v:mID="35" v:groupContext="shape" transform="translate(425.197,-304.724)"> + <title>Sheet.35</title> + <desc>QSPI</desc> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="21.2598" cy="588.189" width="42.52" height="14.1732"/> + <rect x="0" y="581.102" width="42.5197" height="14.1732" class="st7"/> + <text x="23.31" y="590.59" class="st8" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>QSPI</text> </g> + <g id="shape36-108" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(467.717,-304.724)"> + <title>Dynamic connector.36</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 588.19 L56.69 588.19" class="st6"/> + </g> + </g> +</svg> diff --git a/doc/diagrams/BeagleVFire-overview.svg b/doc/diagrams/BeagleVFire-overview.svg new file mode 100644 index 0000000..77c1bba --- /dev/null +++ b/doc/diagrams/BeagleVFire-overview.svg @@ -0,0 +1,578 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by Microsoft Visio, SVG Export BeagleVFire-overview.svg Page-1 --> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" + xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="11.6929in" height="8.26772in" + viewBox="0 0 841.89 595.276" xml:space="preserve" color-interpolation-filters="sRGB" class="st15"> + <v:documentProperties v:langID="1033" v:metric="true" v:viewMarkup="false"> + <v:userDefs> + <v:ud v:nameU="msvSubprocessMaster" v:prompt="" v:val="VT4(Rectangle)"/> + <v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/> + </v:userDefs> + </v:documentProperties> + + <style type="text/css"> + <![CDATA[ + .st1 {fill:#e2efd9;fill-opacity:0.5;stroke:#c7c8c8;stroke-width:0.25} + .st2 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-weight:bold} + .st3 {fill:#fbe5d5;stroke:#c7c8c8;stroke-width:0.25} + .st4 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-style:italic} + .st5 {fill:#deebf6;stroke:#c7c8c8;stroke-width:0.25} + .st6 {font-size:1em} + .st7 {fill:#e2efd9;stroke:#c7c8c8;stroke-width:0.25} + .st8 {fill:#dae2f3;stroke:#c7c8c8;stroke-width:0.25} + .st9 {fill:#ededed;stroke:#000000;stroke-width:0.5} + .st10 {fill:#000000;font-family:Calibri;font-size:0.833336em} + .st11 {marker-end:url(#mrkr4-67);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1} + .st12 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.35714285714286} + .st13 {marker-end:url(#mrkr4-248);stroke:#000000;stroke-dasharray:2.25,2.25;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75} + .st14 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.29411764705882} + .st15 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3} + ]]> + </style> + + <defs id="Markers"> + <g id="lend4"> + <path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/> + </g> + <marker id="mrkr4-67" class="st12" v:arrowType="4" v:arrowSize="1" v:setback="5.6" refX="-5.6" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-2.8,-2.8) "/> + </marker> + <marker id="mrkr4-248" class="st14" v:arrowType="4" v:arrowSize="1" v:setback="6.8" refX="-6.8" orient="auto" + markerUnits="strokeWidth" overflow="visible"> + <use xlink:href="#lend4" transform="scale(-3.4,-3.4) "/> + </marker> + </defs> + <g v:mID="0" v:index="1" v:groupContext="foregroundPage"> + <v:userDefs> + <v:ud v:nameU="msvThemeOrder" v:val="VT0(0):26"/> + </v:userDefs> + <title>Page-1</title> + <v:pageProperties v:drawingScale="0.0393701" v:pageScale="0.0393701" v:drawingUnits="24" v:shadowOffsetX="8.50394" + v:shadowOffsetY="-8.50394"/> + <v:layer v:name="Connector" v:index="0"/> + <g id="shape59-1" v:mID="59" v:groupContext="shape" transform="translate(105.732,-78.5197)"> + <title>Rectangle.59</title> + <desc>BeagleV-Fire</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="304.724" cy="354.331" width="609.45" height="481.89"/> + <rect x="0" y="113.386" width="609.449" height="481.89" class="st1"/> + <text x="532.07" y="129.99" class="st2" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>BeagleV-Fire</text> </g> + <g id="shape46-4" v:mID="46" v:groupContext="shape" transform="translate(119.906,-135.213)"> + <title>Rectangle.46</title> + <desc>PolarFire SoC FPGA</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="290.551" cy="439.37" width="581.11" height="311.811"/> + <rect x="0" y="283.465" width="581.102" height="311.811" class="st3"/> + <text x="468.59" y="300.06" class="st4" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>PolarFire SoC FPGA</text> </g> + <g id="shape26-7" v:mID="26" v:groupContext="shape" transform="translate(148.252,-149.386)"> + <title>Rectangle.26</title> + <desc>FPGA I/Os</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="262.205" cy="545.669" width="524.41" height="99.2126"/> + <rect x="0" y="496.063" width="524.409" height="99.2126" class="st5"/> + <text x="489.81" y="512.66" class="st4" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>FPGA<v:newlineChar/><tspan + x="496.85" dy="1.2em" class="st6">I/Os</tspan></text> </g> + <g id="shape14-11" v:mID="14" v:groupContext="shape" transform="translate(148.252,-248.598)"> + <title>Rectangle.14</title> + <desc>FPGA Fabric</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="262.205" cy="559.843" width="524.41" height="70.8661"/> + <rect x="0" y="524.409" width="524.409" height="70.8661" class="st7"/> + <text x="489.81" y="541.01" class="st4" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>FPGA<v:newlineChar/><tspan + x="485.74" dy="1.2em" class="st6">Fabric</tspan></text> </g> + <g id="shape13-15" v:mID="13" v:groupContext="shape" transform="translate(148.252,-319.465)"> + <title>Rectangle</title> + <desc>Microprocessor Subsystem</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197" v:verticalAlign="0"/> + <v:textRect cx="262.205" cy="545.669" width="524.41" height="99.2126"/> + <rect x="0" y="496.063" width="524.409" height="99.2126" class="st8"/> + <text x="432.85" y="512.66" class="st4" v:langID="6153"><v:paragraph v:horizAlign="2"/><v:tabList/>Microprocessor<v:newlineChar/><tspan + x="460.08" dy="1.2em" class="st6">Subsystem</tspan></text> </g> + <g id="shape2-19" v:mID="2" v:groupContext="shape" transform="translate(360.85,-348.402)"> + <title>Rectangle.2</title> + <desc>RISC-V Microprocessor Subsystem</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="42.5197" cy="566.929" width="85.04" height="56.6929"/> + <rect x="0" y="538.583" width="85.0394" height="56.6929" class="st9"/> + <text x="29.21" y="557.93" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>RISC-V<v:newlineChar/><tspan + x="10.7" dy="1.2em" class="st6">Microprocessor<v:newlineChar/></tspan><tspan x="20.64" dy="1.2em" + class="st6">Subsystem</tspan></text> </g> + <g id="shape4-24" v:mID="4" v:groupContext="shape" transform="translate(346.677,-475.37)"> + <title>Rectangle.4</title> + <desc>eMMC</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="14.64" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>eMMC</text> </g> + <g id="shape5-27" v:mID="5" v:groupContext="shape" transform="translate(162.425,-92.6929)"> + <title>Rectangle.5</title> + <desc>User LEDs</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="8.25" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>User LEDs</text> </g> + <g id="shape6-30" v:mID="6" v:groupContext="shape" transform="translate(474.236,-517.89)"> + <title>Rectangle.6</title> + <desc>Ethernet</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="10.58" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Ethernet</text> </g> + <g id="shape7-33" v:mID="7" v:groupContext="shape" transform="translate(162.425,-298.205)"> + <title>Rectangle.7</title> + <desc>Clocks And Reset</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="574.016" width="56.7" height="42.5197"/> + <rect x="0" y="552.756" width="56.6929" height="42.5197" class="st9"/> + <text x="15.55" y="565.02" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Clocks<v:newlineChar/><tspan + x="20.2" dy="1.2em" class="st6">And<v:newlineChar/></tspan><tspan x="17.03" dy="1.2em" class="st6">Reset</tspan></text> </g> + <g id="shape8-38" v:mID="8" v:groupContext="shape" transform="translate(162.425,-517.89)"> + <title>Rectangle.8</title> + <desc>Reset Button</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="17.03" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Reset<v:newlineChar/><tspan + x="14.39" dy="1.2em" class="st6">Button</tspan></text> </g> + <g id="shape9-42" v:mID="9" v:groupContext="shape" transform="translate(233.291,-517.89)"> + <title>Rectangle.9</title> + <desc>User Button</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="18.95" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>User<v:newlineChar/><tspan + x="14.39" dy="1.2em" class="st6">Button</tspan></text> </g> + <g id="shape10-46" v:mID="10" v:groupContext="shape" transform="translate(346.677,-262.772)"> + <title>Rectangle.10</title> + <desc>Cape FPGA Block</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="42.5197" cy="574.016" width="85.04" height="42.5197"/> + <rect x="0" y="552.756" width="85.0394" height="42.5197" class="st9"/> + <text x="32.34" y="571.02" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Cape<v:newlineChar/><tspan + x="19.57" dy="1.2em" class="st6">FPGA Block</tspan></text> </g> + <g id="shape11-50" v:mID="11" v:groupContext="shape" transform="translate(247.465,-262.772)"> + <title>Rectangle.11</title> + <desc>M.2 FPGA Block</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="42.5197" cy="574.016" width="85.04" height="42.5197"/> + <rect x="0" y="552.756" width="85.0394" height="42.5197" class="st9"/> + <text x="34.45" y="571.02" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>M.2<v:newlineChar/><tspan + x="19.57" dy="1.2em" class="st6">FPGA Block</tspan></text> </g> + <g id="shape12-54" v:mID="12" v:groupContext="shape" transform="translate(545.102,-262.772)"> + <title>Rectangle.12</title> + <desc>High-Speed I/Os FPGA Block</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="42.5197" cy="574.016" width="85.04" height="42.5197"/> + <rect x="0" y="552.756" width="85.0394" height="42.5197" class="st9"/> + <text x="9.63" y="571.02" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>High-Speed I/Os<v:newlineChar/><tspan + x="19.57" dy="1.2em" class="st6">FPGA Block</tspan></text> </g> + <g id="shape15-58" v:mID="15" v:groupContext="shape" transform="translate(431.717,-475.37)"> + <title>Rectangle.15</title> + <desc>LPDDR4 Memory</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="12.26" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>LPDDR4<v:newlineChar/><tspan + x="10.95" dy="1.2em" class="st6">Memory</tspan></text> </g> + <g id="shape16-62" v:mID="16" v:groupContext="shape" v:layerMember="0" transform="translate(183.685,-517.89)"> + <title>Dynamic connector</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 766.84" class="st11"/> + </g> + <g id="shape17-68" v:mID="17" v:groupContext="shape" v:layerMember="0" transform="translate(261.638,-517.89)"> + <title>Dynamic connector.17</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 662.3 L120.47 662.3 L120.47 702.47" class="st11"/> + </g> + <g id="shape18-73" v:mID="18" v:groupContext="shape" v:layerMember="0" transform="translate(460.063,-475.37)"> + <title>Dynamic connector.18</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L-0 609.45 L-49.61 609.45 L-49.61 659.95" class="st11"/> + </g> + <g id="shape19-78" v:mID="19" v:groupContext="shape" v:layerMember="0" transform="translate(375.024,-475.37)"> + <title>Dynamic connector.19</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 609.45 L21.26 609.45 L21.26 659.95" class="st11"/> + </g> + <g id="shape20-83" v:mID="20" v:groupContext="shape" v:layerMember="0" transform="translate(502.583,-517.89)"> + <title>Dynamic connector.20</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 654.92 L-85.04 654.92 L-85.04 702.47" class="st11"/> + </g> + <g id="shape21-88" v:mID="21" v:groupContext="shape" v:layerMember="0" transform="translate(367.937,-348.402)"> + <title>Dynamic connector.21</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 611.22 L-134.65 611.22 L-134.65 746.17" class="st11"/> + </g> + <g id="shape22-93" v:mID="22" v:groupContext="shape" v:layerMember="0" transform="translate(431.717,-348.402)"> + <title>Dynamic connector.22</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 611.22 L155.91 611.22 L155.91 632.79" class="st11"/> + </g> + <g id="shape23-98" v:mID="23" v:groupContext="shape" v:layerMember="0" transform="translate(384.095,-348.402)"> + <title>Dynamic connector.23</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 617.48 L-94.11 617.48 L-94.11 632.79" class="st11"/> + </g> + <g id="shape24-103" v:mID="24" v:groupContext="shape" v:layerMember="0" transform="translate(403.37,-348.402)"> + <title>Dynamic connector.24</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-0 595.28 L-0 616.42 L-14.17 616.42 L-14.17 632.79" class="st11"/> + </g> + <g id="shape25-108" v:mID="25" v:groupContext="shape" transform="translate(559.276,-92.6929)"> + <title>Rectangle.25</title> + <desc>SYZYGY Connector</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="13.24" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>SYZYGY<v:newlineChar/><tspan + x="7.13" dy="1.2em" class="st6">Connector</tspan></text> </g> + <g id="shape27-112" v:mID="27" v:groupContext="shape" transform="translate(516.756,-475.37)"> + <title>Rectangle.27</title> + <desc>SD-Card</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="12.01" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>SD-Card</text> </g> + <g id="shape28-115" v:mID="28" v:groupContext="shape" transform="translate(261.638,-92.6929)"> + <title>Rectangle.28</title> + <desc>M.2 Key E Connector</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="8.22" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>M.2 Key E<v:newlineChar/><tspan + x="7.13" dy="1.2em" class="st6">Connector</tspan></text> </g> + <g id="shape29-119" v:mID="29" v:groupContext="shape" transform="translate(360.85,-92.6929)"> + <title>Rectangle.29</title> + <desc>Cape Connectors</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="18.17" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Cape<v:newlineChar/><tspan + x="5.18" dy="1.2em" class="st6">Connectors</tspan></text> </g> + <g id="shape30-123" v:mID="30" v:groupContext="shape" transform="translate(530.929,-206.079)"> + <title>Rectangle.30</title> + <desc>Transceiver lanes 1, 2, 3</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="4.95" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Transceiver<v:newlineChar/><tspan + x="4.25" dy="1.2em" class="st6">lanes 1, 2, 3</tspan></text> </g> + <g id="shape31-127" v:mID="31" v:groupContext="shape" transform="translate(261.638,-206.079)"> + <title>Rectangle.31</title> + <desc>Transceiver lane 0</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="4.95" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Transceiver<v:newlineChar/><tspan + x="16.02" dy="1.2em" class="st6">lane 0</tspan></text> </g> + <g id="shape32-131" v:mID="32" v:groupContext="shape" transform="translate(360.85,-163.559)"> + <title>Rectangle.32</title> + <desc>I/Os</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="19.89" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>I/Os</text> </g> + <g id="shape34-134" v:mID="34" v:groupContext="shape" transform="translate(204.945,-163.559)"> + <title>Rectangle.34</title> + <desc>I/Os</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="19.89" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>I/Os</text> </g> + <g id="shape35-137" v:mID="35" v:groupContext="shape" transform="translate(587.622,-163.559)"> + <title>Rectangle.35</title> + <desc>High-Speed I/Os</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="5.05" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>High-Speed<v:newlineChar/><tspan + x="19.89" dy="1.2em" class="st6">I/Os</tspan></text> </g> + <g id="shape36-141" v:mID="36" v:groupContext="shape" v:layerMember="0" transform="translate(233.291,-163.559)"> + <title>Dynamic connector.36</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 601.75 L-42.52 601.75 L-42.52 632.2" class="st11"/> + </g> + <g id="shape37-146" v:mID="37" v:groupContext="shape" v:layerMember="0" transform="translate(382.11,-163.559)"> + <title>Dynamic connector.37</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 632.2" class="st11"/> + </g> + <g id="shape38-151" v:mID="38" v:groupContext="shape" v:layerMember="0" transform="translate(396.283,-262.772)"> + <title>Dynamic connector.38</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-7.09 595.28 L-7.09 660.54" class="st11"/> + </g> + <g id="shape39-156" v:mID="39" v:groupContext="shape" v:layerMember="0" transform="translate(282.898,-262.772)"> + <title>Dynamic connector.39</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 618.02" class="st11"/> + </g> + <g id="shape40-161" v:mID="40" v:groupContext="shape" v:layerMember="0" transform="translate(552.189,-262.772)"> + <title>Dynamic connector.40</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 618.02" class="st11"/> + </g> + <g id="shape41-166" v:mID="41" v:groupContext="shape" v:layerMember="0" transform="translate(623.055,-262.772)"> + <title>Dynamic connector.41</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-7.09 595.28 L-7.09 660.54" class="st11"/> + </g> + <g id="shape42-171" v:mID="42" v:groupContext="shape" v:layerMember="0" transform="translate(297.071,-206.079)"> + <title>Dynamic connector.42</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-7.09 595.28 L-7.09 674.71" class="st11"/> + </g> + <g id="shape43-176" v:mID="43" v:groupContext="shape" v:layerMember="0" transform="translate(559.276,-206.079)"> + <title>Dynamic connector.43</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 643.09 L14.17 643.09 L14.17 674.71" class="st11"/> + </g> + <g id="shape44-181" v:mID="44" v:groupContext="shape" v:layerMember="0" transform="translate(615.969,-163.559)"> + <title>Dynamic connector.44</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-0 595.28 L-0 601.16 L-14.17 601.16 L-14.17 632.2" class="st11"/> + </g> + <g id="shape45-186" v:mID="45" v:groupContext="shape" v:layerMember="0" transform="translate(545.102,-475.37)"> + <title>Dynamic connector.45</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 615.94 L-120.47 615.94 L-120.47 659.95" class="st11"/> + </g> + <g id="shape48-191" v:mID="48" v:groupContext="shape" transform="translate(389.197,-517.89)"> + <title>Rectangle.48</title> + <desc>ADC</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="19.71" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>ADC</text> </g> + <g id="shape49-194" v:mID="49" v:groupContext="shape" transform="translate(559.276,-517.89)"> + <title>Rectangle.49</title> + <desc>USB</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="20.12" y="584.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>USB</text> </g> + <g id="shape51-197" v:mID="51" v:groupContext="shape" transform="translate(460.063,-92.6929)"> + <title>Rectangle.51</title> + <desc>MIPI-CSI Connector</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="11.22" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>MIPI-CSI<v:newlineChar/><tspan + x="7.13" dy="1.2em" class="st6">Connector</tspan></text> </g> + <g id="shape52-201" v:mID="52" v:groupContext="shape" transform="translate(445.89,-262.772)"> + <title>Rectangle.52</title> + <desc>MIPI CSI FPGA Block</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="42.5197" cy="574.016" width="85.04" height="42.5197"/> + <rect x="0" y="552.756" width="85.0394" height="42.5197" class="st9"/> + <text x="25.79" y="571.02" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>MIPI CSI<v:newlineChar/><tspan + x="19.57" dy="1.2em" class="st6">FPGA Block</tspan></text> </g> + <g id="shape53-205" v:mID="53" v:groupContext="shape" transform="translate(460.063,-163.559)"> + <title>Rectangle.53</title> + <desc>High-Speed I/Os</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="5.05" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>High-Speed<v:newlineChar/><tspan + x="19.89" dy="1.2em" class="st6">I/Os</tspan></text> </g> + <g id="shape54-209" v:mID="54" v:groupContext="shape" v:layerMember="0" transform="translate(481.323,-163.559)"> + <title>Dynamic connector.54</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 632.2" class="st11"/> + </g> + <g id="shape55-214" v:mID="55" v:groupContext="shape" v:layerMember="0" transform="translate(481.323,-262.772)"> + <title>Dynamic connector.55</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M7.09 595.28 L7.09 660.54" class="st11"/> + </g> + <g id="shape56-219" v:mID="56" v:groupContext="shape" v:layerMember="0" transform="translate(417.543,-348.402)"> + <title>Dynamic connector.56</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 617.13 L70.87 617.13 L70.87 632.79" class="st11"/> + </g> + <g id="shape57-224" v:mID="57" v:groupContext="shape" v:layerMember="0" transform="translate(417.543,-517.89)"> + <title>Dynamic connector.57</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M-0 595.28 L-0 648.72 L-14.17 648.72 L-14.17 702.47" class="st11"/> + </g> + <g id="shape58-229" v:mID="58" v:groupContext="shape" v:layerMember="0" transform="translate(587.622,-517.89)"> + <title>Dynamic connector.58</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 661.89 L-155.91 661.89 L-155.91 702.47" class="st11"/> + </g> + <g id="shape61-234" v:mID="61" v:groupContext="shape" transform="translate(304.157,-517.89)"> + <title>Rectangle.61</title> + <desc>Debug UART</desc> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <v:textBlock v:margins="rect(4,4,4,4)" v:tabSpace="42.5197"/> + <v:textRect cx="28.3465" cy="581.102" width="56.7" height="28.3465"/> + <rect x="0" y="566.929" width="56.6929" height="28.3465" class="st9"/> + <text x="15.17" y="578.1" class="st10" v:langID="6153"><v:paragraph v:horizAlign="1"/><v:tabList/>Debug <v:newlineChar/><tspan + x="17.09" dy="1.2em" class="st6">UART</tspan></text> </g> + <g id="shape62-238" v:mID="62" v:groupContext="shape" v:layerMember="0" transform="translate(332.504,-517.89)"> + <title>Dynamic connector.62</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L0 657.87 L56.69 657.87 L56.69 702.47" class="st11"/> + </g> + <g id="shape63-243" v:mID="63" v:groupContext="shape" v:layerMember="0" transform="translate(360.85,-376.748)"> + <title>Dynamic connector.63</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L-167.72 595.28 A2.3622 2.3622 -180 0 0 -172.44 595.28 L-228.57 595.28 L-228.57 888.17 L28.35 888.17 + L28.35 884.43" class="st13"/> + </g> + <g id="shape64-249" v:mID="64" v:groupContext="shape" v:layerMember="0" transform="translate(445.89,-376.748)"> + <title>Dynamic connector.64</title> + <v:userDefs> + <v:ud v:nameU="visVersion" v:val="VT0(15):26"/> + </v:userDefs> + <path d="M0 595.28 L239.74 595.28 L239.74 886.98 L42.52 886.98 L42.52 884.43" class="st13"/> + </g> + </g> +</svg> diff --git a/doc/gateware_design_overview.md b/doc/gateware_design_overview.md new file mode 100644 index 0000000..4449f78 --- /dev/null +++ b/doc/gateware_design_overview.md @@ -0,0 +1,9 @@ +# Gateware Design Overview + +## BeagleV-Fire Overview + + + +Part of the gateware design is not flexible, mainly due to physical connections of dedicated PolarFire SoC I/Os. These parts of the design are concentrated within the base core gateware design [TODO: nomenclature]. + + diff --git a/doc/mss_gpio.md b/doc/mss_gpio.md new file mode 100644 index 0000000..d7d1fc4 --- /dev/null +++ b/doc/mss_gpio.md @@ -0,0 +1,41 @@ +# Microprocessor Subsystem GPIO Controllers Pin Assignment +The Microprocess Subsystem's (MSS) includes 3 GPIO controllers. + + +| Name | Base Address | Linux Name | +|--------|--------------|------------| +| GPIO_0 | 0x20120000 | gpio0 | +| GPIO_1 | 0x20121000 | gpio1 | +| GPIO_2 | 0x20122000 | gpio2 | + + +## GPIO_0 pin assignment +1.8V I/Os connected to I/O bank4. These GPIOs share pins with other MSS functions. As a result only a limited number of GPIOs from this controller are usable. + +| GPIO # | Type | Function | +|--------|-------|----------------| +| 0-11 | n/a | Unused | +| 12 | out | SD_CARD_CS | +| 13 | in | User button | + + +## GPIO_1 pin assignment +3.3V I/Os connected to I/O bank2. These GPIOs share pins with other MSS functions. As a result only a limited number of GPIOs from this controller are usable. + +| GPIO # | Type | Function | +|--------|-------|----------------| +| 0-19 | n/a | Unused | +| 20 | in | ADC_IRQn | +| 21-22 | n/a | Unused | +| 23 | in | USB_OCn | + +## GPIO_2 pin assignment +The MSS GPIO_2 block's inputs and output are routed through the FPGA fabric to the PolarFire SoC's pins. The function of these GPIOs can be customized by the content of the FPGA. However, there is GPIOs expected to remain constant across designs. + +| GPIO # | Type | Function | +|--------|-------|----------------| +| 0-26 | inout | Routed to FPGA | +| 27-29 | n/a | Non-assigned | +| 30 | out | VIO_ENABLE | +| 31 | in | SD_DET | + diff --git a/doc/user_leds.md b/doc/user_leds.md new file mode 100644 index 0000000..7e13407 --- /dev/null +++ b/doc/user_leds.md @@ -0,0 +1,20 @@ +# User LEDs +The user LEDs are controlled from an FPGA fabric GPIO controller included within the RISC-V Processor Subsystem. GPIOs are connected to their respective pins through a User LED Pads FPGA logic block. Keeping the USer LED Pads block at the top of the gateware design allows esily overiding LEDs control by logic from another part of the FPGA design. + +The GPIO controller for the user LEDs is located at address 0x40000000. + +| LED # | GPIO # | Cape pin # | +|-------|--------|------------| +| 0 | 0 | P8 pin 3 | +| 1 | 1 | P8 pin 4 | +| 2 | 2 | P8 pin 5 | +| 3 | 3 | P8 pin 6 | +| 4 | 4 | P8 pin 7 | +| 5 | 5 | P8 pin 8 | +| 6 | 6 | P8 pin 9 | +| 7 | 7 | P8 pin 10 | +| 8 | 8 | P8 pin 11 | +| 9 | 9 | P8 pin 12 | +| 10 | 10 | P8 pin 13 | +| 11 | 11 | P8 pin 14 | + -- GitLab