Revert "tile: add option for tile boundary buffers"
This reverts commit b64b87ad07.
The crossings already have buffering in those places where it was
appropriate. Adding more does not help flow through paths.
This commit is contained in:
@@ -17,8 +17,7 @@ case class RocketTileParams(
|
|||||||
dcache: Option[DCacheParams] = Some(DCacheParams()),
|
dcache: Option[DCacheParams] = Some(DCacheParams()),
|
||||||
rocc: Seq[RoCCParams] = Nil,
|
rocc: Seq[RoCCParams] = Nil,
|
||||||
btb: Option[BTBParams] = Some(BTBParams()),
|
btb: Option[BTBParams] = Some(BTBParams()),
|
||||||
dataScratchpadBytes: Int = 0,
|
dataScratchpadBytes: Int = 0) extends TileParams {
|
||||||
boundaryBufferParams: BufferParams = BufferParams.flow) extends TileParams {
|
|
||||||
require(icache.isDefined)
|
require(icache.isDefined)
|
||||||
require(dcache.isDefined)
|
require(dcache.isDefined)
|
||||||
}
|
}
|
||||||
@@ -172,11 +171,7 @@ abstract class RocketTileWrapper(rtp: RocketTileParams, hartid: Int)(implicit p:
|
|||||||
val periphIntNode = IntInputNode()
|
val periphIntNode = IntInputNode()
|
||||||
val coreIntNode = IntInputNode()
|
val coreIntNode = IntInputNode()
|
||||||
val intXbar = LazyModule(new IntXbar)
|
val intXbar = LazyModule(new IntXbar)
|
||||||
val masterBuffer = LazyModule(new TLBuffer(rtp.boundaryBufferParams))
|
|
||||||
val slaveBuffer = LazyModule(new TLBuffer(rtp.boundaryBufferParams))
|
|
||||||
|
|
||||||
masterBuffer.node :=* rocket.masterNode
|
|
||||||
rocket.slaveNode connectButDontMonitorSlaves slaveBuffer.node
|
|
||||||
rocket.intNode := intXbar.intnode
|
rocket.intNode := intXbar.intnode
|
||||||
|
|
||||||
lazy val module = new LazyModuleImp(this) {
|
lazy val module = new LazyModuleImp(this) {
|
||||||
@@ -195,10 +190,10 @@ abstract class RocketTileWrapper(rtp: RocketTileParams, hartid: Int)(implicit p:
|
|||||||
|
|
||||||
class SyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
class SyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
||||||
val masterNode = TLOutputNode()
|
val masterNode = TLOutputNode()
|
||||||
masterNode :=* masterBuffer.node
|
masterNode :=* rocket.masterNode
|
||||||
|
|
||||||
val slaveNode = new TLInputNode() { override def reverse = true }
|
val slaveNode = new TLInputNode() { override def reverse = true }
|
||||||
slaveBuffer.node connectButDontMonitorSlaves slaveNode
|
rocket.slaveNode connectButDontMonitorSlaves slaveNode
|
||||||
|
|
||||||
// Fully async interrupts need synchronizers.
|
// Fully async interrupts need synchronizers.
|
||||||
// Others need no synchronization.
|
// Others need no synchronization.
|
||||||
@@ -213,12 +208,12 @@ class SyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters)
|
|||||||
class AsyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
class AsyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
||||||
val masterNode = TLAsyncOutputNode()
|
val masterNode = TLAsyncOutputNode()
|
||||||
val source = LazyModule(new TLAsyncCrossingSource)
|
val source = LazyModule(new TLAsyncCrossingSource)
|
||||||
source.node :=* masterBuffer.node
|
source.node :=* rocket.masterNode
|
||||||
masterNode :=* source.node
|
masterNode :=* source.node
|
||||||
|
|
||||||
val slaveNode = new TLAsyncInputNode() { override def reverse = true }
|
val slaveNode = new TLAsyncInputNode() { override def reverse = true }
|
||||||
val sink = LazyModule(new TLAsyncCrossingSink)
|
val sink = LazyModule(new TLAsyncCrossingSink)
|
||||||
slaveBuffer.node connectButDontMonitorSlaves sink.node
|
rocket.slaveNode connectButDontMonitorSlaves sink.node
|
||||||
sink.node connectButDontMonitorSlaves slaveNode
|
sink.node connectButDontMonitorSlaves slaveNode
|
||||||
|
|
||||||
// Fully async interrupts need synchronizers,
|
// Fully async interrupts need synchronizers,
|
||||||
@@ -237,12 +232,12 @@ class AsyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters
|
|||||||
class RationalRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
class RationalRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
||||||
val masterNode = TLRationalOutputNode()
|
val masterNode = TLRationalOutputNode()
|
||||||
val source = LazyModule(new TLRationalCrossingSource)
|
val source = LazyModule(new TLRationalCrossingSource)
|
||||||
source.node :=* masterBuffer.node
|
source.node :=* rocket.masterNode
|
||||||
masterNode :=* source.node
|
masterNode :=* source.node
|
||||||
|
|
||||||
val slaveNode = new TLRationalInputNode() { override def reverse = true }
|
val slaveNode = new TLRationalInputNode() { override def reverse = true }
|
||||||
val sink = LazyModule(new TLRationalCrossingSink(SlowToFast))
|
val sink = LazyModule(new TLRationalCrossingSink(SlowToFast))
|
||||||
slaveBuffer.node connectButDontMonitorSlaves sink.node
|
rocket.slaveNode connectButDontMonitorSlaves sink.node
|
||||||
sink.node connectButDontMonitorSlaves slaveNode
|
sink.node connectButDontMonitorSlaves slaveNode
|
||||||
|
|
||||||
// Fully async interrupts need synchronizers.
|
// Fully async interrupts need synchronizers.
|
||||||
|
|||||||
Reference in New Issue
Block a user