Hardcaml.StructuralSourceHardware generation API that includes tri-states - used for toplevel module generation.
The API is very similar to Signal except for instantiation which is done differently.
type signal = | Empty| Module_input of id * name * width| Module_output of id * name * width * signal ref| Module_tristate of id * name * width * signal list ref| Internal_wire of id * width * signal ref| Internal_triwire of id * width * signal list 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_opstart circuit
complete circuit, add to database
the comb API must be (rebuilt) between each circuit
progressively more structural APIs
includes mux, concat, select
includes consts