adapters: support bulk connections
This commit is contained in:
parent
06a244f9f9
commit
e831acba9c
@ -139,7 +139,7 @@ object AHBToTL
|
|||||||
{
|
{
|
||||||
def apply()(x: AHBOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply()(x: AHBOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val tl = LazyModule(new AHBToTL)
|
val tl = LazyModule(new AHBToTL)
|
||||||
tl.node := x
|
tl.node :=? x
|
||||||
tl.node
|
tl.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ object AXI4Buffer
|
|||||||
ar: BufferParams,
|
ar: BufferParams,
|
||||||
r: BufferParams)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
r: BufferParams)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val buffer = LazyModule(new AXI4Buffer(aw, w, b, ar, r))
|
val buffer = LazyModule(new AXI4Buffer(aw, w, b, ar, r))
|
||||||
buffer.node := x
|
buffer.node :=? x
|
||||||
buffer.node
|
buffer.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ object AXI4Deinterleaver
|
|||||||
// applied to the AXI4 source node; y.node := AXI4Deinterleaver()(x.node)
|
// applied to the AXI4 source node; y.node := AXI4Deinterleaver()(x.node)
|
||||||
def apply(maxReadBytes: Int)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
def apply(maxReadBytes: Int)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val deinterleaver = LazyModule(new AXI4Deinterleaver(maxReadBytes))
|
val deinterleaver = LazyModule(new AXI4Deinterleaver(maxReadBytes))
|
||||||
deinterleaver.node := x
|
deinterleaver.node :=? x
|
||||||
deinterleaver.node
|
deinterleaver.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -208,7 +208,7 @@ object AXI4Fragmenter
|
|||||||
// applied to the AXI4 source node; y.node := AXI4Fragmenter()(x.node)
|
// applied to the AXI4 source node; y.node := AXI4Fragmenter()(x.node)
|
||||||
def apply()(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
def apply()(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val fragmenter = LazyModule(new AXI4Fragmenter)
|
val fragmenter = LazyModule(new AXI4Fragmenter)
|
||||||
fragmenter.node := x
|
fragmenter.node :=? x
|
||||||
fragmenter.node
|
fragmenter.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,7 @@ object AXI4IdIndexer
|
|||||||
// applied to the AXI4 source node; y.node := AXI4IdIndexer(idBits)(x.node)
|
// applied to the AXI4 source node; y.node := AXI4IdIndexer(idBits)(x.node)
|
||||||
def apply(idBits: Int)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
def apply(idBits: Int)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val indexer = LazyModule(new AXI4IdIndexer(idBits))
|
val indexer = LazyModule(new AXI4IdIndexer(idBits))
|
||||||
indexer.node := x
|
indexer.node :=? x
|
||||||
indexer.node
|
indexer.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ object AXI4ToTL
|
|||||||
{
|
{
|
||||||
def apply()(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply()(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val tl = LazyModule(new AXI4ToTL)
|
val tl = LazyModule(new AXI4ToTL)
|
||||||
tl.node := x
|
tl.node :=? x
|
||||||
tl.node
|
tl.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ object AXI4UserYanker
|
|||||||
// applied to the AXI4 source node; y.node := AXI4UserYanker(idBits, maxFlight)(x.node)
|
// applied to the AXI4 source node; y.node := AXI4UserYanker(idBits, maxFlight)(x.node)
|
||||||
def apply(capMaxFlight: Option[Int] = None)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
def apply(capMaxFlight: Option[Int] = None)(x: AXI4OutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val yanker = LazyModule(new AXI4UserYanker(capMaxFlight))
|
val yanker = LazyModule(new AXI4UserYanker(capMaxFlight))
|
||||||
yanker.node := x
|
yanker.node :=? x
|
||||||
yanker.node
|
yanker.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ object TLAsyncCrossingSource
|
|||||||
// applied to the TL source node; y.node := TLAsyncCrossingSource()(x.node)
|
// applied to the TL source node; y.node := TLAsyncCrossingSource()(x.node)
|
||||||
def apply(sync: Int = 3)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLAsyncOutwardNode = {
|
def apply(sync: Int = 3)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLAsyncOutwardNode = {
|
||||||
val source = LazyModule(new TLAsyncCrossingSource(sync))
|
val source = LazyModule(new TLAsyncCrossingSource(sync))
|
||||||
source.node := x
|
source.node :=? x
|
||||||
source.node
|
source.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,7 +90,7 @@ object TLAsyncCrossingSink
|
|||||||
// applied to the TL source node; y.node := TLAsyncCrossingSink()(x.node)
|
// applied to the TL source node; y.node := TLAsyncCrossingSink()(x.node)
|
||||||
def apply(depth: Int = 8, sync: Int = 3)(x: TLAsyncOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(depth: Int = 8, sync: Int = 3)(x: TLAsyncOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val sink = LazyModule(new TLAsyncCrossingSink(depth, sync))
|
val sink = LazyModule(new TLAsyncCrossingSink(depth, sync))
|
||||||
sink.node := x
|
sink.node :=? x
|
||||||
sink.node
|
sink.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -265,7 +265,7 @@ object TLAtomicAutomata
|
|||||||
// applied to the TL source node; y.node := TLAtomicAutomata(x.node)
|
// applied to the TL source node; y.node := TLAtomicAutomata(x.node)
|
||||||
def apply(logical: Boolean = true, arithmetic: Boolean = true, concurrency: Int = 1, passthrough: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(logical: Boolean = true, arithmetic: Boolean = true, concurrency: Int = 1, passthrough: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val atomics = LazyModule(new TLAtomicAutomata(logical, arithmetic, concurrency, passthrough))
|
val atomics = LazyModule(new TLAtomicAutomata(logical, arithmetic, concurrency, passthrough))
|
||||||
atomics.node := x
|
atomics.node :=? x
|
||||||
atomics.node
|
atomics.node
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ object TLCacheCork
|
|||||||
// applied to the TL source node; y.node := TLCacheCork()(x.node)
|
// applied to the TL source node; y.node := TLCacheCork()(x.node)
|
||||||
def apply(unsafe: Boolean = false)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(unsafe: Boolean = false)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val cork = LazyModule(new TLCacheCork(unsafe))
|
val cork = LazyModule(new TLCacheCork(unsafe))
|
||||||
cork.node := x
|
cork.node :=? x
|
||||||
cork.node
|
cork.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ object TLDelayer
|
|||||||
// applied to the TL source node; y.node := TLDelayer(0.01)(x.node)
|
// applied to the TL source node; y.node := TLDelayer(0.01)(x.node)
|
||||||
def apply(q: Double)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(q: Double)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val delayer = LazyModule(new TLDelayer(q))
|
val delayer = LazyModule(new TLDelayer(q))
|
||||||
delayer.node := x
|
delayer.node :=? x
|
||||||
delayer.node
|
delayer.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,7 +122,7 @@ object TLFIFOFixer
|
|||||||
// applied to the TL source node; y.node := TLFIFOFixer()(x.node)
|
// applied to the TL source node; y.node := TLFIFOFixer()(x.node)
|
||||||
def apply(policy: Policy = all)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(policy: Policy = all)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val fixer = LazyModule(new TLFIFOFixer(policy))
|
val fixer = LazyModule(new TLFIFOFixer(policy))
|
||||||
fixer.node := x
|
fixer.node :=? x
|
||||||
fixer.node
|
fixer.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,7 +292,7 @@ object TLFragmenter
|
|||||||
// applied to the TL source node; y.node := TLFragmenter(x.node, 256, 4)
|
// applied to the TL source node; y.node := TLFragmenter(x.node, 256, 4)
|
||||||
def apply(minSize: Int, maxSize: Int, alwaysMin: Boolean = false, earlyAck: Boolean = false)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(minSize: Int, maxSize: Int, alwaysMin: Boolean = false, earlyAck: Boolean = false)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val fragmenter = LazyModule(new TLFragmenter(minSize, maxSize, alwaysMin, earlyAck))
|
val fragmenter = LazyModule(new TLFragmenter(minSize, maxSize, alwaysMin, earlyAck))
|
||||||
fragmenter.node := x
|
fragmenter.node :=? x
|
||||||
fragmenter.node
|
fragmenter.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ object TLHintHandler
|
|||||||
// applied to the TL source node; y.node := TLHintHandler(x.node)
|
// applied to the TL source node; y.node := TLHintHandler(x.node)
|
||||||
def apply(supportManagers: Boolean = true, supportClients: Boolean = false, passthrough: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(supportManagers: Boolean = true, supportClients: Boolean = false, passthrough: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val hints = LazyModule(new TLHintHandler(supportManagers, supportClients, passthrough))
|
val hints = LazyModule(new TLHintHandler(supportManagers, supportClients, passthrough))
|
||||||
hints.node := x
|
hints.node :=? x
|
||||||
hints.node
|
hints.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ object TLIsolation
|
|||||||
// **** WARNING: the isolation functions must bring the values to 0 ****
|
// **** WARNING: the isolation functions must bring the values to 0 ****
|
||||||
def apply(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt)(x: TLAsyncOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): (TLAsyncOutwardNode, () => (Bool, Bool)) = {
|
def apply(fOut: (Bool, UInt) => UInt, fIn: (Bool, UInt) => UInt)(x: TLAsyncOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): (TLAsyncOutwardNode, () => (Bool, Bool)) = {
|
||||||
val iso = LazyModule(new TLIsolation(fOut, fIn))
|
val iso = LazyModule(new TLIsolation(fOut, fIn))
|
||||||
iso.node := x
|
iso.node :=? x
|
||||||
(iso.node, () => (iso.module.io.iso_out, iso.module.io.iso_in))
|
(iso.node, () => (iso.module.io.iso_out, iso.module.io.iso_in))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -48,7 +48,7 @@ object TLMap
|
|||||||
// applied to the TL source node; y.node := TLMap(fn)(x.node)
|
// applied to the TL source node; y.node := TLMap(fn)(x.node)
|
||||||
def apply(fn: AddressSet => BigInt)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(fn: AddressSet => BigInt)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val map = LazyModule(new TLMap(fn))
|
val map = LazyModule(new TLMap(fn))
|
||||||
map.node := x
|
map.node :=? x
|
||||||
map.node
|
map.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -67,7 +67,7 @@ object TLNodeNumberer
|
|||||||
// applied to the TL source node; y.node := TLBuffer(x.node)
|
// applied to the TL source node; y.node := TLBuffer(x.node)
|
||||||
def apply(nodeAddressOffset: Option[Int] = None)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(nodeAddressOffset: Option[Int] = None)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val numberer = LazyModule(new TLNodeNumberer(nodeAddressOffset))
|
val numberer = LazyModule(new TLNodeNumberer(nodeAddressOffset))
|
||||||
numberer.node := x
|
numberer.node :=? x
|
||||||
numberer.node
|
numberer.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ object TLRationalCrossingSource
|
|||||||
// applied to the TL source node; y.node := TLRationalCrossingSource()(x.node)
|
// applied to the TL source node; y.node := TLRationalCrossingSource()(x.node)
|
||||||
def apply()(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLRationalOutwardNode = {
|
def apply()(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLRationalOutwardNode = {
|
||||||
val source = LazyModule(new TLRationalCrossingSource)
|
val source = LazyModule(new TLRationalCrossingSource)
|
||||||
source.node := x
|
source.node :=? x
|
||||||
source.node
|
source.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ object TLRationalCrossingSink
|
|||||||
// applied to the TL source node; y.node := TLRationalCrossingSink()(x.node)
|
// applied to the TL source node; y.node := TLRationalCrossingSink()(x.node)
|
||||||
def apply(direction: RationalDirection = Symmetric)(x: TLRationalOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(direction: RationalDirection = Symmetric)(x: TLRationalOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val sink = LazyModule(new TLRationalCrossingSink(direction))
|
val sink = LazyModule(new TLRationalCrossingSink(direction))
|
||||||
sink.node := x
|
sink.node :=? x
|
||||||
sink.node
|
sink.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,7 @@ object TLSourceShrinker
|
|||||||
// applied to the TL source node; y.node := TLSourceShrinker(n)(x.node)
|
// applied to the TL source node; y.node := TLSourceShrinker(n)(x.node)
|
||||||
def apply(maxInFlight: Int)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(maxInFlight: Int)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val shrinker = LazyModule(new TLSourceShrinker(maxInFlight))
|
val shrinker = LazyModule(new TLSourceShrinker(maxInFlight))
|
||||||
shrinker.node := x
|
shrinker.node :=? x
|
||||||
shrinker.node
|
shrinker.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -195,7 +195,7 @@ object TLToAHB
|
|||||||
// applied to the TL source node; y.node := TLToAHB()(x.node)
|
// applied to the TL source node; y.node := TLToAHB()(x.node)
|
||||||
def apply(aFlow: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AHBOutwardNode = {
|
def apply(aFlow: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AHBOutwardNode = {
|
||||||
val ahb = LazyModule(new TLToAHB(aFlow))
|
val ahb = LazyModule(new TLToAHB(aFlow))
|
||||||
ahb.node := x
|
ahb.node :=? x
|
||||||
ahb.node
|
ahb.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ object TLToAPB
|
|||||||
// applied to the TL source node; y.node := TLToAPB()(x.node)
|
// applied to the TL source node; y.node := TLToAPB()(x.node)
|
||||||
def apply(aFlow: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): APBOutwardNode = {
|
def apply(aFlow: Boolean = true)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): APBOutwardNode = {
|
||||||
val apb = LazyModule(new TLToAPB(aFlow))
|
val apb = LazyModule(new TLToAPB(aFlow))
|
||||||
apb.node := x
|
apb.node :=? x
|
||||||
apb.node
|
apb.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -223,7 +223,7 @@ object TLToAXI4
|
|||||||
// applied to the TL source node; y.node := TLToAXI4(beatBytes)(x.node)
|
// applied to the TL source node; y.node := TLToAXI4(beatBytes)(x.node)
|
||||||
def apply(beatBytes: Int, combinational: Boolean = true, adapterName: Option[String] = None, stripBits: Int = 0)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
def apply(beatBytes: Int, combinational: Boolean = true, adapterName: Option[String] = None, stripBits: Int = 0)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): AXI4OutwardNode = {
|
||||||
val axi4 = LazyModule(new TLToAXI4(beatBytes, combinational, adapterName, stripBits))
|
val axi4 = LazyModule(new TLToAXI4(beatBytes, combinational, adapterName, stripBits))
|
||||||
axi4.node := x
|
axi4.node :=? x
|
||||||
axi4.node
|
axi4.node
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ object TLWidthWidget
|
|||||||
// applied to the TL source node; y.node := WidthWidget(x.node, 16)
|
// applied to the TL source node; y.node := WidthWidget(x.node, 16)
|
||||||
def apply(innerBeatBytes: Int)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
def apply(innerBeatBytes: Int)(x: TLOutwardNode)(implicit p: Parameters, sourceInfo: SourceInfo): TLOutwardNode = {
|
||||||
val widget = LazyModule(new TLWidthWidget(innerBeatBytes))
|
val widget = LazyModule(new TLWidthWidget(innerBeatBytes))
|
||||||
widget.node := x
|
widget.node :=? x
|
||||||
widget.node
|
widget.node
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user