12345678910111213141516171819202122232425262728293031323334353637383940(** A fixed-point number, i.e. a number between [(- 2**(width-1) / 2**fractional_width]
and [(2**(width-1) - 1) / 2**fractional_width] that is evenly divisible by
[2**(-fractional_width)]. It is represented as an integer between [-2**(width-1)] and
[2**(width-1)]. *)openBaseopenHardcamlmoduletypeSpec=sig(** overall width *)valwidth:intvalfractional_width:intendmoduletypeFixnum=sigmoduletypeSpec=SpecmoduleMake(Spec:Spec):sigtypetvalwidth:intvalof_float:float->tvalto_float:t->float(** [const] is used with [Bits.constb] and [Signal.constb]. *)valconstb:t->stringvalof_bits:Bits.t->tvalto_bits:t->Bits.tvalpow2:int->t(** [to_scaled_int t] = [t * (2**fractional_width)]. *)valto_scaled_int:t->intvalbits_constf:float->Bits.tvalsignal_mul:Signal.t->Signal.t->Signal.tvalsignal_constf:float->Signal.tendend