Fixed file links
This commit is contained in:
@@ -35,11 +35,14 @@ where ``TileType`` is the tile class (see the next section).
|
|||||||
All custom cores will also need to implement ``instantiate()`` in their tile parameter class to return a new instance
|
All custom cores will also need to implement ``instantiate()`` in their tile parameter class to return a new instance
|
||||||
of the tile class ``TileType``.
|
of the tile class ``TileType``.
|
||||||
|
|
||||||
``TileParams``, ``InstantiableTileParams[TileType]`` and ``CoreParams`` contains the following fields:
|
``TileParams`` (in the file `BaseTile.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala>`_) ,
|
||||||
|
``InstantiableTileParams`` (in the file `BaseTile.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala>`_),
|
||||||
|
``CoreParams`` (in the file `Core.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Core.scala>`_),
|
||||||
|
and ``FPUParams`` (in the file `FPU.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/FPU.scala>`_)
|
||||||
|
contains the following fields:
|
||||||
|
|
||||||
.. code-block:: scala
|
.. code-block:: scala
|
||||||
|
|
||||||
// The two classes below can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala.
|
|
||||||
trait TileParams {
|
trait TileParams {
|
||||||
val core: CoreParams // Core parameters (see below)
|
val core: CoreParams // Core parameters (see below)
|
||||||
val icache: Option[ICacheParams] // Rocket specific: I1 cache option
|
val icache: Option[ICacheParams] // Rocket specific: I1 cache option
|
||||||
@@ -56,7 +59,6 @@ of the tile class ``TileType``.
|
|||||||
(implicit p: Parameters): TileType
|
(implicit p: Parameters): TileType
|
||||||
}
|
}
|
||||||
|
|
||||||
// This class can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Core.scala.
|
|
||||||
trait CoreParams {
|
trait CoreParams {
|
||||||
val bootFreqHz: BigInt // Frequency
|
val bootFreqHz: BigInt // Frequency
|
||||||
val useVM: Boolean // Support virtual memory
|
val useVM: Boolean // Support virtual memory
|
||||||
@@ -106,8 +108,7 @@ of the tile class ``TileType``.
|
|||||||
def eLen(xLen: Int, fLen: Int): Int = xLen max fLen
|
def eLen(xLen: Int, fLen: Int): Int = xLen max fLen
|
||||||
def vMemDataBits: Int = 0
|
def vMemDataBits: Int = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// This class can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/FPU.scala.
|
|
||||||
case class FPUParams(
|
case class FPUParams(
|
||||||
minFLen: Int = 32, // Minimum floating point length (no need to change)
|
minFLen: Int = 32, // Minimum floating point length (no need to change)
|
||||||
fLen: Int = 64, // Maximum floating point length, use 32 if only single precision is supported
|
fLen: Int = 64, // Maximum floating point length, use 32 if only single precision is supported
|
||||||
@@ -191,11 +192,11 @@ Make sure to read :ref:`node_types` to check out what type of nodes Chipyard sup
|
|||||||
|
|
||||||
Also, by default, there are boundary buffers for both master and slave connections to the bus when they are leaving the tile, and you
|
Also, by default, there are boundary buffers for both master and slave connections to the bus when they are leaving the tile, and you
|
||||||
can override the following two functions to control how to buffer the bus requests/responses:
|
can override the following two functions to control how to buffer the bus requests/responses:
|
||||||
|
(You can find the definition of these two functions in the class ``BaseTile`` in the file
|
||||||
|
`BaseTile.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala>`_)
|
||||||
|
|
||||||
.. code-block:: scala
|
.. code-block:: scala
|
||||||
|
|
||||||
// This two functions can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/BaseTile.scala,
|
|
||||||
// in the class "BaseTile".
|
|
||||||
// By default, their value is "TLBuffer(BufferParams.none)".
|
// By default, their value is "TLBuffer(BufferParams.none)".
|
||||||
protected def makeMasterBoundaryBuffers(implicit p: Parameters): TLBuffer
|
protected def makeMasterBoundaryBuffers(implicit p: Parameters): TLBuffer
|
||||||
protected def makeSlaveBoundaryBuffers(implicit p: Parameters): TLBuffer
|
protected def makeSlaveBoundaryBuffers(implicit p: Parameters): TLBuffer
|
||||||
@@ -232,11 +233,11 @@ Chipyard allows a tile to either receive interrupts from other devices or initia
|
|||||||
In the tile that inherited ``SinksExternalInterrupts``, one can create a ``TileInterrupts`` object (a Chisel bundle) and
|
In the tile that inherited ``SinksExternalInterrupts``, one can create a ``TileInterrupts`` object (a Chisel bundle) and
|
||||||
call ``decodeCoreInterrupts()`` with the object as the argument. Note that you should call this function in the implementation
|
call ``decodeCoreInterrupts()`` with the object as the argument. Note that you should call this function in the implementation
|
||||||
class since it returns a Chisel bundle used by RTL code. You can then read the interrupt bits from the ``TileInterrupts`` bundle
|
class since it returns a Chisel bundle used by RTL code. You can then read the interrupt bits from the ``TileInterrupts`` bundle
|
||||||
we create above. The definition of ``TileInterrupts`` is
|
we create above. The definition of ``TileInterrupts``
|
||||||
|
(in the file `Interrupts.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Interrupts.scala>`_) is
|
||||||
|
|
||||||
.. code-block:: scala
|
.. code-block:: scala
|
||||||
|
|
||||||
// This class can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Interrupts.scala.
|
|
||||||
class TileInterrupts(implicit p: Parameters) extends CoreBundle()(p) {
|
class TileInterrupts(implicit p: Parameters) extends CoreBundle()(p) {
|
||||||
val debug = Bool() // debug interrupt
|
val debug = Bool() // debug interrupt
|
||||||
val mtip = Bool() // Machine level timer interrupt
|
val mtip = Bool() // Machine level timer interrupt
|
||||||
@@ -255,11 +256,11 @@ Here is an example on how to connect these signals in the implementation class:
|
|||||||
|
|
||||||
Also, the tile can also notify other cores or devices for some events by calling following functions in ``SourcesExternalNotifications``
|
Also, the tile can also notify other cores or devices for some events by calling following functions in ``SourcesExternalNotifications``
|
||||||
from the implementation class:
|
from the implementation class:
|
||||||
|
(These functions can be found in in the trait ``SourcesExternalNotifications`` in the file
|
||||||
|
`Interrupts.scala <https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Interrupts.scala>`_)
|
||||||
|
|
||||||
.. code-block:: scala
|
.. code-block:: scala
|
||||||
|
|
||||||
// These functions can be found in https://github.com/chipsalliance/rocket-chip/blob/master/src/main/scala/tile/Interrupts.scala,
|
|
||||||
// in the trait "SourcesExternalNotifications".
|
|
||||||
def reportHalt(could_halt: Option[Bool]) // Triggered when there is an unrecoverable hardware error (halt the machine)
|
def reportHalt(could_halt: Option[Bool]) // Triggered when there is an unrecoverable hardware error (halt the machine)
|
||||||
def reportHalt(errors: Seq[CanHaveErrors]) // Varient for standard error bundle (Rocket specific: used only by cache when there's an ECC error)
|
def reportHalt(errors: Seq[CanHaveErrors]) // Varient for standard error bundle (Rocket specific: used only by cache when there's an ECC error)
|
||||||
def reportCease(could_cease: Option[Bool], quiescenceCycles: Int = 8) // Triggered when the core stop retiring instructions (like clock gating)
|
def reportCease(could_cease: Option[Bool], quiescenceCycles: Int = 8) // Triggered when the core stop retiring instructions (like clock gating)
|
||||||
|
|||||||
Reference in New Issue
Block a user