**M**odule **Lib**rary -- A collection of various functions for
working with Verilog modules.

- Scopestack
- Scopestacks deal with namespaces in SystemVerilog by tracking the bindings of names in scopes. They provide a straightforward, correct way to look up identifiers.
- Filtering-by-name
- Functions for filtering lists of parsed objects by their names.
- Vl-namefactory
- Produces fresh names for a module.
- Substitution
- Substitution into Verilog constructs
- Allexprs
- Functions for gathering all the expressions used throughout some module item.
- Hid-tools
- Functions for recognizing and following well-formed hierarchical identifiers, scoped identifiers, and indexing expressions.
- Vl-consteval
- An evaluator for a small set of "constant expressions" in Verilog.
- Range-tools
- Basic functions for working with ranges.
- Lvalexprs
- Functions for gathering all the expressions used in lvalue positions throughout a module item.
- Hierarchy
- Functions for working with the hierarchy of dependencies between Verilog descriptions.
- Finding-by-name
- Functions for looking up and reordering parsed objects by their names.
- Expr-tools
- Basic functions for working with expressions.
- Expr-slicing
- Functions for slicing up expressions into bits or segments.
- Stripping-functions
- Functions for throwing away attributes, widths, etc., so that expressions and module elements can be compared using equal.
- Stmt-tools
- Additional functions for working with statements.
- Modnamespace
- Functions related to a module's namespace.
- Vl-parse-expr-from-str
- Try to parse a Verilog expression from an ACL2 string.
- Welltyped
- Expressions whose sizes and types are sensible.
- Reordering-by-name
- Functions for reordering lists of parsed objects by their names.
- Flat-warnings
- Extract flat lists of warnings from various design elements.
- Genblob
- An abstraction that is useful for processing
generate constructs. - Expr-building
- Basic functions for generating expressions and gates.
- Datatype-tools
- Functions for working with datatypes.
- Syscalls
- Functions for working with system functions like
$bits and$random . - Relocate
- Functions to change the locations of various module elements.
- Expr-cleaning
- Functions for cleaning up ugly expressions.
- Namemangle
- Basic utilities for name mangling.
- Caremask
- Functions for computing bitmasks for, e.g., casez/casezx statements and wildcard equality operators.
- Port-tools
- Basic functions for working with arguments and ports.
- Lvalues
- Tools for gathering up lvalues and checking the well-formedness of expressions in lvalue positions.