This commit is contained in:
Sagar Karandikar 2023-06-28 22:28:05 +00:00
parent 56dae2fca1
commit 043a06d3f9
4 changed files with 71 additions and 69 deletions

View File

@ -78,75 +78,6 @@ If you have other use-cases that we haven't covered or don't fit into the above
buckets, feel free to contact us!
Background/Terminology
---------------------------
Before we jump into setting up FireSim, it is important to clarify several terms
that we will use throughout the rest of this documentation.
First, to disambiguate between the hardware being simulated and the computers doing
the simulating, we define:
**Target**
The design and environment being simulated. Commonly, a
group of one or more RISC-V SoCs with or without a network between them.
**Host**
The computers/FPGAs executing the FireSim simulation -- the **Run Farm** below.
We frequently prefix words with these terms. For example, software can run
on the simulated RISC-V system (*target*-software) or on a host x86 machine (*host*-software).
.. figure:: img/firesim_env.png
:alt: FireSim Infrastructure Setup
FireSim Infrastructure Diagram
**FireSim Manager** (``firesim``)
This program (available on your path as ``firesim``
once we source necessary scripts) automates the work required to launch FPGA
builds and run simulations. Most users will only have to interact with the
manager most of the time. If you're familiar with tools like Vagrant or Docker, the ``firesim``
command is just like the ``vagrant`` and ``docker`` commands, but for FPGA simulators
instead of VMs/containers.
Machines used to build and run FireSim simulations are broadly classified into
three groups:
**Manager Machine/Instance**
This is the main host machine (e.g., your local desktop or an AWS EC2
instance) that you will "do work" on. This is where you'll clone your copy of
FireSim and use the FireSim Manager to deploy builds/simulations from.
**Build Farm Machines/Instances**
These are local machines ("build farm machines") or cloud instances ("build
farm instances") that are used by the FireSim manager to run FPGA bitstream
builds. The manager will automatically ship all sources necessary to run
builds to these machines and will run the Verilog to FPGA bitstream build
process on them.
**Run Farm Machines/Instances**
These are a collection of local machines ("run farm machines") or cloud
instances ("run farm instances") with FPGAs attached that the manager manages
and deploys simulations onto. You can use multiple Run Farms in parallel to
run multiple separate simulations in parallel.
In the simplest setup, a single host machine (e.g. your desktop) can serve
the function of all three of these: as the manager machine, the build farm
machine (assuming Vivado is installed), and the run farm machine (assuming
an FPGA is attached).
One final piece of terminology will also be referenced throughout these
docs:
**Golden Gate (MIDAS II)**
The FIRRTL compiler used by FireSim to convert target RTL into a decoupled
simulator. Formerly named MIDAS.
Choose your platform to get started
--------------------------------------

View File

@ -0,0 +1 @@
.. include:: ../../Terminology-Template.rst

View File

@ -10,6 +10,7 @@ FireSim, as well as cloning/installing FireSim on your manager instance.
:maxdepth: 2
:caption: Initial Setup/Installation:
Background-Terminology
First-time-AWS-User-Setup
Configuring-Required-Infrastructure-in-Your-AWS-Account
Setting-up-your-Manager-Instance

View File

@ -0,0 +1,69 @@
Background/Terminology
==============================
Before we jump into setting up FireSim, it is important to clarify several terms
that we will use throughout the rest of this documentation.
First, to disambiguate between the hardware being simulated and the computers doing
the simulating, we define:
**Target**
The design and environment being simulated. Commonly, a
group of one or more RISC-V SoCs with or without a network between them.
**Host**
The computers/FPGAs executing the FireSim simulation -- the **Run Farm** below.
We frequently prefix words with these terms. For example, software can run
on the simulated RISC-V system (*target*-software) or on a host x86 machine (*host*-software).
.. figure:: img/firesim_env.png
:alt: FireSim Infrastructure Setup
FireSim Infrastructure Diagram
**FireSim Manager** (``firesim``)
This program (available on your path as ``firesim``
once we source necessary scripts) automates the work required to launch FPGA
builds and run simulations. Most users will only have to interact with the
manager most of the time. If you're familiar with tools like Vagrant or Docker, the ``firesim``
command is just like the ``vagrant`` and ``docker`` commands, but for FPGA simulators
instead of VMs/containers.
Machines used to build and run FireSim simulations are broadly classified into
three groups:
**Manager Machine/Instance**
This is the main host machine (e.g., your local desktop or an AWS EC2
instance) that you will "do work" on. This is where you'll clone your copy of
FireSim and use the FireSim Manager to deploy builds/simulations from.
**Build Farm Machines/Instances**
These are local machines ("build farm machines") or cloud instances ("build
farm instances") that are used by the FireSim manager to run FPGA bitstream
builds. The manager will automatically ship all sources necessary to run
builds to these machines and will run the Verilog to FPGA bitstream build
process on them.
**Run Farm Machines/Instances**
These are a collection of local machines ("run farm machines") or cloud
instances ("run farm instances") with FPGAs attached that the manager manages
and deploys simulations onto. You can use multiple Run Farms in parallel to
run multiple separate simulations in parallel.
In the simplest setup, a single host machine (e.g. your desktop) can serve
the function of all three of these: as the manager machine, the build farm
machine (assuming Vivado is installed), and the run farm machine (assuming
an FPGA is attached).
One final piece of terminology will also be referenced throughout these
docs:
**Golden Gate (MIDAS II)**
The FIRRTL compiler used by FireSim to convert target RTL into a decoupled
simulator. Formerly named MIDAS.