12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061open!ImportmoduletypeBits=sigtypet[@@derivingcompare,sexp_of]includeComb.Swithtypet:=tincludeComparator.Swithtypet:=tmoduleUnsafe:sigvaldata:t->bytesend(** [Mutable] is a mutable bits used by [Cyclesim] for efficiency. *)moduleMutable:sigtypebitstypetvalempty:tvalwidth:t->intvalto_string:t->string(** Create a [t] of given width, initially set to [0]. *)valcreate:int->tvalcopy:src:t->dst:t->unitvalcopy_bits:src:bits->dst:t->unit(** A [Bits.Mutable.t] can be accessed as an array of 64 bit words. *)valnum_words:t->intvalget_word:t->int->int64valset_word:t->int->int64->unitvalto_bits:t->bitsvalof_constant:Constant.t->tvalto_constant:t->Constant.tvalvdd:tvalgnd:tvalwire:int->tval(--):t->string->tval(&:):t->t->t->unitval(|:):t->t->t->unitval(^:):t->t->t->unitval(~:):t->t->unitval(+:):t->t->t->unitval(-:):t->t->t->unitval(==:):t->t->t->unitval(<>:):t->t->t->unitval(<:):t->t->t->unitvalmux:t->t->tlist->unitvalconcat:t->tlist->unitvalselect:t->t->int->int->unitval(*:):t->t->t->unitval(*+):t->t->t->unitmoduleComb:Comb.Swithtypet=tendwithtypebits:=t(** Pretty printer. *)valpp:Formatter.t->t->unitend