Merge remote-tracking branch 'origin/dev' into offchip-axi-setup

This commit is contained in:
Abraham Gonzalez
2021-03-08 21:20:26 -08:00
3 changed files with 17 additions and 5 deletions

View File

@@ -20,7 +20,7 @@ import testchipip._
import tracegen.{TraceGenSystem} import tracegen.{TraceGenSystem}
import hwacha.{Hwacha} import hwacha.{Hwacha}
import gemmini.{Gemmini, GemminiConfigs} import gemmini._
import boom.common.{BoomTileAttachParams} import boom.common.{BoomTileAttachParams}
import cva6.{CVA6TileAttachParams} import cva6.{CVA6TileAttachParams}
@@ -83,6 +83,17 @@ class WithMultiRoCC extends Config((site, here, up) => {
case BuildRoCC => site(MultiRoCCKey).getOrElse(site(TileKey).hartId, Nil) 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 * 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 => case MultiRoCCKey => up(MultiRoCCKey, site) ++ harts.distinct.map { i =>
(i -> Seq((p: Parameters) => { (i -> Seq((p: Parameters) => {
implicit val q = p implicit val q = p
val gemmini = LazyModule(new Gemmini(OpcodeSet.custom3, GemminiConfigs.defaultConfig)) val gemmini = LazyModule(new Gemmini(gemminiConfig))
gemmini gemmini
})) }))
} }