Chisel

Arbiter

class Arbiter[T <: Data] extends LockingArbiter[T]

Hardware module that is used to sequence n producers into 1 consumer. Priority is given to lower producer

Example usage: val arb = Module(new Arbiter(2, UInt())) arb.io.in(0) <> producer0.io.out arb.io.in(1) <> producer1.io.out consumer.io.in <> arb.io.out

Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Arbiter
  2. LockingArbiter
  3. LockingArbiterLike
  4. Module
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Arbiter(gen: T, n: Int)

Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def <>(src: Module): Unit

    Definition Classes
    Module
  5. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  6. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  7. def addClock(clock: Clock): Unit

    Definition Classes
    Module
  8. def addClockAndReset: Unit

    Definition Classes
    Module
  9. def addDefaultReset: Unit

    Definition Classes
    Module
  10. def addResetPin(reset: Bool): Bool

    Definition Classes
    Module
  11. def apply(name: String): Data

    Definition Classes
    Module
  12. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  13. def assert(cond: Bool, message: String): Unit

    Add an assertion in the code generated by a backend.

    Add an assertion in the code generated by a backend.

    Definition Classes
    Module
  14. val asserts: ArrayBuffer[Assert]

    Definition Classes
    Module
  15. def bfs(visit: (Node) ⇒ Unit): Unit

    Definition Classes
    Module
  16. val bindings: ArrayBuffer[Binding]

    Definition Classes
    Module
  17. val children: ArrayBuffer[Module]

    Definition Classes
    Module
  18. var choose: UInt

    Definition Classes
    LockingArbiter
  19. val chosen: UInt

    Definition Classes
    LockingArbiterLike
  20. var clock: Clock

    Definition Classes
    Module
  21. val clocks: ArrayBuffer[Clock]

    Definition Classes
    Module
  22. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def collectNodes(c: Module): Unit

    Definition Classes
    Module
  24. def counter(xs: Node*): Unit

    Definition Classes
    Module
  25. def counter(x: Node): Unit

    Definition Classes
    Module
  26. def debug(x: Node): Unit

    Insures a backend does not remove a signal because it is unreachable from the outputs.

    Insures a backend does not remove a signal because it is unreachable from the outputs.

    Definition Classes
    Module
  27. val debugs: LinkedHashSet[Node]

    Definition Classes
    Module
  28. var defaultResetPin: Bool

    Definition Classes
    Module
  29. var defaultWidth: Int

    Definition Classes
    Module
  30. def dfs(visit: (Node) ⇒ Unit): Unit

    Definition Classes
    Module
  31. def elaborate(fake: Int = 0): Unit

    Definition Classes
    Module
  32. def emitDec(b: Backend): String

    Definition Classes
    Module
  33. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  34. def equals(that: Any): Boolean

    Definition Classes
    Module → AnyRef → Any
  35. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  36. def findBinding(m: Node): Binding

    Definition Classes
    Module
  37. def findCombLoop(): Unit

    Definition Classes
    Module
  38. def findConsumers(): Unit

    Definition Classes
    Module
  39. def findGraphDims(): (Int, Int, Int)

    Definition Classes
    Module
  40. def findOrdering(): Unit

    Definition Classes
    Module
  41. def findRoots(): ArrayBuffer[Node]

    Since we are relying on the out-degree of nodes (i.

    Since we are relying on the out-degree of nodes (i.e. consumers.length), this method should only be called after the forward edges have been constructed.

    Definition Classes
    Module
  42. def forceMatchingWidths: Unit

    Definition Classes
    Module
  43. def genAllMuxes: Unit

    Definition Classes
    Module
  44. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  45. def getClassValNames(c: Class[_]): ArrayBuffer[String]

    Definition Classes
    Module
  46. def getPathName(separator: String = "_"): String

    Definition Classes
    Module
  47. def getPathName: String

    Returns the absolute path to a component instance from toplevel.

    Returns the absolute path to a component instance from toplevel.

    Definition Classes
    Module
  48. def getValNames: ArrayBuffer[String]

    Definition Classes
    Module
  49. def grant: Seq[Bool]

    Definition Classes
    LockingArbiterLockingArbiterLike
  50. def hasClock: Boolean

    Definition Classes
    Module
  51. var hasExplicitClock: Boolean

    Definition Classes
    Module
  52. var hasExplicitReset: Boolean

    Definition Classes
    Module
  53. def hasReset: Boolean

    Definition Classes
    Module
  54. def hasWhenCond: Boolean

    Definition Classes
    Module
  55. val hashCode: Int

    Definition Classes
    Module → AnyRef → Any
  56. def inferAll(): Int

    Definition Classes
    Module
  57. def initializeBFS: scala.collection.mutable.Queue[Node]

    Definition Classes
    Module
  58. def initializeDFS: Stack[Node]

    Definition Classes
    Module
  59. val io: ArbiterIO[T]

    Definition Classes
    LockingArbiterLikeModule
  60. var ioVal: Data

    Definition Classes
    Module
  61. def isInput(node: Node): Boolean

    Definition Classes
    Module
  62. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  63. object isValName

    Definition Classes
    Module
  64. var isWalked: HashSet[Node]

    Definition Classes
    Module
  65. var isWalking: HashSet[Node]

    Definition Classes
    Module
  66. def keepInputs(nodes: Seq[Node]): Seq[Node]

    Definition Classes
    Module
  67. var level: Int

    A backend(Backend.

    A backend(Backend.scala) might generate multiple module source code from one Module, based on the parameters to instanciate the component instance. Since we do not want to blindly generate one module per instance the backend will keep a cache of each module's implementation source code and discard textual duplicates. By walking the nodes from level zero (leafs) to level N (root), we are guarenteed to generate all Module/modules source text before their first instantiation.

    Definition Classes
    Module
  68. val lockIdx: UInt

    Definition Classes
    LockingArbiterLike
  69. val locked: Bool

    Definition Classes
    LockingArbiterLike
  70. def lowerNodes(needsLowering: Set[String]): Unit

    Definition Classes
    Module
  71. def markComponent(): Unit

    Definition Classes
    Module
  72. val mods: ArrayBuffer[Node]

    Definition Classes
    Module
  73. var moduleName: String

    Name of the module this component generates (defaults to class name).

    Name of the module this component generates (defaults to class name).

    Definition Classes
    Module
  74. var name: String

    Name of the instance.

    Name of the instance.

    Definition Classes
    Module
  75. var named: Boolean

    Definition Classes
    Module
  76. val names: HashMap[String, Node]

    Definition Classes
    Module
  77. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  78. def nextIndex: Int

    Definition Classes
    Module
  79. val nexts: scala.collection.mutable.Queue[Node]

    Definition Classes
    Module
  80. var nindex: Int

    Definition Classes
    Module
  81. val nodes: ArrayBuffer[Node]

    Definition Classes
    Module
  82. final def notify(): Unit

    Definition Classes
    AnyRef
  83. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  84. val omods: ArrayBuffer[Node]

    Definition Classes
    Module
  85. def ownIo(): Unit

    Definition Classes
    Module
  86. var pName: String

    Definition Classes
    Module
  87. def params: Parameters

    Definition Classes
    Module
  88. var parent: Module

    Definition Classes
    Module
  89. var pathParent: Module

    Definition Classes
    Module
  90. def postMarkNet(fake: Int = 0): Unit

    Definition Classes
    Module
  91. def printf(message: String, args: Node*): Unit

    Definition Classes
    Module
  92. val printfs: ArrayBuffer[Printf]

    Definition Classes
    Module
  93. val regs: ArrayBuffer[Reg]

    Definition Classes
    Module
  94. def removeInputs(nodes: Seq[Node]): Seq[Node]

    Definition Classes
    Module
  95. def removeTypeNodes(): Int

    All classes inherited from Data are used to add type information and do not represent logic itself.

    All classes inherited from Data are used to add type information and do not represent logic itself.

    Definition Classes
    Module
  96. def reset: Bool

    Definition Classes
    Module
  97. def reset_=(): Unit

    Definition Classes
    Module
  98. def reset_=(r: Bool): Unit

    Definition Classes
    Module
  99. val resets: HashMap[Bool, Bool]

    Definition Classes
    Module
  100. val signals: LinkedHashSet[Node]

    Definition Classes
    Module
  101. def stripComponent(s: String): String

    Definition Classes
    Module
  102. val switchKeys: Stack[Bits]

    Definition Classes
    Module
  103. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  104. def toString(): String

    Definition Classes
    Module → AnyRef → Any
  105. def traceNodes(): Unit

    Definition Classes
    Module
  106. def traceableNodes: Array[Node]

    Definition Classes
    Module
  107. var traversal: Int

    Definition Classes
    Module
  108. var verilog_parameters: String

    Definition Classes
    Module
  109. def visitNodes(roots: Array[Node]): Unit

    Definition Classes
    Module
  110. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  111. final def wait(arg0: Long, arg1: Int): Unit

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  113. def whenCond: Bool

    Definition Classes
    Module
  114. val whenConds: Stack[Bool]

    Definition Classes
    Module
  115. def wires: Array[(String, Bits)]

    Definition Classes
    Module
  116. var wiresCache: Array[(String, Bits)]

    Definition Classes
    Module

Inherited from LockingArbiter[T]

Inherited from LockingArbiterLike[T]

Inherited from Module

Inherited from AnyRef

Inherited from Any

Ungrouped