Module Hardcaml.Interface

Interfaces specify the widths and names of a group of signals, and some functions for manipulating the signals as a group.

They are generally used with ppx_deriving_hardcaml as follows

type t = { ... } [@@deriving sexp_of, hardcaml]

The sexp_of is required, and must appear before hardcaml. This syntax generates a call to Interface.Make, which therefore does not need to be explicitly called.

module Ast : Ast
module Empty : Empty
module type S_with_ast = sig ... end
module Create_fn : functor (I : S) -> functor (O : S) -> sig ... end

Type of functions representing the implementation of a circuit from an input to output interface.

module Make : functor (X : Pre) -> S with type 'a t := 'a X.t
module Make_enums : functor (Enum : Hardcaml__.Interface_intf.Enum) -> S_enums with module Enum := Enum

Constructs a hardcaml interface which represents hardware for the given Enum as an absstract Interface.