From c05897abfcf7f513c03dffbef4f8ebc0d69cb616 Mon Sep 17 00:00:00 2001 From: Hansung Kim Date: Thu, 29 Feb 2024 17:37:54 -0800 Subject: [PATCH] Add rocket-chip cluster support in WithRadianceCores --- .../scala/radiance/subsystem/Configs.scala | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/scala/radiance/subsystem/Configs.scala b/src/main/scala/radiance/subsystem/Configs.scala index daaa9f3..9bc8cfa 100644 --- a/src/main/scala/radiance/subsystem/Configs.scala +++ b/src/main/scala/radiance/subsystem/Configs.scala @@ -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,