Skip to content

Commit

Permalink
Fix match errors on rocket config fragments
Browse files Browse the repository at this point in the history
  • Loading branch information
jerryz123 committed Jan 30, 2023
1 parent 53adf18 commit 3b5fb3c
Showing 1 changed file with 67 additions and 22 deletions.
89 changes: 67 additions & 22 deletions src/main/scala/subsystem/Configs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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) => {
Expand Down Expand 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
)
Expand All @@ -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) => {
Expand All @@ -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) => {
Expand All @@ -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) => {
Expand All @@ -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) => {
Expand Down Expand 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
}
})

/**
Expand Down

0 comments on commit 3b5fb3c

Please sign in to comment.