Key_actions.Of_signaltype 'a interface := 'a tinclude Comb with type comb = Hardcaml.Signal.ttype comb = Hardcaml.Signal.tval sexp_of_t : comb t -> Sexplib0.Sexp.tRaise if the widths of t do not match those specified in the interface.
Checks the port widths of the signals in the interface. Raises if they mismatch.
val priority_select :
((comb, comb t) Hardcaml.Comb.with_valid2 list ->
(comb, comb t) Hardcaml.Comb.with_valid2)
Hardcaml.Comb.optional_branching_factorval priority_select_with_default :
((comb, comb t) Hardcaml.Comb.with_valid2 list ->
default:comb t ->
comb t)
Hardcaml.Comb.optional_branching_factorval onehot_select :
((comb, comb t) Hardcaml.Comb.with_valid2 list ->
comb t)
Hardcaml.Comb.optional_branching_factorof_ints_trunc c sets each field to the integer value in c using the declared field bit width.
type bits_t = Hardcaml.Bits.t interfaceCreate a wire for each field. If named is true then wires are given the RTL field name. If from is provided the wire is attached to each given field in from.
Defines a register over values in this interface. enable defaults to vdd.
val cut_through_reg :
?initialize_to:bits_t ->
?reset_to:bits_t ->
?clear:Hardcaml__.Signal__type.t ->
?clear_to:t ->
Hardcaml__.Signal.Reg_spec.t ->
enable:Hardcaml__.Signal__type.t ->
t ->
tDefines a cut through register over values in this interface.
val pipeline :
?attributes:Hardcaml.Rtl_attribute.t list ->
?enable:Hardcaml__.Signal__type.t ->
?initialize_to:bits_t ->
?reset_to:bits_t ->
?clear:Hardcaml__.Signal__type.t ->
?clear_to:t ->
Hardcaml__.Signal.Reg_spec.t ->
n:int ->
t ->
tDefines a register pipeline over values in this interface. enable defaults to vdd and attributes defaults to an empty list.
val inputs : unit -> tinputs t is wires () ~named:true.