Update manager docs to reflect configurable frequency scheme

This commit is contained in:
David Biancolin 2019-04-30 10:19:08 -07:00
parent e7781b011b
commit 85e6f7b890
2 changed files with 16 additions and 7 deletions

View File

@ -74,11 +74,11 @@ To generate a specific instance of a target, the build system leverages four Mak
2. ``DESIGN``: the name of the top-level Chisel module to generate (a Scala class name). For the default firesim target project,
a common set of top-level modules is captured in ``sim/src/main/scala/firesim/Targets.scala``.
3. ``TARGET_CONFIG``: specifies a ``Parameters`` instance that is consumed by the target design's
3. ``TARGET_CONFIG``: specifies a ``Config`` instance that is consumed by the target design's
generator. For the default firesim target project, predefined configs are described in
``sim/src/main/scala/firesim/TargetConfigs.scala``).
4. ``PLATFORM_CONFIG``: specifies a ``Parameters`` instance that is consumed by MIDAS and specifies simulation-land
4. ``PLATFORM_CONFIG``: specifies a ``Config`` instance that is consumed by MIDAS and specifies simulation-land
parameters, such as whether to enable assertion synthesis, how to assign
endpoints to target I/O, and what sorts of endpoints to generate (ex. the
specific FASED timing model instance to generate.).
@ -86,11 +86,11 @@ To generate a specific instance of a target, the build system leverages four Mak
``sim/src/main/scala/firesim/SimConfigs.scala``)
``TARGET_CONFIG`` and ``PLATFORM_CONFIG`` are strings that are used to construct a
``Parameters`` instance (derives from RocketChip's parameterization system, ``Config``, see
``Config`` instance (derives from RocketChip's parameterization system, ``Config``, see
`freechips.rocketchip.config
<https://github.com/freechipsproject/rocket-chip/blob/master/src/main/scala/config/Config.scala>`_). These strings are of the form
"ClassName{_ClassName2}{_ClassName3}{_...}". Only the first class name is
compulsory, successive classnames are prepended to the first to create a
compulsory, successive class names are prepended to the first to create a
compound Config instance. See the example below:
.. code-block:: scala
@ -105,7 +105,7 @@ compound Config instance. See the example below:
// Can specify undefined classes this way. ex: TARGET_CONFIG=Base_Override2
With this scheme, you don't need to define a Config class for every instance you
which to generate. We use this scheme to specify FPGA frequencies (eg.
wish to generate. We use this scheme to specify FPGA frequencies (eg.
FireSimConfig_F90MHz) in manager build recipes, but it's also very useful for doing
sweeping over a parameterization space.

View File

@ -313,14 +313,18 @@ you made up). Such a section must contain the following fields:
This specifies the basic target design that will be built. Unless you
are defining a custom system, this should either be ``FireSim``, for
systems with a NIC, or ``FireSimNoNIC``, for systems without a NIC. These
are defined in ``firesim/sim/src/main/scala/firesim/Targets.scala``.
are defined in ``firesim/sim/src/main/scala/firesim/Targets.scala``. We
describe this in greater detail in :ref:`Generating Different
Targets<generating-different-targets>`).
``TARGET_CONFIG``
"""""""""""""""""""
This specifies the hardware configuration of the target being simulation. Some
This specifies the hardware configuration of the target being simulated. Some
examples include ``FireSimRocketChipConfig`` and ``FireSimRocketChipQuadCoreConfig``.
These are defined in ``firesim/sim/src/main/scala/firesim/TargetConfigs.scala``.
We describe this in greater detail in :ref:`Generating Different
Targets<generating-different-targets>`).
``PLATFORM_CONFIG``
@ -329,6 +333,11 @@ These are defined in ``firesim/sim/src/main/scala/firesim/TargetConfigs.scala``.
This specifies hardware parameters of the simulation environment - for example,
selecting between a Latency-Bandwidth Pipe or DDR3 memory models.
These are defined in ``firesim/sim/src/main/scala/firesim/SimConfigs.scala``.
We specify the host FPGA frequency in the ``PLATFORM_CONFIG`` by appending a frequency
``Config`` with an underscore (ex. FireSimConfig_F160MHz).
We describe this in greater detail in :ref:`Generating Different
Targets<generating-different-targets>`).
``instancetype``