From 1a87ed1193a04695482a2a1eac47e02b05d2922b Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" Date: Wed, 6 Sep 2017 14:58:34 -0700 Subject: [PATCH] coreplex: add externalSlaveBuffers configuration option --- src/main/scala/coreplex/RocketCoreplex.scala | 6 +++--- src/main/scala/tile/RocketTile.scala | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/scala/coreplex/RocketCoreplex.scala b/src/main/scala/coreplex/RocketCoreplex.scala index feee369e..b57f0f2c 100644 --- a/src/main/scala/coreplex/RocketCoreplex.scala +++ b/src/main/scala/coreplex/RocketCoreplex.scala @@ -46,19 +46,19 @@ trait HasRocketTiles extends HasSystemBus case SynchronousCrossing(params) => { val wrapper = LazyModule(new SyncRocketTile(tp, i)(pWithExtra)) sbus.fromSyncTiles(params, tp.externalMasterBuffers, tp.name) :=* wrapper.masterNode - wrapper.slaveNode :*= pbus.bufferToSlaves + wrapper.slaveNode :*= pbus.toSyncSlaves(tp.name, tp.externalSlaveBuffers) wrapper } case AsynchronousCrossing(depth, sync) => { val wrapper = LazyModule(new AsyncRocketTile(tp, i)(pWithExtra)) sbus.fromAsyncTiles(depth, sync, tp.externalMasterBuffers, tp.name) :=* wrapper.masterNode - wrapper.slaveNode :*= pbus.toAsyncSlaves(sync, tp.name) + wrapper.slaveNode :*= pbus.toAsyncSlaves(sync, tp.name, tp.externalSlaveBuffers) wrapper } case RationalCrossing(direction) => { val wrapper = LazyModule(new RationalRocketTile(tp, i)(pWithExtra)) sbus.fromRationalTiles(direction, tp.externalMasterBuffers, tp.name) :=* wrapper.masterNode - wrapper.slaveNode :*= pbus.toRationalSlaves(tp.name) + wrapper.slaveNode :*= pbus.toRationalSlaves(tp.name, tp.externalSlaveBuffers) wrapper } } diff --git a/src/main/scala/tile/RocketTile.scala b/src/main/scala/tile/RocketTile.scala index ea27e584..a98917b9 100644 --- a/src/main/scala/tile/RocketTile.scala +++ b/src/main/scala/tile/RocketTile.scala @@ -20,7 +20,8 @@ case class RocketTileParams( dataScratchpadBytes: Int = 0, boundaryBuffers: Boolean = false, name: Option[String] = Some("tile"), - externalMasterBuffers: Int = 0) extends TileParams { + externalMasterBuffers: Int = 0, + externalSlaveBuffers: Int = 0) extends TileParams { require(icache.isDefined) require(dcache.isDefined) }