Add rocket-chip cluster support in WithRadianceCores
This commit is contained in:
@@ -13,10 +13,12 @@ import radiance.memory._
|
|||||||
|
|
||||||
class WithRadianceCores(
|
class WithRadianceCores(
|
||||||
n: Int,
|
n: Int,
|
||||||
|
location: HierarchicalLocation,
|
||||||
|
crossing: RocketCrossingParams,
|
||||||
useVxCache: Boolean
|
useVxCache: Boolean
|
||||||
) extends Config((site, _, up) => {
|
) extends Config((site, _, up) => {
|
||||||
case TilesLocated(InSubsystem) => {
|
case TilesLocated(`location`) => {
|
||||||
val prev = up(TilesLocated(InSubsystem), site)
|
val prev = up(TilesLocated(`location`), site)
|
||||||
val idOffset = prev.size
|
val idOffset = prev.size
|
||||||
val vortex = RadianceTileParams(
|
val vortex = RadianceTileParams(
|
||||||
core = VortexCoreParams(fpu = None),
|
core = VortexCoreParams(fpu = None),
|
||||||
@@ -43,10 +45,19 @@ class WithRadianceCores(
|
|||||||
blockBytes = site(CacheBlockBytes))))
|
blockBytes = site(CacheBlockBytes))))
|
||||||
List.tabulate(n)(i => RadianceTileAttachParams(
|
List.tabulate(n)(i => RadianceTileAttachParams(
|
||||||
vortex.copy(tileId = i + idOffset),
|
vortex.copy(tileId = i + idOffset),
|
||||||
RocketCrossingParams()
|
crossing
|
||||||
)) ++ prev
|
)) ++ prev
|
||||||
}
|
}
|
||||||
})
|
}) {
|
||||||
|
def this(n: Int, location: HierarchicalLocation = InSubsystem, useVxCache: Boolean = false) = this(n, location, RocketCrossingParams(
|
||||||
|
master = HierarchicalElementMasterPortParams.locationDefault(location),
|
||||||
|
slave = HierarchicalElementSlavePortParams.locationDefault(location),
|
||||||
|
mmioBaseAddressPrefixWhere = location match {
|
||||||
|
case InSubsystem => CBUS
|
||||||
|
case InCluster(clusterId) => CCBUS(clusterId)
|
||||||
|
}
|
||||||
|
), useVxCache)
|
||||||
|
}
|
||||||
|
|
||||||
class WithFuzzerCores(
|
class WithFuzzerCores(
|
||||||
n: Int,
|
n: Int,
|
||||||
|
|||||||
Reference in New Issue
Block a user