diff --git a/generators/chipyard/src/main/scala/ConfigFragments.scala b/generators/chipyard/src/main/scala/ConfigFragments.scala index 10c5d7e3..490baa93 100644 --- a/generators/chipyard/src/main/scala/ConfigFragments.scala +++ b/generators/chipyard/src/main/scala/ConfigFragments.scala @@ -20,7 +20,7 @@ import testchipip._ import tracegen.{TraceGenSystem} import hwacha.{Hwacha} -import gemmini.{Gemmini, GemminiConfigs} +import gemmini._ import boom.common.{BoomTileAttachParams} import cva6.{CVA6TileAttachParams} @@ -83,6 +83,17 @@ class WithMultiRoCC extends Config((site, here, up) => { case BuildRoCC => site(MultiRoCCKey).getOrElse(site(TileKey).hartId, Nil) }) +/** + * Assigns what was previously in the BuildRoCC key to specific harts with MultiRoCCKey + * Must be paired with WithMultiRoCC + */ +class WithMultiRoCCFromBuildRoCC(harts: Int*) extends Config((site, here, up) => { + case BuildRoCC => Nil + case MultiRoCCKey => up(MultiRoCCKey, site) ++ harts.distinct.map { i => + (i -> up(BuildRoCC, site)) + } +}) + /** * Config fragment to add Hwachas to cores based on hart * @@ -108,11 +119,12 @@ class WithMultiRoCCHwacha(harts: Int*) extends Config( }) ) -class WithMultiRoCCGemmini(harts: Int*) extends Config((site, here, up) => { +class WithMultiRoCCGemmini[T <: Data : Arithmetic, U <: Data, V <: Data]( + harts: Int*)(gemminiConfig: GemminiArrayConfig[T,U,V] = GemminiConfigs.defaultConfig) extends Config((site, here, up) => { case MultiRoCCKey => up(MultiRoCCKey, site) ++ harts.distinct.map { i => (i -> Seq((p: Parameters) => { implicit val q = p - val gemmini = LazyModule(new Gemmini(OpcodeSet.custom3, GemminiConfigs.defaultConfig)) + val gemmini = LazyModule(new Gemmini(gemminiConfig)) gemmini })) } diff --git a/generators/gemmini b/generators/gemmini index 1a6ed243..9a92fa07 160000 --- a/generators/gemmini +++ b/generators/gemmini @@ -1 +1 @@ -Subproject commit 1a6ed243874c8306e747d0f80b7773d3e2e1a3cc +Subproject commit 9a92fa07e7432376331e5f013cc00695d6ac783a diff --git a/toolchains/esp-tools/riscv-isa-sim b/toolchains/esp-tools/riscv-isa-sim index a4ed25a9..86265d02 160000 --- a/toolchains/esp-tools/riscv-isa-sim +++ b/toolchains/esp-tools/riscv-isa-sim @@ -1 +1 @@ -Subproject commit a4ed25a96fdb47642b39d893b7e1ca36d07700aa +Subproject commit 86265d02e8abea3b367114393d6b0661fd35b156