class Stream[T <: Data] extends Bundle with IMasterSlave with DataCarrier[T]
- Alphabetic
- By Inheritance
- Stream
- DataCarrier
- IMasterSlave
- Bundle
- ValCallbackRec
- ValCallback
- MultiData
- Data
- InComponent
- OverridedEqualsHashCode
- SpinalTagReady
- Assignable
- NameableByComponent
- Nameable
- OwnableRef
- ContextUser
- ScalaLocated
- GlobalDataUser
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new Stream(payloadType: HardType[T])
Type Members
- abstract type RefOwnerType
- Definition Classes
- OwnableRef
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ##(right: Data): Bits
- Definition Classes
- Data
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def &(cond: Bool): Stream[T]
- def <-/<(that: Stream[T]): Stream[T]
Connect that to this.
Connect that to this. The valid/payload/ready path are cut by an register stage
- def <-<(that: Stream[T]): Stream[T]
Connect that to this.
Connect that to this. The valid/payload path are cut by an register stage
- def </<(that: Stream[T]): Stream[T]
Connect that to this.
Connect that to this. The ready path is cut by an register stage
- def <<(that: Stream[T]): Stream[T]
Connect that to this
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def >->(into: Stream[T]): Stream[T]
Connect this to that.
Connect this to that. The valid/payload path are cut by an register stage
- def >/->(into: Stream[T]): Stream[T]
Connect that to this.
Connect that to this. The valid/payload/ready path are cut by an register stage
- def >/>(that: Stream[T]): Stream[T]
Connect this to that.
Connect this to that. The ready path is cut by an register stage
- def >>(into: Stream[T]): Stream[T]
Connect this to that
- val _spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def addAttribute(attribute: Attribute): Stream.this.type
- Definition Classes
- Data → SpinalTagReady
- def addAttribute(name: String, value: Int): Stream.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String, value: String): Stream.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String): Stream.this.type
- Definition Classes
- SpinalTagReady
- def addFragmentLast(counter: Counter): Stream[Fragment[T]]
Like addFragmentLast(Bool), but instead of manually telling which values go together, let a counter do the job.
Like addFragmentLast(Bool), but instead of manually telling which values go together, let a counter do the job. The counter will increment for each passing element. Last will be set high at the end of each revolution.
outStream = inStream.addFragmentLast(new Counter(5))
Example: - def addFragmentLast(last: Bool): Stream[Fragment[T]]
Convert this stream to a fragmented stream by adding a last bit.
Convert this stream to a fragmented stream by adding a last bit. To view it from another perspective, bundle together successive events as fragments of a larger whole. You can then use enhanced operations on fragmented streams, like reducing of elements.
- def addTag[T <: SpinalTag](spinalTag: T): Stream.this.type
- Definition Classes
- MultiData → SpinalTagReady
- def addTags[T <: SpinalTag](tags: Iterable[T]): Stream.this.type
- Definition Classes
- SpinalTagReady
- def allowDirectionLessIo: Stream.this.type
- Definition Classes
- Data
- def allowOverride: Stream.this.type
- Definition Classes
- Data
- def allowPartialyAssigned: Stream.this.type
- Definition Classes
- Data
- def allowPruning(): Stream.this.type
- Definition Classes
- Data
- def allowSimplifyIt(): Stream.this.type
- Definition Classes
- Data
- def allowUnsetRegToAvoidLatch: Stream.this.type
- Definition Classes
- Data
- def arbitrationFrom[T2 <: Data](that: Stream[T2]): Unit
Drive arbitration signals of this from that
- def as[T <: Data](dataType: HardType[T]): T
- Definition Classes
- Data
- def asBits: Bits
- Definition Classes
- MultiData → Data
- def asData: Data
- Definition Classes
- Data
- def asDataStream: Stream[Data]
- def asFlow: Flow[T]
- def asInOut(): Stream.this.type
- Definition Classes
- MultiData → Data
- def asInput(): Stream.this.type
- Definition Classes
- MultiData → Data
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def asMaster(): Unit
- Definition Classes
- Stream → IMasterSlave
- def asOutput(): Stream.this.type
- Definition Classes
- MultiData → Data
- def asSlave(): Unit
- Definition Classes
- IMasterSlave
- def assignAllByName(that: Bundle): Unit
- Definition Classes
- Bundle
- def assignDontCare(): Stream.this.type
- Definition Classes
- Data
- final def assignFrom(that: AnyRef, target: AnyRef): Unit
- Definition Classes
- Data
- def assignFromBits(bits: Bits, hi: Int, lo: Int): Unit
- Definition Classes
- MultiData → Data
- def assignFromBits(bits: Bits): Unit
- Definition Classes
- MultiData → Data
- def assignFromBits(bits: Bits, offset: Int, bitCount: BitCount): Unit
- Definition Classes
- Data
- def assignSomeByName(that: Bundle): Unit
- Definition Classes
- Bundle
- def ccToggle(pushClock: ClockDomain, popClock: ClockDomain): Stream[T]
- def ccToggleWithoutBuffer(pushClock: ClockDomain, popClock: ClockDomain): Stream[T]
- def clearValidWhen(cond: Bool): Stream[T]
- def clone(): Stream[T]
- Definition Classes
- Stream → Bundle → Data → AnyRef
- def combStage(): Stream[T]
A combinatorial stage doesn't do anything, but it is nice to separate signals for combinatorial transformations.
- def component: Component
- Definition Classes
- ContextUser
- final def compositAssignFrom(that: AnyRef, target: AnyRef, kind: AnyRef): Unit
- Definition Classes
- Assignable
- val compositeAssign: Assignable
- Definition Classes
- Assignable
- def connectFrom(that: Stream[T]): Stream[T]
- def continueWhen(cond: Bool): Stream[T]
Block this when cond is False.
Block this when cond is False. Return the resulting stream
- def copyDirectionOfImpl(that: Data): Stream.this.type
- Definition Classes
- MultiData → Data
- def dirString(): String
- Definition Classes
- Data
- def dontSimplifyIt(): Stream.this.type
- Definition Classes
- Data
- def elements: ArrayBuffer[(String, Data)]
- Definition Classes
- Bundle → MultiData
- def elementsString: String
- Definition Classes
- MultiData
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(obj: Any): Boolean
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
- def existsTag(cond: (SpinalTag) => Boolean): Boolean
- Definition Classes
- SpinalTagReady
- def filterTag(cond: (SpinalTag) => Boolean): Iterable[SpinalTag]
- Definition Classes
- SpinalTagReady
- def find(name: String): Data
- Definition Classes
- MultiData
- def findTag(cond: (SpinalTag) => Boolean): Option[SpinalTag]
- Definition Classes
- SpinalTagReady
- def fire: Bool
Return True when a transaction occurs on the bus (valid && ready)
Return True when a transaction occurs on the bus (valid && ready)
- Definition Classes
- Stream → DataCarrier
- def flatten: Seq[BaseType]
- Definition Classes
- MultiData → Data
- def flattenForeach(body: (BaseType) => Unit): Unit
- Definition Classes
- MultiData → Data
- def flattenLocalName: Seq[String]
- Definition Classes
- MultiData → Data
- def flip(): Stream.this.type
- Definition Classes
- MultiData → Data
- def foreachReflectableNameables(doThat: (Any) => Unit): Unit
- Definition Classes
- Nameable
- def foreachTag(body: (SpinalTag) => Unit): Unit
- Definition Classes
- SpinalTagReady
- def fragmentTransaction(bitsWidth: Int): Stream[Fragment[Bits]]
- def freeRun(): Stream.this.type
- Definition Classes
- Stream → DataCarrier
- def genIf(cond: Boolean): Stream.this.type
- Definition Classes
- Data
- def getBitsWidth: Int
- Definition Classes
- MultiData → Data
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def getComponent(): Component
- Definition Classes
- Data → InComponent → NameableByComponent
- def getComponents(): Seq[Component]
- Definition Classes
- InComponent
- def getDirection: IODirection
- Definition Classes
- Data
- def getDisplayName(): String
- Definition Classes
- Nameable
- def getInstanceCounter: Int
- Definition Classes
- ContextUser
- def getMode: Byte
- Attributes
- protected
- Definition Classes
- Nameable
- def getName(default: String): String
- Definition Classes
- NameableByComponent → Nameable
- def getName(): String
- Definition Classes
- NameableByComponent → Nameable
- def getPartialName(): String
- Definition Classes
- Nameable
- def getRealSource: Any
- Definition Classes
- Assignable
- def getRealSourceNoRec: Any
- Definition Classes
- Data → Assignable
- def getRefOwnersChain(): List[Any]
- Definition Classes
- OwnableRef
- def getRootParent: Data
- Definition Classes
- Data
- def getScalaLocationLong: String
- Definition Classes
- ScalaLocated
- def getScalaLocationShort: String
- Definition Classes
- ScalaLocated
- def getScalaTrace(): Throwable
- Definition Classes
- ScalaLocated
- def getTag[T <: SpinalTag](clazz: Class[T]): Option[T]
- Definition Classes
- SpinalTagReady
- def getTags(): LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def getTypeString: String
- Definition Classes
- Stream → Bundle
- def getZero: Stream.this.type
- Definition Classes
- MultiData → Data
- val globalData: GlobalData
- Definition Classes
- GlobalDataUser
- def halfPipe(): Stream[T]
cut all path, but divide the bandwidth by 2, 1 cycle latency
- def haltWhen(cond: Bool): Stream[T]
Stop transactions on this when cond is True.
Stop transactions on this when cond is True. Return the resulting stream
- var hardtype: HardType[_]
- Definition Classes
- Bundle
- def hasTag[T <: SpinalTag](clazz: Class[T]): Boolean
- Definition Classes
- SpinalTagReady
- def hasTag(spinalTag: SpinalTag): Boolean
- Definition Classes
- SpinalTagReady
- def hashCode(): Int
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
- final def initFrom(that: AnyRef, target: AnyRef): Unit
- Definition Classes
- Data
- def instanceAttributes(language: Language): Iterable[Attribute]
- Definition Classes
- SpinalTagReady
- def instanceAttributes: Iterable[Attribute]
- Definition Classes
- SpinalTagReady
- def isAnalog: Boolean
- Definition Classes
- Data
- def isComb: Boolean
- Definition Classes
- Data
- def isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
- def isDirectionLess: Boolean
- Definition Classes
- Data
- def isEmptyOfTag: Boolean
- Definition Classes
- SpinalTagReady
- def isFree: Bool
Return True when the bus is ready, but no data is present
- def isInOut: Boolean
- Definition Classes
- Data
- def isInput: Boolean
- Definition Classes
- Data
- def isInputOrInOut: Boolean
- Definition Classes
- Data
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isMasterInterface: Boolean
- Definition Classes
- IMasterSlave
- def isNamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
- def isNew: Bool
Return True when a transaction has appeared (first cycle)
- def isOutput: Boolean
- Definition Classes
- Data
- def isOutputOrInOut: Boolean
- Definition Classes
- Data
- def isPriorityApplicable(namePriority: Byte): Boolean
- Definition Classes
- Nameable
- def isReg: Boolean
- Definition Classes
- Data
- def isStall: Bool
Return True when a transaction is present on the bus but the ready signal is low
- def isUnnamed: Boolean
- Definition Classes
- Nameable
- def keep(): Stream.this.type
- Definition Classes
- Data
- def m2sPipe(collapsBubble: Boolean = true, crossClockData: Boolean = false, flush: Bool = null, holdPayload: Boolean = false): Stream[T]
- val name: String
- Attributes
- protected
- Definition Classes
- Nameable
- val nameableRef: Nameable
- Attributes
- protected
- Definition Classes
- Nameable
- Annotations
- @DontName()
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noBackendCombMerge: Stream.this.type
- Definition Classes
- Data
- def noCombLoopCheck: Stream.this.type
- Definition Classes
- Data
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def onEachAttributes(doIt: (Attribute) => Unit): Unit
- Definition Classes
- SpinalTagReady
- def overrideLocalName(name: String): Stream.this.type
- Definition Classes
- Nameable
- val parent: Data
- Definition Classes
- Data
- val parentScope: ScopeStatement
- Definition Classes
- ContextUser
- val payload: T
- Definition Classes
- Stream → DataCarrier
- val payloadType: HardType[T]
- def pipelined(m2s: Boolean = false, s2m: Boolean = false, halfRate: Boolean = false): Stream[T]
- def pull(): Stream.this.type
- Definition Classes
- Data
- def purify(): Stream.this.type
- Definition Classes
- Data
- def queue(size: Int, pushClock: ClockDomain, popClock: ClockDomain): Stream[T]
Connect this to an clock crossing fifo and return its pop stream
- def queue(size: Int): Stream[T]
Connect this to a fifo and return its pop stream
- def queueLowLatency(size: Int, latency: Int = 0): Stream[T]
Connect this to a zero latency fifo and return its pop stream
- def queueWithAvailability(size: Int): (Stream[T], UInt)
- def queueWithOccupancy(size: Int): (Stream[T], UInt)
Connect this to a fifo and return its pop stream and its occupancy
- def queueWithPushOccupancy(size: Int, pushClock: ClockDomain, popClock: ClockDomain): (Stream[T], UInt)
Connect this to a cross clock domain fifo and return its pop stream and its push side occupancy
- def randBoot(u: Unit): Stream.this.type
- Definition Classes
- Data
- val ready: Bool
- val refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
- def reflectNames(): Unit
- Definition Classes
- Nameable
- def removeAssignments(): Stream.this.type
- Definition Classes
- Data
- def removeTag(spinalTag: SpinalTag): Stream.this.type
- Definition Classes
- SpinalTagReady
- def removeTags(tags: Iterable[SpinalTag]): Stream.this.type
- Definition Classes
- SpinalTagReady
- def repeat(times: Int): (Stream[T], UInt)
Connect this to a new stream that only advances every n elements, thus repeating the input several times.
Connect this to a new stream that only advances every n elements, thus repeating the input several times.
- returns
A tuple with the resulting stream that duplicates the items and the counter, indicating how many times the current element has been repeated.
- def resized: Stream.this.type
- Definition Classes
- Data
- def s2mPipe(stagesCount: Int): Stream[T]
- def s2mPipe(): Stream[T]
- def setAsAnalog(): Stream.this.type
- Definition Classes
- Data
- def setAsComb(): Stream.this.type
- Definition Classes
- MultiData → Data
- def setAsDirectionLess(): Stream.this.type
- Definition Classes
- MultiData → Data
- def setAsReg(): Stream.this.type
- Definition Classes
- MultiData → Data
- def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): Stream.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): Stream.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String): Stream.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, namePriority: Byte): Stream.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, weak: Boolean): Stream.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable): Stream.this.type
- Definition Classes
- Nameable
- def setName(name: String, namePriority: Byte): Stream.this.type
- Definition Classes
- Nameable
- def setName(name: String, weak: Boolean): Stream.this.type
- Definition Classes
- Nameable
- def setName(name: String): Stream.this.type
- Definition Classes
- Nameable
- def setNameAsWeak(): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, namePriority: Byte): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, weak: Boolean): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, namePriority: Byte): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, weak: Boolean): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String): Stream.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String): Stream.this.type
- Definition Classes
- Nameable
- def setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
- def setScalaLocated(source: ScalaLocated): Stream.this.type
- Definition Classes
- ScalaLocated
- def setWeakName(name: String): Stream.this.type
- Definition Classes
- Nameable
- def slowdown(factor: Int): Stream[Vec[T]]
Connect this to a new stream whose payload is n times as wide, but that only fires every n cycles.
Connect this to a new stream whose payload is n times as wide, but that only fires every n cycles. It introduces 0 to factor-1 cycles of latency. Mapping a stream into memory and mapping a slowed down stream into memory should yield the same result, thus the elements of the input will be written from high bits to low bits.
- def spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def stage(): Stream[T]
Connect this to a valid/payload register stage and return its output stream
- def swapPayload[T2 <: Data](that: HardType[T2]): Stream[T2]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def takeWhen(cond: Bool): Stream[T]
Drop transaction of this when cond is False.
Drop transaction of this when cond is False. Return the resulting stream
- def throwWhen(cond: Bool): Stream[T]
Drop transactions of this when cond is True.
Drop transactions of this when cond is True. Return the resulting stream
- def toEvent(): Event
Ignore the payload
- def toFlow: Flow[T]
- returns
Return a flow drived by this stream. Ready of ths stream is always high
- def toFlowFire: Flow[T]
- def toIo(): Stream.this.type
- Definition Classes
- Data
- def toString(): String
- Definition Classes
- Bundle → Nameable → AnyRef → Any
- def translateFrom[T2 <: Data](that: Stream[T2])(dataAssignment: (T, payload.type) => Unit): Stream[T]
- def translateInto[T2 <: Data](into: Stream[T2])(dataAssignment: (T2, T) => Unit): Stream[T2]
- def translateWith[T2 <: Data](that: T2): Stream[T2]
Replace this stream's payload with another one
- def transmuteWith[T2 <: Data](that: HardType[T2]): Stream[T2]
Change the payload's content type.
Change the payload's content type. The new type must have the same bit length as the current one.
- def unsetName(): Stream.this.type
- Definition Classes
- Nameable
- def valCallback[T](ref: T, name: String): T
- Definition Classes
- ValCallbackRec → ValCallback
- def valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
- Definition Classes
- ValCallbackRec
- def valCallbackRec(ref: Any, name: String): Unit
- Definition Classes
- Bundle → ValCallbackRec
- val valid: Bool
- Definition Classes
- Stream → DataCarrier
- def validPipe(): Stream[T]
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def ~[T2 <: Data](that: T2): Stream[T2]
- def ~~[T2 <: Data](translate: (T) => T2): Stream[T2]