diplomacy: move rendering properties to edges
FlipRendering { implicit p => ... } now changes the render direction of edges. diplomatic NodeImps can specify a default render flip using the new 'render' method.
This commit is contained in:
@ -199,13 +199,13 @@ abstract class RocketTileWrapper(rtp: RocketTileParams, hartid: Int)(implicit p:
|
||||
}
|
||||
}
|
||||
|
||||
def optionalSlaveBuffer(in: TLOutwardNode): TLOutwardNode = {
|
||||
def optionalSlaveBuffer(out: TLInwardNode): TLInwardNode = {
|
||||
if (rtp.boundaryBuffers) {
|
||||
val sbuf = LazyModule(new TLBuffer(BufferParams.flow, BufferParams.none, BufferParams.none, BufferParams.none, BufferParams.none))
|
||||
DisableMonitors { implicit p => sbuf.node :*= in }
|
||||
DisableMonitors { implicit p => out :*= sbuf.node }
|
||||
sbuf.node
|
||||
} else {
|
||||
in
|
||||
out
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,9 +234,7 @@ abstract class RocketTileWrapper(rtp: RocketTileParams, hartid: Int)(implicit p:
|
||||
|
||||
class SyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters) extends RocketTileWrapper(rtp, hartid) {
|
||||
val masterNode = optionalMasterBuffer(rocket.masterNode)
|
||||
|
||||
val slaveNode = new TLIdentityNode() { override def reverse = true }
|
||||
DisableMonitors { implicit p => rocket.slaveNode :*= optionalSlaveBuffer(slaveNode) }
|
||||
val slaveNode = optionalSlaveBuffer(rocket.slaveNode)
|
||||
|
||||
// Fully async interrupts need synchronizers.
|
||||
// Others need no synchronization.
|
||||
@ -259,13 +257,9 @@ class AsyncRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Parameters
|
||||
source.node :=* rocket.masterNode
|
||||
val masterNode = source.node
|
||||
|
||||
val slaveNode = new TLAsyncIdentityNode() { override def reverse = true }
|
||||
val sink = LazyModule(new TLAsyncCrossingSink)
|
||||
|
||||
DisableMonitors { implicit p =>
|
||||
rocket.slaveNode :*= sink.node
|
||||
sink.node :*= slaveNode
|
||||
}
|
||||
DisableMonitors { implicit p => rocket.slaveNode :*= sink.node }
|
||||
val slaveNode = sink.node
|
||||
|
||||
// Fully async interrupts need synchronizers,
|
||||
// as do those coming from the periphery clock.
|
||||
@ -289,13 +283,9 @@ class RationalRocketTile(rtp: RocketTileParams, hartid: Int)(implicit p: Paramet
|
||||
source.node :=* optionalMasterBuffer(rocket.masterNode)
|
||||
val masterNode = source.node
|
||||
|
||||
val slaveNode = new TLRationalIdentityNode() { override def reverse = true }
|
||||
val sink = LazyModule(new TLRationalCrossingSink(SlowToFast))
|
||||
|
||||
DisableMonitors { implicit p =>
|
||||
sink.node :*= slaveNode
|
||||
rocket.slaveNode :*= optionalSlaveBuffer(sink.node)
|
||||
}
|
||||
DisableMonitors { implicit p => optionalSlaveBuffer(rocket.slaveNode) :*= sink.node }
|
||||
val slaveNode = sink.node
|
||||
|
||||
// Fully async interrupts need synchronizers.
|
||||
// Those coming from periphery clock need a
|
||||
|
Reference in New Issue
Block a user