Merge pull request #1667 from ucb-bar/llc-buffers
Add cfg fragment to insert LLC interior/exterior buffers
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
package chipyard.config
|
package chipyard.config
|
||||||
|
|
||||||
import org.chipsalliance.cde.config.{Config}
|
import org.chipsalliance.cde.config.{Config}
|
||||||
import freechips.rocketchip.subsystem.{SystemBusKey, BankedL2Key, CoherenceManagerWrapper}
|
import freechips.rocketchip.subsystem.{SystemBusKey, BankedL2Key, CoherenceManagerWrapper, InclusiveCacheKey}
|
||||||
import freechips.rocketchip.diplomacy.{DTSTimebase}
|
import freechips.rocketchip.diplomacy.{DTSTimebase}
|
||||||
|
import sifive.blocks.inclusivecache.{InclusiveCachePortParameters}
|
||||||
|
|
||||||
// Replaces the L2 with a broadcast manager for maintaining coherence
|
// Replaces the L2 with a broadcast manager for maintaining coherence
|
||||||
class WithBroadcastManager extends Config((site, here, up) => {
|
class WithBroadcastManager extends Config((site, here, up) => {
|
||||||
@@ -16,3 +17,13 @@ class WithSystemBusWidth(bitWidth: Int) extends Config((site, here, up) => {
|
|||||||
class WithDTSTimebase(freqMHz: BigInt) extends Config((site, here, up) => {
|
class WithDTSTimebase(freqMHz: BigInt) extends Config((site, here, up) => {
|
||||||
case DTSTimebase => freqMHz
|
case DTSTimebase => freqMHz
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Adds buffers on the interior of the inclusive LLC, to improve PD
|
||||||
|
class WithInclusiveCacheInteriorBuffer(buffer: InclusiveCachePortParameters = InclusiveCachePortParameters.full) extends Config((site, here, up) => {
|
||||||
|
case InclusiveCacheKey => up(InclusiveCacheKey).copy(bufInnerInterior=buffer, bufOuterInterior=buffer)
|
||||||
|
})
|
||||||
|
|
||||||
|
// Adds buffers on the exterior of the inclusive LLC, to improve PD
|
||||||
|
class WithInclusiveCacheExteriorBuffer(buffer: InclusiveCachePortParameters = InclusiveCachePortParameters.full) extends Config((site, here, up) => {
|
||||||
|
case InclusiveCacheKey => up(InclusiveCacheKey).copy(bufInnerExterior=buffer, bufOuterExterior=buffer)
|
||||||
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user