Add various granular and composable configs.
This commit is contained in:
parent
81d98304dc
commit
bab504cc3f
@ -191,6 +191,43 @@ class WithNTrackersPerBank(n: Int) extends Config(
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// This is the number of sets **per way**
|
||||||
|
class WithL1ICacheSets(sets: Int) extends Config (
|
||||||
|
knobValues = {
|
||||||
|
case "L1I_SETS" => sets
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// This is the number of sets **per way**
|
||||||
|
class WithL1DCacheSets(sets: Int) extends Config (
|
||||||
|
knobValues = {
|
||||||
|
case "L1D_SETS" => sets
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithL1ICacheWays(ways: Int) extends Config (
|
||||||
|
knobValues = {
|
||||||
|
case "L1I_WAYS" => ways
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithL1DCacheWays(ways: Int) extends Config (
|
||||||
|
knobValues = {
|
||||||
|
case "L1D_WAYS" => ways
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithCacheBlockBytes(linesize: Int) extends Config (
|
||||||
|
topDefinitions = { (pname,site,here) => pname match {
|
||||||
|
case CacheBlockBytes => Dump("CACHE_BLOCK_BYTES", linesize)
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}}
|
||||||
|
)
|
||||||
|
|
||||||
class WithDataScratchpad(n: Int) extends Config(
|
class WithDataScratchpad(n: Int) extends Config(
|
||||||
(pname,site,here) => pname match {
|
(pname,site,here) => pname match {
|
||||||
case DataScratchpadSize => n
|
case DataScratchpadSize => n
|
||||||
@ -332,3 +369,37 @@ class WithRoccExample extends Config(
|
|||||||
|
|
||||||
class WithSplitL2Metadata extends Config(
|
class WithSplitL2Metadata extends Config(
|
||||||
knobValues = { case "L2_SPLIT_METADATA" => true; case _ => throw new CDEMatchError })
|
knobValues = { case "L2_SPLIT_METADATA" => true; case _ => throw new CDEMatchError })
|
||||||
|
|
||||||
|
class WithDefaultBtb extends Config (
|
||||||
|
topDefinitions = { (pname,site,here) => pname match {
|
||||||
|
case BtbKey => BtbParameters()
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithFastMulDiv extends Config (
|
||||||
|
topDefinitions = { (pname,site,here) => pname match {
|
||||||
|
case MulDivKey => Some(MulDivConfig(mulUnroll = 8, mulEarlyOut = (site(XLen) > 32), divEarlyOut = true))
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithoutMulDiv extends Config (
|
||||||
|
(pname, site, here) => pname match {
|
||||||
|
case MulDivKey => None
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithoutFPU extends Config(
|
||||||
|
(pname, site, here) => pname match {
|
||||||
|
case FPUKey => None
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
})
|
||||||
|
|
||||||
|
class WithFPUWithoutDivSqrt extends Config (
|
||||||
|
(pname, site, here) => pname match {
|
||||||
|
case FPUKey => Some(FPUConfig(divSqrt = false))
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
@ -199,3 +199,17 @@ class WithoutTLMonitors extends Config (
|
|||||||
case _ => throw new CDEMatchError
|
case _ => throw new CDEMatchError
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class WithNExtTopInterrupts(nExtInts: Int) extends Config(
|
||||||
|
(pname, site, here) => pname match {
|
||||||
|
case NExtTopInterrupts => nExtInts
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
class WithNBreakpoints(hwbp: Int) extends Config (
|
||||||
|
(pname,site,here) => pname match {
|
||||||
|
case NBreakpoints => hwbp
|
||||||
|
case _ => throw new CDEMatchError
|
||||||
|
}
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user