Integrate rerocc
This commit is contained in:
@@ -254,7 +254,7 @@ lazy val caliptra_aes = (project in file("generators/caliptra-aes-acc"))
|
|||||||
.settings(commonSettings)
|
.settings(commonSettings)
|
||||||
|
|
||||||
lazy val rerocc = (project in file("generators/rerocc"))
|
lazy val rerocc = (project in file("generators/rerocc"))
|
||||||
.dependsOn(rocketchip)
|
.dependsOn(rocketchip, constellation, boom)
|
||||||
.settings(libraryDependencies ++= rocketLibDeps.value)
|
.settings(libraryDependencies ++= rocketLibDeps.value)
|
||||||
.settings(commonSettings)
|
.settings(commonSettings)
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class DigitalTop(implicit p: Parameters) extends ChipyardSystem
|
|||||||
with chipyard.clocking.CanHaveClockTap // Enables optionally adding a clock tap output port
|
with chipyard.clocking.CanHaveClockTap // Enables optionally adding a clock tap output port
|
||||||
with fftgenerator.CanHavePeripheryFFT // Enables optionally having an MMIO-based FFT block
|
with fftgenerator.CanHavePeripheryFFT // Enables optionally having an MMIO-based FFT block
|
||||||
with constellation.soc.CanHaveGlobalNoC // Support instantiating a global NoC interconnect
|
with constellation.soc.CanHaveGlobalNoC // Support instantiating a global NoC interconnect
|
||||||
|
with rerocc.CanHaveReRoCCTiles // Support tiles that instantiate rerocc-attached accelerators
|
||||||
{
|
{
|
||||||
override lazy val module = new DigitalTopModule(this)
|
override lazy val module = new DigitalTopModule(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,3 +48,22 @@ class AES256ECBRocketConfig extends Config(
|
|||||||
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
||||||
new chipyard.config.WithSystemBusWidth(256) ++
|
new chipyard.config.WithSystemBusWidth(256) ++
|
||||||
new chipyard.config.AbstractConfig)
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
|
class ReRoCCTestConfig extends Config(
|
||||||
|
new rerocc.WithReRoCC ++
|
||||||
|
new chipyard.config.WithCharacterCountRoCC ++ // rerocc tile4 is charcnt
|
||||||
|
new chipyard.config.WithAccumulatorRoCC ++ // rerocc tile3 is accum
|
||||||
|
new chipyard.config.WithAccumulatorRoCC ++ // rerocc tile2 is accum
|
||||||
|
new chipyard.config.WithAccumulatorRoCC ++ // rerocc tile1 is accum
|
||||||
|
new chipyard.config.WithAccumulatorRoCC ++ // rerocc tile0 is accum
|
||||||
|
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
|
||||||
|
new chipyard.config.AbstractConfig)
|
||||||
|
|
||||||
|
class ReRoCCManyGemminiConfig extends Config(
|
||||||
|
new rerocc.WithReRoCC ++
|
||||||
|
new gemmini.LeanGemminiConfig ++ // rerocc tile3 is gemmini
|
||||||
|
new gemmini.LeanGemminiConfig ++ // rerocc tile2 is gemmini
|
||||||
|
new gemmini.LeanGemminiConfig ++ // rerocc tile1 is gemmini
|
||||||
|
new gemmini.LeanGemminiConfig ++ // rerocc tile0 is gemmini
|
||||||
|
new freechips.rocketchip.subsystem.WithNBigCores(4) ++ // 4 rocket cores
|
||||||
|
new chipyard.config.AbstractConfig)
|
||||||
|
|||||||
@@ -43,3 +43,17 @@ class WithMultiRoCCGemmini[T <: Data : Arithmetic, U <: Data, V <: Data](
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
class WithAccumulatorRoCC(op: OpcodeSet = OpcodeSet.custom1) extends Config((site, here, up) => {
|
||||||
|
case BuildRoCC => up(BuildRoCC) ++ Seq((p: Parameters) => {
|
||||||
|
val accumulator = LazyModule(new AccumulatorExample(op, n = 4)(p))
|
||||||
|
accumulator
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
class WithCharacterCountRoCC(op: OpcodeSet = OpcodeSet.custom2) extends Config((site, here, up) => {
|
||||||
|
case BuildRoCC => up(BuildRoCC) ++ Seq((p: Parameters) => {
|
||||||
|
val counter = LazyModule(new CharacterCountExample(op)(p))
|
||||||
|
counter
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|||||||
Submodule generators/rerocc updated: 78a29b0f88...61751c3c23
Reference in New Issue
Block a user