Module Always.Variable

The type of variables in guarded assignments. Variables may be asychronous wires, or synchronous regs. The current value of the variable may be accessed through the value field below.

type internal
type t = private {
value : Hardcaml.Signal.t;
internal : internal;
}
val internal : t -> internal
val value : t -> Hardcaml.Signal.t
module Fields : sig ... end
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val wire : default:Hardcaml.Signal.t -> t

create a wire

val reg : Hardcaml.Reg_spec.t -> enable:Hardcaml.Signal.t -> width:Hardcaml__.Import.int -> t

create a register

val pipeline : depth:Hardcaml__.Import.int -> Hardcaml.Reg_spec.t -> enable:Hardcaml.Signal.t -> width:Hardcaml__.Import.int -> t

create a pipeline of registers