Merge pull request #1752 from ucb-bar/no-tlmon

FastSimRocketConfig with no TLMonitors
This commit is contained in:
joonho hwangbo
2024-01-22 15:45:55 -08:00
committed by GitHub
2 changed files with 30 additions and 0 deletions

View File

@@ -223,3 +223,29 @@ The ``VERILATOR_THREADS=<num>`` option enables the compiled Verilator simulator
On a multi-socket machine, you will want to make sure all threads are on the same socket by using ``NUMACTL=1`` to enable ``numactl``.
By enabling this, you will use Chipyard's ``numa_prefix`` wrapper, which is a simple wrapper around ``numactl`` that runs your verilated simulator like this: ``$(numa_prefix) ./simulator-<name> <simulator-args>``.
Note that both these flags are mutually exclusive, you can use either independently (though it makes sense to use ``NUMACTL`` just with ``VERILATOR_THREADS=8`` during a Verilator simulation).
Speeding up your RTL Simulation by 2x!
-----------------------------------------------
There are many cases when your custom module interfaces with Tilelink (e.g., when you write a custom accelerator).
Wrong interfaces with Tilelink can cause the SoC to hang and can be tricky to debug.
To help deal with these situations, you can add hardware modules called Tilelink monitors into
your SoC that will fire assertions when wrong Tilelink messages are sent.
However, these modules can significantly slow down the speed of your RTL simulation.
These modules are added to the SoC as a default and users have to manually
remove these modules by adding the below line into your config.
.. code-block:: scala
new freechips.rocketchip.subsystem.WithoutTLMonitors ++
For instance:
.. code-block:: scala
class FastRTLSimRocketConfig extends Config(
new freechips.rocketchip.subsystem.WithoutTLMonitors ++
new chipyard.RocketConfig)

View File

@@ -96,3 +96,7 @@ class ClusteredRocketConfig extends Config(
new freechips.rocketchip.subsystem.WithCluster(1) ++
new freechips.rocketchip.subsystem.WithCluster(0) ++
new chipyard.config.AbstractConfig)
class FastRTLSimRocketConfig extends Config(
new freechips.rocketchip.subsystem.WithoutTLMonitors ++
new chipyard.RocketConfig)