Rocket extended arbiters. Utilizing the Chisel2 compatability layer.
A arbiter support bursts of variable length.
class HellaPeekingArbiter[T <: Data](
typ: T, arbN: Int,
canUnlock: T => Bool,
needsLock: Option[T => Bool] = None,
rr: Boolean = false)
extends HellaLockingArbiter(typ, arbN, rr)
- I/O, type and Paramter
name | type | direction | description |
---|---|---|---|
T | Data | type | payload type |
typ | T | param | type parameter |
arbN | Int | param | number of ports |
canUnlock | T => Bool | param | function to detect tail |
needsLock | Option[T => Bool] = None | param | function to detect burst |
rr | Boolean = false | param | whether to use round-robin (static by default) |
in | Vec[DecoupledIO[T]] | I | arbiter input ports |
out | DecoupledIO[T] | O | arbiter output port |
A arbiter support bursts of constant length.
class HellaCountingArbiter[T <: Data](
typ: T, arbN: Int, count: Int,
val needsLock: Option[T => Bool] = None,
rr: Boolean = false)
extends HellaLockingArbiter(typ, arbN, rr)
- I/O, type and Paramter
name | type | direction | description |
---|---|---|---|
T | Data | type | payload type |
typ | T | param | type parameter |
arbN | Int | param | number of ports |
count | Int | param | number of beat in a burst |
needsLock | Option[T => Bool] = None | param | function to detect burst |
rr | Boolean = false | param | whether to use round-robin (static by default) |
in | Vec[DecoupledIO[T]] | I | arbiter input ports |
out | DecoupledIO[T] | O | arbiter output port |
Last updated: 09/07/2017
CC BY-NC-SA 4.0, © (2017) Wei Song
Apache 2.0, © (2016-2017) SiFive, Inc
BSD, © (2012-2014, 2016) The Regents of the University of California (Regents)