Class

spinal.lib

StreamArbiterFactory

Related Doc: package lib

Permalink

class StreamArbiterFactory extends AnyRef

Build a StreamArbiter from a list of Stream.

example:

val streamA, streamB, streamC = Stream(Bits(8 bits))
val arbiteredABC = StreamArbiterFactory.roundRobin.onArgs(streamA, streamB, streamC)
val streamD, streamE, streamF = Stream(Bits(8 bits))
val arbiteredDEF = StreamArbiterFactory.lowerFirst.noLock.onArgs(streamD, streamE, streamF)
See also

Stream documentation

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. StreamArbiterFactory
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new StreamArbiterFactory()

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. var arbitrationLogic: (StreamArbiter[_ <: Data]) ⇒ Area

    Permalink
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def assumeOhInput: StreamArbiterFactory.this.type

    Permalink
  7. def build[T <: Data](dataType: HardType[T], portCount: Int): StreamArbiter[T]

    Permalink
  8. def buildOn[T <: Data](first: Stream[T], others: Stream[T]*): StreamArbiter[T]

    Permalink
  9. def buildOn[T <: Data](inputs: Seq[Stream[T]]): StreamArbiter[T]

    Permalink
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  11. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  13. def fragmentLock: StreamArbiterFactory.this.type

    Permalink

    Configure the builder so The port selection is locked until the transaction on the selected port is consumed.

  14. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  15. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  16. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  17. def lambdaLock[T <: Data](unlock: (Stream[T]) ⇒ Bool): StreamArbiterFactory.this.type

    Permalink
  18. var lockLogic: (StreamArbiter[_ <: Data]) ⇒ Area

    Permalink
  19. def lowerFirst: StreamArbiterFactory.this.type

    Permalink

    Configure the builder so lower ports have priority over higher ports

  20. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  21. def noLock: StreamArbiterFactory.this.type

    Permalink

    Configure the builder so the port selection could change every cycle, even if the transaction on the selected port is not consumed.

  22. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  23. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  24. def on[T <: Data](inputs: Seq[Stream[T]]): Stream[T]

    Permalink

    Build the arbitered Stream from a Seq of Stream

  25. def onArgs[T <: Data](inputs: Stream[T]*): Stream[T]

    Permalink

    Build the arbitered Stream from a variable number Stream as arguments

  26. def roundRobin: StreamArbiterFactory.this.type

    Permalink

    Configure the builder for fair round robin arbitration

  27. def sequentialOrder: StreamArbiterFactory.this.type

    Permalink

    Configure the build to retrieve transaction in a sequential order.

    Configure the build to retrieve transaction in a sequential order.

    First transaction should come from port zero, then from port one, ...

  28. def setLock(body: (StreamArbiter[_ <: Data]) ⇒ Area): StreamArbiterFactory.this.type

    Permalink
  29. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  30. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  31. def transactionLock: StreamArbiterFactory.this.type

    Permalink

    Configure the builder so the port selection is locked until the selected port finish is burst (last=True).

    Configure the builder so the port selection is locked until the selected port finish is burst (last=True).

    Could be used to arbitrate Stream[Flow[T]].

  32. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from AnyRef

Inherited from Any

Ungrouped