Update docs
This commit is contained in:
@@ -109,16 +109,13 @@ reminder, to run a software RTL simulation, run:
|
||||
|
||||
FireSim FPGA-accelerated simulations use TSI by default as well.
|
||||
|
||||
If you would like to build and simulate a Chipyard configuration with a DTM configured for DMI communication, then you must create a
|
||||
top-level system with the DTM (``TopWithDTM``), a test-harness to connect to the DTM (``TestHarnessWithDTM``), as well as a config to use that top-level system.
|
||||
If you would like to build and simulate a Chipyard configuration with a DTM configured for DMI communication, then you must tie-off the TSI interface, and instantiate the `SimDTM`. Note that we use `WithTiedOffSerial ++ WithSimDTM` instead of `WithTiedOffDebug ++ WithSimSerial`.
|
||||
|
||||
.. literalinclude:: ../../generators/example/src/main/scala/RocketConfigs.scala
|
||||
.. literalinclude:: ../../generators/chipyard/src/main/scala/RocketConfigs.scala
|
||||
:language: scala
|
||||
:start-after: DOC include start: DmiRocket
|
||||
:end-before: DOC include end: DmiRocket
|
||||
|
||||
In this example, the ``WithDTM`` mixin specifies that the top-level SoC will instantiate a DTM (that by default is setup to use DMI).
|
||||
The rest of the mixins specify the rest of the system (cores, accelerators, etc).
|
||||
Then you can run simulations with the new DMI-enabled top-level and test-harness.
|
||||
|
||||
.. code-block:: bash
|
||||
@@ -144,7 +141,7 @@ The configuration is very similar to a DMI-based configuration. The main differe
|
||||
is the addition of the ``WithJtagDTM`` mixin that configures the instantiated DTM to use the JTAG protocol as the
|
||||
bringup method.
|
||||
|
||||
.. literalinclude:: ../../generators/example/src/main/scala/RocketConfigs.scala
|
||||
.. literalinclude:: ../../generators/chipyard/src/main/scala/RocketConfigs.scala
|
||||
:language: scala
|
||||
:start-after: DOC include start: JtagRocket
|
||||
:end-before: DOC include end: JtagRocket
|
||||
|
||||
@@ -27,7 +27,7 @@ We also see this class define several ``ElaborationArtefacts``, files emitted af
|
||||
Subsystem
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Looking in `generators/utilities/src/main/scala/Subsystem.scala <https://github.com/ucb-bar/chipyard/blob/master/generators/utilities/src/main/scala/Subsystem.scala>`__, we can see how Chipyard's ``Subsystem``
|
||||
Looking in `generators/chipyard/src/main/scala/Subsystem.scala <https://github.com/ucb-bar/chipyard/blob/master/generators/chipyard/src/main/scala/Subsystem.scala>`__, we can see how Chipyard's ``Subsystem``
|
||||
extends the ``BaseSubsystem`` abstract class. ``Subsystem`` mixes in the ``HasBoomAndRocketTiles`` trait that
|
||||
defines and instantiates BOOM or Rocket tiles, depending on the parameters specified.
|
||||
We also connect some basic IOs for each tile here, specifically the hartids and the reset vector.
|
||||
@@ -35,7 +35,7 @@ We also connect some basic IOs for each tile here, specifically the hartids and
|
||||
System
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``generators/utilities/src/main/scala/System.scala`` completes the definition of the ``System``.
|
||||
``generators/chipyard/src/main/scala/System.scala`` completes the definition of the ``System``.
|
||||
|
||||
- ``HasHierarchicalBusTopology`` is defined in Rocket Chip, and specifies connections between the top-level buses
|
||||
- ``HasAsyncExtInterrupts`` and ``HasExtInterruptsModuleImp`` adds IOs for external interrupts and wires them appropriately to tiles
|
||||
@@ -45,7 +45,7 @@ System
|
||||
Tops
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
A SoC Top then extends the ``System`` class with any config-specific components.
|
||||
A SoC Top then extends the ``System`` class with traits for custom components.
|
||||
In Chipyard, this includes things like adding a NIC, UART, and GPIO as well as setting up the hardware for the bringup method.
|
||||
Please refer to :ref:`Communicating with the DUT` for more information on these bringup methods.
|
||||
|
||||
@@ -55,7 +55,7 @@ TestHarness
|
||||
The wiring between the ``TestHarness`` and the Top are performed in methods defined in mixins added to the Top.
|
||||
When these methods are called from the ``TestHarness``, they may instantiate modules within the scope of the harness,
|
||||
and then connect them to the DUT. For example, the ``connectSimAXIMem`` method defined in the
|
||||
``CanHaveMasterAXI4MemPortModuleImp`` trait, when called from the ``TestHarness``, will instantiate ``SimAXIMem``s
|
||||
``CanHaveMasterAXI4MemPortModuleImp`` trait, when called from the ``TestHarness``, will instantiate ``SimAXIMems``
|
||||
and connect them to the correct IOs of the top.
|
||||
|
||||
While this roundabout way of attaching to the IOs of the top may seem to be unnecessarily complex, it allows the designer to compose
|
||||
@@ -66,4 +66,4 @@ TestDriver
|
||||
|
||||
The ``TestDriver`` is defined in ``generators/rocketchip/src/main/resources/vsrc/TestDriver.v``.
|
||||
This Verilog file executes a simulation by instantiating the ``TestHarness``, driving the clock and reset signals, and interpreting the success output.
|
||||
This file is compiled with the generated Verilog for the ``TestHarness`` and the Top to produce a simulator.
|
||||
This file is compiled with the generated Verilog for the ``TestHarness`` and the ``Top`` to produce a simulator.
|
||||
|
||||
Reference in New Issue
Block a user