1
0

BankedL2Config: use the same LazyModule for all L2 banks

This makes it much easier for banked coherence managers to support
cross-bank functionality, like a common control port, for example.
This commit is contained in:
Wesley W. Terpstra
2017-01-30 14:02:59 -08:00
parent b567a2a356
commit 280af9684b
3 changed files with 11 additions and 8 deletions

View File

@ -144,10 +144,12 @@ class WithBufferlessBroadcastHub extends Config((site, here, up) => {
* DO NOT use this configuration.
*/
class WithStatelessBridge extends Config((site, here, up) => {
case BankedL2Config => up(BankedL2Config, site).copy(coherenceManager = { case (q, _, _) =>
case BankedL2Config => up(BankedL2Config, site).copy(coherenceManager = { case (q, _) =>
implicit val p = q
val cork = LazyModule(new TLCacheCork(unsafe = true))
(cork.node, TLWidthWidget(p(L1toL2Config).beatBytes)(cork.node))
val ww = LazyModule(new TLWidthWidget(p(L1toL2Config).beatBytes))
ww.node :*= cork.node
(cork.node, ww.node)
})
case DCacheKey => up(DCacheKey, site).copy(nMSHRs = 0)
})