-
Notifications
You must be signed in to change notification settings - Fork 668
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #812 from ucb-bar/offchip-axi-setup
AXI Memory Over TL Serial Link
- Loading branch information
Showing
26 changed files
with
585 additions
and
151 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
.. _harness-clocks: | ||
|
||
Creating Clocks in the Test Harness | ||
=================================== | ||
|
||
Chipyard currently allows the SoC design (everything under ``ChipTop``) to | ||
have independent clock domains through diplomacy. | ||
This implies that some reference clock enters the ``ChipTop`` and then is divided down into | ||
separate clock domains. | ||
From the perspective of the ``TestHarness`` module, the ``ChipTop`` clock and reset is | ||
provided from a clock and reset called ``buildtopClock`` and ``buildtopReset``. | ||
In the default case, this ``buildtopClock`` and ``buildtopReset`` is directly wired to the | ||
clock and reset IO's of the ``TestHarness`` module. | ||
However, the ``TestHarness`` has the ability to generate a standalone clock and reset signal | ||
that is separate from the reference clock/reset of ``ChipTop``. | ||
This allows harness components (including harness binders) the ability to "request" a clock | ||
for a new clock domain. | ||
This is useful for simulating systems in which modules in the harness have independent clock domains | ||
from the DUT. | ||
|
||
Requests for a harness clock is done by the ``HarnessClockInstantiator`` class in ``generators/chipyard/src/main/scala/TestHarness.scala``. | ||
This class is accessed in harness components by referencing the Rocket Chip parameters key ``p(HarnessClockInstantiatorKey)``. | ||
Then you can request a clock and syncronized reset at a particular frequency by invoking the ``requestClockBundle`` function. | ||
Take the following example: | ||
|
||
.. literalinclude:: ../../generators/chipyard/src/main/scala/HarnessBinders.scala | ||
:language: scala | ||
:start-after: DOC include start: HarnessClockInstantiatorEx | ||
:end-before: DOC include end: HarnessClockInstantiatorEx | ||
|
||
Here you can see the ``p(HarnessClockInstantiatorKey)`` is used to request a clock and reset at ``memFreq`` frequency. | ||
|
||
.. note:: | ||
In the case that the reference clock entering ``ChipTop`` is not the overall reference clock of the simulation | ||
(i.e. the clock/reset coming into the ``TestHarness`` module), the ``buildtopClock`` and ``buildtopReset`` can | ||
differ from the implicit ``TestHarness`` clock and reset. For example, if the ``ChipTop`` reference is 500MHz but an | ||
extra harness clock is requested at 1GHz, the ``TestHarness`` implicit clock/reset will be at 1GHz while the ``buildtopClock`` | ||
and ``buildtopReset`` will be at 500MHz. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,4 +14,5 @@ They expect you to know about Chisel, Parameters, configs, etc. | |
Debugging-BOOM | ||
Resources | ||
CDEs | ||
Harness-Clocks | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.