Add rocket-chip cluster support in WithRadianceCores

This commit is contained in:
Hansung Kim
2024-02-29 17:37:54 -08:00
parent 55d00d25bb
commit c05897abfc

View File

@@ -13,10 +13,12 @@ import radiance.memory._
class WithRadianceCores(
n: Int,
location: HierarchicalLocation,
crossing: RocketCrossingParams,
useVxCache: Boolean
) extends Config((site, _, up) => {
case TilesLocated(InSubsystem) => {
val prev = up(TilesLocated(InSubsystem), site)
case TilesLocated(`location`) => {
val prev = up(TilesLocated(`location`), site)
val idOffset = prev.size
val vortex = RadianceTileParams(
core = VortexCoreParams(fpu = None),
@@ -43,10 +45,19 @@ class WithRadianceCores(
blockBytes = site(CacheBlockBytes))))
List.tabulate(n)(i => RadianceTileAttachParams(
vortex.copy(tileId = i + idOffset),
RocketCrossingParams()
crossing
)) ++ 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(
n: Int,