Module Hardcaml_circuits.Arbiters

Arbiter circuits. Given a set of requesters the arbiter chooses one to succeed.

module Index : sig ... end

Priority is specified as either a offset to start searching from, or as a special mask.

val rotate_by_index : (module Hardcaml.Comb.S with type t = 'a) -> index:'a -> data:'a Hardcaml.With_valid.t Base.list -> 'a Hardcaml.With_valid.t Base.list

Rotate element index in data to 0 using a log_shift circuit.

val select_next_with_clz : (module Hardcaml.Comb.S with type t = 'a) -> index:'a Index.t -> 'a -> 'a

Find the 1st bit set in the input vector greater than index, but wrapping at the top back to bit 0 and on to index-1.

module Round_robin_with_priority : sig ... end

Round-robin arbiters with priority.