From 3b5fb3c043ccc2cea81ed7a44b295f4652d0ba02 Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Mon, 30 Jan 2023 15:12:32 -0800 Subject: [PATCH] Fix match errors on rocket config fragments --- src/main/scala/subsystem/Configs.scala | 89 +++++++++++++++++++------- 1 file changed, 67 insertions(+), 22 deletions(-) diff --git a/src/main/scala/subsystem/Configs.scala b/src/main/scala/subsystem/Configs.scala index 70059230515..b2303baa14a 100644 --- a/src/main/scala/subsystem/Configs.scala +++ b/src/main/scala/subsystem/Configs.scala @@ -227,26 +227,34 @@ class WithNTrackersPerBank(n: Int) extends Config((site, here, up) => { class WithL1ICacheSets(sets: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - icache = tp.tileParams.icache.map(_.copy(nSets = sets))))} + icache = tp.tileParams.icache.map(_.copy(nSets = sets)))) + case t => t + } }) // This is the number of icache sets for all Rocket tiles class WithL1DCacheSets(sets: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - dcache = tp.tileParams.dcache.map(_.copy(nSets = sets))))} + dcache = tp.tileParams.dcache.map(_.copy(nSets = sets)))) + case t => t + } }) class WithL1ICacheWays(ways: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - icache = tp.tileParams.icache.map(_.copy(nWays = ways))))} + icache = tp.tileParams.icache.map(_.copy(nWays = ways)))) + case t => t + } }) class WithL1DCacheWays(ways: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - dcache = tp.tileParams.dcache.map(_.copy(nWays = ways))))} + dcache = tp.tileParams.dcache.map(_.copy(nWays = ways)))) + case t => t + } }) class WithCacheBlockBytes(linesize: Int) extends Config((site, here, up) => { @@ -275,7 +283,9 @@ class WithIncoherentTiles extends Config((site, here, up) => { master = tp.crossingParams.master match { case x: TileMasterPortParams => x.copy(cork = Some(true)) case _ => throw new Exception("Unrecognized type for RocketCrossingParams.master") - }))} + })) + case t => t + } case BankedL2Key => up(BankedL2Key, site).copy( coherenceManager = CoherenceManagerWrapper.incoherentManager ) @@ -287,7 +297,9 @@ class WithRV32 extends Config((site, here, up) => { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( core = tp.tileParams.core.copy( fpu = tp.tileParams.core.fpu.map(_.copy(fLen = 32)), - mulDiv = Some(MulDivParams(mulUnroll = 8)))))} + mulDiv = Some(MulDivParams(mulUnroll = 8))))) + case t => t + } }) class WithFP16 extends Config((site, here, up) => { @@ -297,25 +309,32 @@ class WithFP16 extends Config((site, here, up) => { fpu = tp.tileParams.core.fpu.map(_.copy(minFLen = 16)) ) )) + case t => t } }) class WithNonblockingL1(nMSHRs: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - dcache = tp.tileParams.dcache.map(_.copy(nMSHRs = nMSHRs))))} + dcache = tp.tileParams.dcache.map(_.copy(nMSHRs = nMSHRs)))) + case t => t + } }) class WithNBreakpoints(hwbp: Int) extends Config ((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(nBreakpoints = hwbp)))} + core = tp.tileParams.core.copy(nBreakpoints = hwbp))) + case t => t + } }) class WithHypervisor(hext: Boolean = true) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(useHypervisor = hext)))} + core = tp.tileParams.core.copy(useHypervisor = hext))) + case t => t + } }) class WithRoccExample extends Config((site, here, up) => { @@ -341,56 +360,74 @@ class WithRoccExample extends Config((site, here, up) => { class WithDefaultBtb extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - btb = Some(BTBParams())))} + btb = Some(BTBParams()))) + case t => t + } }) class WithFastMulDiv extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( core = tp.tileParams.core.copy(mulDiv = Some( - MulDivParams(mulUnroll = 8, mulEarlyOut = (site(XLen) > 32), divEarlyOut = true)))))} + MulDivParams(mulUnroll = 8, mulEarlyOut = (site(XLen) > 32), divEarlyOut = true))))) + case t => t + } }) class WithoutMulDiv extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(mulDiv = None)))} + core = tp.tileParams.core.copy(mulDiv = None))) + case t => t + } }) class WithoutFPU extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(fpu = None)))} + core = tp.tileParams.core.copy(fpu = None))) + case t => t + } }) class WithFPUWithoutDivSqrt extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(fpu = tp.tileParams.core.fpu.map(_.copy(divSqrt = false)))))} + core = tp.tileParams.core.copy(fpu = tp.tileParams.core.fpu.map(_.copy(divSqrt = false))))) + case t => t + } }) class WithBitManip extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(useBitManip = true)))} + core = tp.tileParams.core.copy(useBitManip = true))) + case t => t + } }) class WithBitManipCrypto extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(useBitManipCrypto = true)))} + core = tp.tileParams.core.copy(useBitManipCrypto = true))) + case t => t + } }) class WithCryptoNIST extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(useCryptoNIST = true)))} + core = tp.tileParams.core.copy(useCryptoNIST = true))) + case t => t + } }) class WithCryptoSM extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( - core = tp.tileParams.core.copy(useCryptoSM = true)))} + core = tp.tileParams.core.copy(useCryptoSM = true))) + case t => t + } }) class WithBootROMFile(bootROMFile: String) extends Config((site, here, up) => { @@ -404,19 +441,25 @@ class WithClockGateModel(file: String = "/vsrc/EICG_wrapper.v") extends Config(( class WithSynchronousRocketTiles extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - crossingType = SynchronousCrossing()))} + crossingType = SynchronousCrossing())) + case t => t + } }) class WithAsynchronousRocketTiles(depth: Int, sync: Int) extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - crossingType = AsynchronousCrossing()))} + crossingType = AsynchronousCrossing())) + case t => t + } }) class WithRationalRocketTiles extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(crossingParams = tp.crossingParams.copy( - crossingType = RationalCrossing()))} + crossingType = RationalCrossing())) + case t => t + } }) class WithEdgeDataBits(dataBits: Int) extends Config((site, here, up) => { @@ -510,7 +553,9 @@ class WithScratchpadsOnly extends Config((site, here, up) => { dcache = tp.tileParams.dcache.map(_.copy( nSets = 256, // 16Kb scratchpad nWays = 1, - scratch = Some(0x80000000L)))))} + scratch = Some(0x80000000L))))) + case t => t + } }) /**