Skip to content
This repository has been archived by the owner on Jun 24, 2021. It is now read-only.

Latest commit

 

History

History
68 lines (56 loc) · 3.37 KB

Arbiters.md

File metadata and controls

68 lines (56 loc) · 3.37 KB

Rocket extended arbiters. Utilizing the Chisel2 compatability layer.


class HellaPeekingArbiter

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

class HellaCountingArbiter

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)