diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/gateware-tcl-scripts-structure.rst b/boards/beaglev/fire/demos-and-tutorials/gateware/gateware-tcl-scripts-structure.rst new file mode 100644 index 0000000000000000000000000000000000000000..2638f2d67708aa5bd6d46c6d8e321c22c6bef532 --- /dev/null +++ b/boards/beaglev/fire/demos-and-tutorials/gateware/gateware-tcl-scripts-structure.rst @@ -0,0 +1,80 @@ +Gateware TCL Scripts Structure +############################## + +This document describes the structure of the gateware TCL scripts. It is of interest to understand +how to extend or customize the gateware. + +Gateware Project +================ + +The gateware project is made up of: + +- TCL scripts +- HDL/Verilog source code +- IO pin constraints +- Placement constraints +- Device tree overlays + +All these files are found in the FPGA-design directory. + +.. figure:: media/gateware--source-dir.png + :align: center + + +Gateware Components +=================== + +The gateware is organized into 6 components: + +- Clocks and reset control +- A base RISC-V microprocessor subsystem +- Cape interface +- M.2 interface +- MIPI camera interface +- SYZYGY high speed interface + +.. figure:: media/gateware-components.png + :align: center + +Gateware Build Options +====================== + +Each interface component may have a number of build options. For example, which cape will be +supported by the generated gateware. + + +.. figure:: media/gateware-cape-options.png + :align: center + +The name of the directories within the component's directory are the option names passed to the +top Libero BUILD_BVF_GATEWATE.tcl script. These directory names are the option name specified in +the bitstream builder's build option YAML files. + +The gateware is extended or customized by creating additional directories within the component +directory of interest. For example, add a MY_CUSTOM_CAPE directory under the CAPE directory to +add a gateware build option to support a custom cape. + +Gateware Component Directories +============================== + +The component directory contains subdirectories for: + +- Constraint files +- Device tree overlay +- Optional HDL/Verilog source code + +.. figure:: media/gateware-cape-robotics-dirs.png + :align: center + +Gareware TCL Scripts +-------------------- + +The component directory contains the TCL scripts executed by Libero to generate the gateware. +The TCL script framework executes a hand-crafted ADD_<COMPONENT_NAME>.tcl script which instantiates +the component and stiches it to the base RISC-V subsystem and top level IOs. The other TCL scripts +are typically IP configuration scripts and SmartDesign stiching scripts. + +.. figure:: media/gateware-cape-robotics-files.png + :align: center + + diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware--source-dir.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware--source-dir.png new file mode 100644 index 0000000000000000000000000000000000000000..1058f64ae9d080e65e5c39b01129e44023f709d3 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware--source-dir.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-options.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-options.png new file mode 100644 index 0000000000000000000000000000000000000000..0c71ea6c2fa6dedc5605084b74ba8df00873db70 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-options.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-dirs.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-dirs.png new file mode 100644 index 0000000000000000000000000000000000000000..3af9d01451c9252b2cd6398cf61b3ad82660f392 Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-dirs.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-files.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-files.png new file mode 100644 index 0000000000000000000000000000000000000000..06af36e0feb7f9a68d2152680b70bb2009cc04ec Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-cape-robotics-files.png differ diff --git a/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-components.png b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-components.png new file mode 100644 index 0000000000000000000000000000000000000000..57f97ee580ed516db044a33d1071511c0e945faf Binary files /dev/null and b/boards/beaglev/fire/demos-and-tutorials/gateware/media/gateware-components.png differ