Module Hardcaml__.Structural
type name= stringtype id= inttype width= inttype signal=|Empty|Module_input of id * name * width|Module_output of id * name * width * signal Stdlib.ref|Module_tristate of id * name * width * signal list Stdlib.ref|Internal_wire of id * width * signal Stdlib.ref|Internal_triwire of id * width * signal list Stdlib.ref|Instantiation_output of id * namereference to instantiation
|Instantiation_tristate of id * name|Instantiation of id * name * (string * generic) list * (string * signal) list * (string * signal) list * (string * signal) list|Rtl_op of id * width * rtl_opand rtl_op=|Constant of string|Select of int * int * signal|Concat of signal list|Mux of signal * signal listand generic=|GInt of int|GFloat of float|GString of string|GUnquoted of stringtype circuit={name : string;id : id;mutable signals : signal list;}
exceptionInvalid_submodule_input_connection of string * string * signalexceptionInvalid_submodule_output_connection of string * string * signalexceptionInvalid_submodule_tristate_connection of string * string * signalexceptionWire_already_assigned of signalexceptionInvalid_assignment_target of signalexceptionCant_assign_wire_with of signalexceptionCant_assign_triwire_with of signalexceptionInvalid_name of signalexceptionInvalid_width of signalexceptionInvalid_id of signalexceptionInvalid_constant of stringexceptionRtl_op_arg_not_readable of signalexceptionToo_few_mux_data_elementsexceptionToo_many_mux_data_elements of intexceptionAll_mux_data_elements_must_be_same_width of int listexceptionNo_elements_to_concatexceptionSelect_index_error of int * intexceptionBinop_arg_widths_different of stringexceptionNo_circuitexceptionCircuit_already_started
val find_circuit : string -> circuitfind circuit in database
val width : signal -> intval mk_input : string -> int -> signalval mk_output : string -> int -> signalval mk_tristate : string -> int -> signalval mk_wire : int -> signalval mk_triwire : int -> signalval (<==) : signal -> signal -> unitval is_connected : signal -> boolval inst : ?g:(string * generic) list -> ?i:(string * signal) list -> ?o:(string * signal) list -> ?t:(string * signal) list -> string -> unitval (==>) : 'a -> 'b -> 'a * 'bval of_bit_string : string -> signalval z : int -> signalval mux : signal -> signal list -> signalval concat_msb : signal list -> signalval select : signal -> int -> int -> signal
module type Config = Hardcaml__.Structural_intf.Configmodule Base : functor (C : Config) -> Hardcaml.Comb.Primitives with type t = signalthe comb API must be (rebuilt) between each circuit
module Base0 : Hardcaml.Comb.Primitives with type t = signalprogressively more structural APIs
module Base1 : Hardcaml.Comb.Primitives with type t = signalincludes mux, concat, select
module Base2 : Hardcaml.Comb.Primitives with type t = signalincludes consts
val write_verilog : (string -> unit) -> circuit -> unit
module Lib : sig ... end