Skip to content

Commit

Permalink
Decoupled sbus width from boom|hwacha|gemmini memory interface widths (
Browse files Browse the repository at this point in the history
  • Loading branch information
jerryz123 authored Dec 8, 2022
1 parent 927bd6f commit 43b7564
Show file tree
Hide file tree
Showing 6 changed files with 18 additions and 3 deletions.
2 changes: 1 addition & 1 deletion generators/boom
5 changes: 5 additions & 0 deletions generators/chipyard/src/main/scala/config/BoomConfigs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,12 @@ class MediumBoomConfig extends Config(

class LargeBoomConfig extends Config(
new boom.common.WithNLargeBooms(1) ++ // large boom config
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

class MegaBoomConfig extends Config(
new boom.common.WithNMegaBooms(1) ++ // mega boom config
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

class DualSmallBoomConfig extends Config(
Expand All @@ -30,16 +32,19 @@ class HwachaLargeBoomConfig extends Config(
new chipyard.config.WithHwachaTest ++
new hwacha.DefaultHwachaConfig ++ // use Hwacha vector accelerator
new boom.common.WithNLargeBooms(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

class LoopbackNICLargeBoomConfig extends Config(
new chipyard.harness.WithLoopbackNIC ++ // drive NIC IOs with loopback
new icenet.WithIceNIC ++ // build a NIC
new boom.common.WithNLargeBooms(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

class DromajoBoomConfig extends Config(
new chipyard.harness.WithSimDromajoBridge ++ // attach Dromajo
new chipyard.config.WithTraceIO ++ // enable the traceio
new boom.common.WithNSmallBooms(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
7 changes: 7 additions & 0 deletions generators/chipyard/src/main/scala/config/HeteroConfigs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import freechips.rocketchip.config.{Config}
class LargeBoomAndRocketConfig extends Config(
new boom.common.WithNLargeBooms(1) ++ // single-core boom
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // single rocket-core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

// DOC include start: BoomAndRocketWithHwacha
Expand All @@ -17,6 +18,7 @@ class HwachaLargeBoomAndHwachaRocketConfig extends Config(
new hwacha.DefaultHwachaConfig ++ // add hwacha to all harts
new boom.common.WithNLargeBooms(1) ++ // add 1 boom core
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // add 1 rocket core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
// DOC include end: BoomAndRocketWithHwacha

Expand All @@ -26,6 +28,7 @@ class LargeBoomAndHwachaRocketConfig extends Config(
new hwacha.DefaultHwachaConfig ++ // set default hwacha config keys
new boom.common.WithNLargeBooms(1) ++ // add 1 boom core
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // add 1 rocket core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

// DOC include start: DualBoomAndRocketOneHwacha
Expand All @@ -35,23 +38,27 @@ class DualLargeBoomAndHwachaRocketConfig extends Config(
new hwacha.DefaultHwachaConfig ++ // set default hwacha config keys
new boom.common.WithNLargeBooms(2) ++ // add 2 boom cores
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // add 1 rocket core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
// DOC include end: DualBoomAndRocketOneHwacha

class DualLargeBoomAndDualRocketConfig extends Config(
new boom.common.WithNLargeBooms(2) ++ // add 2 boom cores
new freechips.rocketchip.subsystem.WithNBigCores(2) ++ // add 2 rocket cores
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

// DOC include start: DualBoomAndSingleRocket
class DualLargeBoomAndSingleRocketConfig extends Config(
new boom.common.WithNLargeBooms(2) ++ // add 2 boom cores
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // add 1 rocket core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
// DOC include end: DualBoomAndSingleRocket

class LargeBoomAndRocketWithControlCoreConfig extends Config(
new freechips.rocketchip.subsystem.WithNSmallCores(1) ++ // Add a small "control" core
new boom.common.WithNLargeBooms(1) ++ // Add 1 boom core
new freechips.rocketchip.subsystem.WithNBigCores(1) ++ // add 1 rocket core
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
3 changes: 3 additions & 0 deletions generators/chipyard/src/main/scala/config/RocketConfigs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -42,18 +42,21 @@ class HwachaRocketConfig extends Config(
new chipyard.config.WithHwachaTest ++
new hwacha.DefaultHwachaConfig ++ // use Hwacha vector accelerator
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)

// DOC include start: GemminiRocketConfig
class GemminiRocketConfig extends Config(
new gemmini.DefaultGemminiConfig ++ // use Gemmini systolic array GEMM accelerator
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)
// DOC include end: GemminiRocketConfig

class FPGemminiRocketConfig extends Config(
new gemmini.GemminiFP32DefaultConfig ++ // use FP32Gemmini systolic array GEMM accelerator
new freechips.rocketchip.subsystem.WithNBigCores(1) ++
new chipyard.config.WithSystemBusWidth(128) ++
new chipyard.config.AbstractConfig)


Expand Down
2 changes: 1 addition & 1 deletion generators/gemmini
Submodule gemmini updated 41 files
+1 −1 .github/workflows/config.yml
+1 −1 CHIPYARD.hash
+11 −3 README.md
+1 −1 SPIKE.hash
+2 −0 scripts/build-midas.sh
+1 −1 scripts/build-onnx-inference.sh
+7 −4 scripts/build-vcs.sh
+6 −3 scripts/build-verilator.sh
+2 −1 scripts/run-midas.sh
+1 −1 software/gemmini-ort.json
+1 −1 software/gemmini-rocc-tests
+2 −1 software/gemmini-tests-interactive.json
+2 −1 software/gemmini-tests.json
+1 −1 software/onnxruntime-riscv
+35 −23 src/main/scala/gemmini/AccumulatorMem.scala
+137 −56 src/main/scala/gemmini/AccumulatorScale.scala
+5 −1 src/main/scala/gemmini/Activation.scala
+239 −60 src/main/scala/gemmini/Arithmetic.scala
+7 −4 src/main/scala/gemmini/BeatMerger.scala
+61 −5 src/main/scala/gemmini/Configs.scala
+3 −7 src/main/scala/gemmini/ConfigsFP.scala
+38 −24 src/main/scala/gemmini/Controller.scala
+8 −1 src/main/scala/gemmini/CustomConfigs.scala
+11 −8 src/main/scala/gemmini/DMA.scala
+0 −1 src/main/scala/gemmini/DMACommandTracker.scala
+5 −15 src/main/scala/gemmini/DSEConfigs.scala
+16 −17 src/main/scala/gemmini/ExecuteController.scala
+23 −8 src/main/scala/gemmini/GemminiConfigs.scala
+34 −4 src/main/scala/gemmini/GemminiISA.scala
+4 −4 src/main/scala/gemmini/LoadController.scala
+7 −2 src/main/scala/gemmini/LocalAddr.scala
+123 −95 src/main/scala/gemmini/LoopConv.scala
+152 −53 src/main/scala/gemmini/LoopMatmul.scala
+1 −1 src/main/scala/gemmini/MeshWithDelays.scala
+23 −0 src/main/scala/gemmini/NormCmd.scala
+635 −0 src/main/scala/gemmini/Normalizer.scala
+243 −183 src/main/scala/gemmini/ReservationStation.scala
+116 −49 src/main/scala/gemmini/Scratchpad.scala
+65 −14 src/main/scala/gemmini/StoreController.scala
+2 −2 src/main/scala/gemmini/TransposePreloadUnroller.scala
+2 −1 src/main/scala/gemmini/ZeroWriter.scala
2 changes: 1 addition & 1 deletion generators/hwacha

0 comments on commit 43b7564

Please sign in to comment.