Module Library -- A collection of various functions for
working with Verilog modules.
- Scopestacks deal with namespaces in SystemVerilog by tracking the
bindings of names in scopes. They provide a straightforward, correct way to
look up identifiers.
- Functions for filtering lists of parsed objects by their names.
- Produces fresh names for a module.
- Substitution into Verilog constructs
- Functions for gathering all the expressions used throughout some
- An evaluator for a small set of "constant expressions" in Verilog.
- Functions for recognizing and following well-formed hierarchical
identifiers, scoped identifiers, and indexing expressions.
- Basic functions for working with ranges.
- Functions for gathering all the expressions used in lvalue positions
throughout a module item.
- Functions for working with the hierarchy of dependencies between
- Functions for looking up and reordering parsed objects by their
- Basic functions for working with expressions.
- Functions for slicing up expressions into bits or segments.
- Functions for throwing away attributes, widths, etc., so that
expressions and module elements can be compared using equal.
- Additional functions for working with statements.
- Functions related to a module's namespace.
- Try to parse a Verilog expression from an ACL2 string.
- Expressions whose sizes and types are sensible.
- Functions for reordering lists of parsed objects by their names.
- Extract flat lists of warnings from various design elements.
- An abstraction that is useful for processing generate
- Basic functions for generating expressions and gates.
- Functions for working with datatypes.
- Functions for working with system functions like $bits and
- Functions to change the locations of various module elements.
- Functions for cleaning up ugly expressions.
- Basic utilities for name mangling.
- Functions for computing bitmasks for, e.g., casez/casezx statements
and wildcard equality operators.
- Basic functions for working with arguments and ports.
- Tools for gathering up lvalues and checking the well-formedness of
expressions in lvalue positions.