154 lines
5.2 KiB
ReStructuredText
154 lines
5.2 KiB
ReStructuredText
.. |fpga_name| replace:: Xilinx Vitis-enabled U250
|
|
|
|
.. |vitis_version| replace:: 2022.1
|
|
|
|
.. |vitis_link| replace:: https://www.xilinx.com/products/design-tools/vitis/vitis-whats-new.html#20221
|
|
|
|
.. |platform_name| replace:: vitis
|
|
|
|
.. |tool_type| replace:: Xilinx XRT/Vitis
|
|
|
|
.. |example_var| replace:: XILINX_XRT
|
|
|
|
.. |manager_machine| replace:: **Manager Machine**
|
|
|
|
.. |build_farm_machine| replace:: **Build Farm Machines**
|
|
|
|
.. |run_farm_machine| replace:: **Run Farm Machines**
|
|
|
|
Initial Setup/Installation
|
|
==========================
|
|
|
|
.. warning::
|
|
|
|
⚠️ **We highly recommend using the XDMA-based U250 flow instead of this Vitis-based
|
|
flow. You can find the XDMA-based flow here:** :ref:`u250-standard-flow`. The
|
|
Vitis-based flow does not support DMA-based FireSim bridges (e.g., TracerV,
|
|
Synthesizable Printfs, etc.), while the XDMA-based flows support all FireSim
|
|
features. If you're unsure, use the XDMA-based U250 flow instead:
|
|
:ref:`u250-standard-flow`
|
|
|
|
FPGA and Tool Setup
|
|
-------------------
|
|
|
|
Requirements and Installations
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
We require a base machine that is able to support a |fpga_name| and running Xilinx
|
|
Vitis. For the purposes of this guide, we assume you are running with a |fpga_name|.
|
|
Please refer to the minimum system requirements given in the following link:
|
|
https://docs.xilinx.com/r/en-US/ug1301-getting-started-guide-alveo-accelerator-cards/Minimum-System-Requirements.
|
|
``sudo`` access is not needed for the machine except for when the |fpga_name| and
|
|
corresponding software is installed.
|
|
|
|
Next, install the |fpga_name| as indicated:
|
|
https://docs.xilinx.com/r/en-US/ug1301-getting-started-guide-alveo-accelerator-cards/Card-Installation-Procedures
|
|
|
|
We require the following programs/packages installed from the Xilinx website in addition
|
|
to a physical |fpga_name| installation:
|
|
|
|
- Xilinx Vitis |vitis_version|
|
|
|
|
- Installation link: |vitis_link|
|
|
|
|
- Xilinx XRT and |fpga_name| board package (corresponding with Vitis |vitis_version|)
|
|
|
|
- Ensure you complete the "Installing the Deployment Software" and "Card Bring-Up and
|
|
Validation" sections in the following link:
|
|
https://docs.xilinx.com/r/en-US/ug1301-getting-started-guide-alveo-accelerator-cards/Installing-the-Deployment-Software
|
|
|
|
Setup Validation
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
After installing the |fpga_name| using the Xilinx instructions and installing the
|
|
specific versions of Vitis/XRT, let's verify that the |fpga_name| can be used for
|
|
emulations. Ensure that you can run the following XRT commands without errors:
|
|
|
|
.. code-block:: bash
|
|
:substitutions:
|
|
|
|
xbutil examine # obtain the BDF associated with your installed |fpga_name|
|
|
xbutil validate --device <CARD_BDF_INSTALLED> --verbose
|
|
|
|
The ``xbutil validate`` command runs simple tests to ensure that the FPGA can be
|
|
properly flashed with a bitstream by using XRT.
|
|
|
|
.. warning::
|
|
|
|
Anytime the host computer is rebooted you may need to re-run parts of the setup
|
|
process (i.e. re-flash the shell). Before continuing to FireSim simulations after a
|
|
host computer reboot, ensure that the previously mentioned ``xbutil`` command is
|
|
successful.
|
|
|
|
Now you're ready to continue with other FireSim setup!
|
|
|
|
Setting up your On-Premises Machine
|
|
-----------------------------------
|
|
|
|
This guide will walk you through setting up a single node cluster (i.e. running FPGA
|
|
bitstream builds and simulations on a single machine) for FireSim use. This single
|
|
machine will serve as the "Manager Machine" that acts as a "head" node that all work
|
|
will be completed on.
|
|
|
|
Finally, ensure that the |tool_type| tools are sourced in your shell setup (i.e.
|
|
``.bashrc`` and or ``.bash_profile``) so that any shell can use the corresponding
|
|
programs. The environment variables should be visible to any non-interactive shells that
|
|
are spawned. You can check this by ensuring that the output of the following command
|
|
shows that the |tool_type| tools are present in the environment variables (i.e.
|
|
"|example_var|"):
|
|
|
|
.. code-block:: bash
|
|
|
|
ssh localhost printenv
|
|
|
|
Setting up the FireSim Repo
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
We're finally ready to fetch FireSim's sources. Run:
|
|
|
|
.. code-block:: bash
|
|
:substitutions:
|
|
|
|
git clone https://github.com/ucb-bar/chipyard
|
|
cd chipyard
|
|
# ideally use the main chipyard release instead of this
|
|
git checkout |cy_docs_version|
|
|
|
|
Next run:
|
|
|
|
.. code-block:: bash
|
|
|
|
./build-setup.sh
|
|
|
|
This will have initialized submodules and installed the RISC-V tools and other
|
|
dependencies.
|
|
|
|
Next, run:
|
|
|
|
.. code-block:: bash
|
|
|
|
cd sims/firesim
|
|
source sourceme-manager.sh --skip-ssh-setup
|
|
|
|
This will perform various environment setup steps, such as adding the RISC-V tools to
|
|
your path. Sourcing this the first time will take some time -- however each time after
|
|
that should be instantaneous.
|
|
|
|
**Every time you want to use FireSim, you should** ``cd`` **into your FireSim directory
|
|
and source this file again with the argument given.**
|
|
|
|
Completing Setup Using the Manager
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The FireSim manager contains a command that will finish the rest of the FireSim setup
|
|
process. To run it, do the following:
|
|
|
|
.. code-block:: bash
|
|
:substitutions:
|
|
|
|
firesim managerinit --platform |platform_name|
|
|
|
|
It will create initial configuration files, which we will edit in later sections.
|
|
|
|
Hit Next to continue with the guide.
|