diplomacy Nodes: leave flipping to the MixedNode implementation
This commit is contained in:
parent
082f338432
commit
0edcd3304a
@ -161,8 +161,12 @@ class MixedNode[DI, UI, EI, BI <: Data, DO, UO, EO, BO <: Data](
|
||||
lazy val edgesOut = (oPorts zip oParams).map { case ((i, n), o) => outer.edgeO(o, n.iParams(i)) }
|
||||
lazy val edgesIn = (iPorts zip iParams).map { case ((o, n), i) => inner.edgeI(n.oParams(o), i) }
|
||||
|
||||
lazy val bundleOut = outer.bundleO(edgesOut)
|
||||
lazy val bundleIn = inner.bundleI(edgesIn)
|
||||
val flip = false // needed for blind nodes
|
||||
private def flipO(b: Vec[BO]) = if (flip) b.flip else b
|
||||
private def flipI(b: Vec[BI]) = if (flip) b else b.flip
|
||||
|
||||
lazy val bundleOut = flipO(outer.bundleO(edgesOut))
|
||||
lazy val bundleIn = flipI(inner.bundleI(edgesIn))
|
||||
|
||||
// connects the outward part of a node with the inward part of this node
|
||||
override def := (h: OutwardNodeHandle[DI, UI, BI])(implicit sourceInfo: SourceInfo): Option[LazyModule] = {
|
||||
|
@ -16,7 +16,7 @@ object AXI4Imp extends NodeImp[AXI4MasterPortParameters, AXI4SlavePortParameters
|
||||
}
|
||||
def bundleI(ei: Seq[AXI4EdgeParameters]): Vec[AXI4Bundle] = {
|
||||
require (!ei.isEmpty)
|
||||
Vec(ei.size, AXI4Bundle(ei.map(_.bundle).reduce(_.union(_)))).flip
|
||||
Vec(ei.size, AXI4Bundle(ei.map(_.bundle).reduce(_.union(_))))
|
||||
}
|
||||
|
||||
def colour = "#00ccff" // bluish
|
||||
|
@ -58,7 +58,7 @@ object IntImp extends NodeImp[IntSourcePortParameters, IntSinkPortParameters, In
|
||||
}
|
||||
def bundleI(ei: Seq[IntEdge]): Vec[Vec[Bool]] = {
|
||||
require (!ei.isEmpty)
|
||||
Vec(ei.size, Vec(ei.map(_.source.num).max, Bool())).flip
|
||||
Vec(ei.size, Vec(ei.map(_.source.num).max, Bool()))
|
||||
}
|
||||
|
||||
def colour = "#0000ff" // blue
|
||||
|
@ -17,7 +17,7 @@ object TLImp extends NodeImp[TLClientPortParameters, TLManagerPortParameters, TL
|
||||
}
|
||||
def bundleI(ei: Seq[TLEdgeIn]): Vec[TLBundle] = {
|
||||
require (!ei.isEmpty)
|
||||
Vec(ei.size, TLBundle(ei.map(_.bundle).reduce(_.union(_)))).flip
|
||||
Vec(ei.size, TLBundle(ei.map(_.bundle).reduce(_.union(_))))
|
||||
}
|
||||
|
||||
var emitMonitors = true
|
||||
@ -149,7 +149,7 @@ object TLAsyncImp extends NodeImp[TLAsyncClientPortParameters, TLAsyncManagerPor
|
||||
}
|
||||
def bundleI(ei: Seq[TLAsyncEdgeParameters]): Vec[TLAsyncBundle] = {
|
||||
require (ei.size == 1)
|
||||
Vec(ei.size, new TLAsyncBundle(ei(0).bundle)).flip
|
||||
Vec(ei.size, new TLAsyncBundle(ei(0).bundle))
|
||||
}
|
||||
|
||||
def colour = "#ff0000" // red
|
||||
|
Loading…
Reference in New Issue
Block a user