Module Hardcaml
- module Always : sig ... end
- Alwaysis a DSL that lets one describe a circuit in the same style as a Verliog- alwaysblock.
module Bits : sig ... endmodule Caller_id : sig ... end- module Circuit : sig ... end
- Creation and manipulation of hardware circuits 
- module Circuit_database : sig ... end
- A database which holds a collection of circuits, indexed by a unique circuit name. The database is used to map occurrences of instantiations within a Hardcaml circuit to an implementation. This can then be used to generate an RTL module hierarchy. Structurally identical circuits may be indentified and the implementation shared. 
module Comb : sig ... end- module Combinational_op : sig ... end
- A custom combinational operation that can be inserted into a simulation. 
- module Combinational_ops_database : sig ... end
- A database which holds a collecton of custom combinational operations for use with - Cyclesimbased simulators.
module Constant : sig ... end- module Cosim : sig ... end
- Icarus Verilog Cosimulation interface 
module Cosim2 : sig ... endmodule Cyclesim : sig ... endmodule Cyclesim_float_ops : sig ... endmodule Edge : sig ... end- module Fifo : sig ... end
- Synchronous FIFO. 
module Fixed : sig ... end- module Graph : sig ... end
- Write circuit as graph. Currently works quite well with aisee3; www.aisee.com 
module Hierarchy : sig ... end- module IntbitsList : sig ... end
- bits described as lists of ints ie - 0;1;1;1;0- width implicit as length of list
module Interface : sig ... endmodule Instantiation : sig ... endmodule Level : sig ... end- module Mangler : sig ... end
- Map a set of names to a set of unique names. 
- module Parameter : sig ... end
- A - Parameter.tis the name and value of a configurable attribute of an instantiated RTL design.
module Parameter_name : sig ... endmodule Ram : sig ... endmodule Recipe : sig ... endmodule Reg_spec : sig ... endmodule Reserved_words : sig ... endmodule Rtl : sig ... end- module Rtl_attribute : sig ... end
- RTL attribute specification. Only relevant to downstream tooling. 
module Scope : sig ... endmodule Side : sig ... endmodule Signal : sig ... end- module Signal_graph : sig ... end
- A - Signal_graph.tis a created from a list of signals, and defined by tracing back to inputs (unassigned wires or constants). Functions are provided for traversing the graph.
module Structural : sig ... endmodule Transform : sig ... end- module Vcd : sig ... end
- VCD (Verilog Change Dump) generation 
- module With_valid : sig ... end
- Uses a - validbit to indicate the validity of a- value. Conceptually similar to an- Option.t.
module Xilinx : sig ... end- val sexp_of_array : ('a -> Base.Sexp.t) -> 'a Base.array -> Base.Sexp.t
- These are exposed for code that does - @@deriving sexp_of, hardcaml.
- val sexp_of_list : ('a -> Base.Sexp.t) -> 'a Base.list -> Base.Sexp.t