Packages

c

spinal.lib

StreamArbiterFactory

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()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. var arbitrationPolicy: ArbitrationPolicy
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def assumeOhInput: StreamArbiterFactory.this.type

    Configure the builder to assume that only one input is valid at any given time.

    Configure the builder to assume that only one input is valid at any given time. User is responsible to ensure this condition is met.

  7. def build[T <: Data](dataType: HardType[T], portCount: Int): StreamArbiter[T]
  8. def buildOn[T <: Data](first: Stream[T], others: Stream[T]*): StreamArbiter[T]
  9. def buildOn[T <: Data](inputs: Seq[Stream[T]]): StreamArbiter[T]
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  13. def fragmentLock: StreamArbiterFactory.this.type

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

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

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

  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. def lambdaLock[T <: Data](unlock: (Stream[T]) ⇒ Bool): StreamArbiterFactory.this.type

    Configure the builder so the locked selection is released until the output meets the given criteria.

  18. var lockPolicy: LockPolicy
  19. def lowerFirst: StreamArbiterFactory.this.type

    Configure the builder so lower ports have priority over higher ports

  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. def noLock: StreamArbiterFactory.this.type

    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
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  24. def on[T <: Data](inputs: Seq[Stream[T]]): Stream[T]

    Build the arbitered Stream from a Seq of Stream

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

    Build the arbitered Stream from a variable number Stream as arguments

  26. def roundRobin: StreamArbiterFactory.this.type

    Configure the builder for fair round-robin arbitration

  27. def sequentialOrder: StreamArbiterFactory.this.type

    Configure the builder to retrieve transaction in a sequential order.

    Configure the builder 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

    Configure the builder so the port selection could change based on user-defined logic.

  29. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  30. def toString(): String
    Definition Classes
    AnyRef → Any
  31. def transactionLock: StreamArbiterFactory.this.type

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

  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  34. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped