From 8c3a586c738926c886b83e9383bc30616b7386be Mon Sep 17 00:00:00 2001 From: Jerry Zhao Date: Wed, 20 Sep 2023 15:53:13 -0700 Subject: [PATCH] Add NarrowRocketCache config fragment For configs with wide SBUS, a narrow rocket cache is easier to PD, and does not incur any performance loss usually --- .../src/main/scala/config/fragments/TileFragments.scala | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala index 17eaa3f0..abd26769 100644 --- a/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala +++ b/generators/chipyard/src/main/scala/config/fragments/TileFragments.scala @@ -66,6 +66,15 @@ class WithNPMPs(n: Int = 8) extends Config((site, here, up) => { } }) +class WithRocketCacheRowBits(rowBits: Int = 64) extends Config((site, here, up) => { + case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem)) map { + case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy( + dcache = tp.tileParams.dcache.map(_.copy(rowBits = rowBits)), + icache = tp.tileParams.icache.map(_.copy(rowBits = rowBits)) + )) + } +}) + class WithRocketICacheScratchpad extends Config((site, here, up) => { case TilesLocated(InSubsystem) => up(TilesLocated(InSubsystem), site) map { case tp: RocketTileAttachParams => tp.copy(tileParams = tp.tileParams.copy(