Module Hardcaml.Scope
module Path : sig ... end- module Naming_scheme : sig ... end
- Control of name generation in a hierarchy of modules. The position of a module within a hierarchy is determined by a path which leads back to the (single) top most parent module. Signal names may be pre-pended with some represtation of that path. 
- val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
- val create : ?flatten_design:Hardcaml__.Import.bool -> ?naming_scheme:Naming_scheme.t -> ?name:Hardcaml__.Import.string -> Hardcaml__.Import.unit -> t
- create ?flatten_design ?naming_scheme ?name ()creates a new scope. If- flatten_designis- true, then all module instantions are inlined. Names for wires are determiend by- naming_scheme.
- val sub_scope : t -> Hardcaml__.Import.string -> t
- sub_scope t labelreturns a new scope with- labelappended to its hierarchical path
- val path : t -> Path.t
- path treturns the- Path.tassociated with- t. This will determine the prefix used when naming modules that are associated with this scope.
- val circuit_database : t -> Circuit_database.t
- circuit_database treturns the circuit database associated with- t. Note that circuit databases are shared among- sub_scopes.
- val flatten_design : t -> Hardcaml__.Import.bool
- flatten_design treturns true when HardCaml will inline all module instantiations.
- val naming_scheme : t -> Naming_scheme.t
- naming_scheme treturns the- Naming.t that- twas constructed with.
- val naming : ?sep:Hardcaml__.Import.string -> t -> Signal.t -> Hardcaml__.Import.string -> Signal.t
- naming ?sep t signal nameassigns a heirarchical name to- signalbased on the path of- tand- name.- sep, when provided, determines the separator for path components in the heirarchical name.- This is typically used as a partial application to construct a new signal naming operator, .e.g: - let (--) = naming scope in (* ... other code ... *) let named_signal = some_signal -- "data" in (* ... more code ... *)