123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051(** Clock, reset and clear specification for registers. *)open!Core0moduletypeSignal=sigtypet[@@derivingsexp_of]valis_empty:t->boolendmoduletypeS=sigtypet[@@derivingsexp_of]typesignal[@@derivingsexp_of](** Create a [Reg_spec.t]. You must at a minimum provide a clock. [clear] and [reset]
are optional. [clock_edge] defaults to [Rising] and [reset_level] defaults to
[High]. *)valcreate:?clock_edge:Edge.t->?reset:signal->?reset_level:Level.t->?clear:signal->unit->clock:signal->t(** Override one or more fields of an existing [Reg_spec.t]. *)valoverride:?clock:signal->?clock_edge:Edge.t->?reset:signal->?reset_level:Level.t->?clear:signal->t->tvalclock:t->signalvalclock_edge:t->Edge.tvalreset:t->signaloptionvalreset_exn:t->signalvalreset_level:t->Level.tvalclear:t->signaloptionvalclear_exn:t->signalendmoduletypeReg_spec=sigmoduletypeSignal=SignalmoduletypeS=SmoduleMake(Signal:Signal):Swithtypesignal:=Signal.tend