Always.Smodule Variable : sig ... endThe 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.
and t = private | Assign of {value : Variable.t * Signal.t;internal : assign_internal;}| If of {value : Signal.t * t list * t list;internal : if_internal;}| Switch of {value : Signal.t * match_ list;internal : switch_internal;}val sexp_of_match_ : match_ -> Sexplib0.Sexp.tval sexp_of_t : t -> Sexplib0.Sexp.ttype always := ttype 'a case = 'a * t listtype 'a cases = 'a case listAllows sequences of expressions to be inserted into the code; a syntactic nicety.
val (<--) : Variable.t -> Signal.t -> tassignment
val (<--.) : Variable.t -> int -> tassign an integer constant - width is inferred and value is truncated.
val (<-:.) : Variable.t -> int -> tassign an unsigned integer constant
val (<-+.) : Variable.t -> int -> tassign a signed integer constant
val incr : ?by:int -> Variable.t -> tincrement (defaults to 1)
val decr : ?by:int -> Variable.t -> tdecrement (defaults to 1)
module State_machine : sig ... endval compile : t list -> unitcompile to structural code