Module Make_one_hot.Make_comb

Parameters

module Comb : Comb.S

Signature

type comb = Comb.t
type t = comb t
val sexp_of_t : t -> Sexplib0.Sexp.t
val sexp_of_t : comb t -> Sexplib0.Sexp.t
val assert_widths : comb t -> Base.unit

Raise if the widths of t do not match those specified in the interface.

val of_int : Base.int -> comb t

Each field is set to the constant integer value provided.

val const : Base.int -> comb t
val pack : ?rev:Base.bool -> comb t -> comb

Pack interface into a vector.

val unpack : ?rev:Base.bool -> comb -> comb t

Unpack interface from a vector.

val mux : comb -> comb t Base.list -> comb t

Multiplex a list of interfaces.

val mux2 : comb -> comb t -> comb t -> comb t
val concat : comb t Base.list -> comb t

Concatenate a list of interfaces.

val priority_select : ( ( comb, comb t ) Comb.with_valid2 Base.list -> ( comb, comb t ) Comb.with_valid2 ) Comb.optional_branching_factor
val priority_select_with_default : ( ( comb, comb t ) Comb.with_valid2 Base.list -> default:comb t -> comb t ) Comb.optional_branching_factor
val onehot_select : ( ( comb, comb t ) Comb.with_valid2 Base.list -> comb t ) Comb.optional_branching_factor
val widths : t -> Base.int t

Actual bit widths of each field.

val of_ints : Base.int t -> t

consts c sets each field to the integer value in c using the declared field bit width.

val consts : Base.int t -> t