Finds and loads Verilog source files.
Most Verilog designs involve many files spread out across multiple
directories. To really load a high-level module top, we typically need
- start by parsing its file, say top.v, then
- figure out which supporting descriptions are used within top and
- use a search procedure to load these supporting descriptions from library
Our top-level function for loading Verilog files, vl-load, implements
such a scheme. It has various options (see vl-loadconfig-p) that allow
you to specify the search paths and extensions to use when looking for files,
VL supports a special comment syntax:
//+VL single-line version
/*+VL multi-line version */
Which can be used to hide VL-specific code from other tools, e.g., if you
need your modules to work with an older Verilog implementation that doesn't
support Verilog-2005 style attributes, you might write something like:
//+VL (* my_attribute *)
assign foo = bar;
There is also a special, more concise syntax for attributes:
- Limited preprocessor for Verilog.
- Options for how to load Verilog modules.
- A lexer for Verilog and SystemVerilog.
- Internal state object used throughout the VL loading routines.
- A parser for a subset of Verilog and SystemVerilog.
- Merge newly found Verilog descriptions with previously loaded
descriptions, warning about any multiply defined descriptions.
- How VL and other tools handle the scope of `defines.
- Main function for loading a single Verilog file.
- Attempt to find and load any missing modules.
- Representation of an arbitrary, top-level element.
- Return value from vl-load.
- Read an entire file into a list of extended characters.
- Alternative to vl-find-file that can take a list of
- Read an entire list of files into a list of extended characters.
- Determine where to load a file from, given its (absolute or relative)
name and a list of directories to search.
- Characters with additional annotations.
- Wrapper for vl-load-main that also reports errors or (with
some configuration) can print other information.
- Top level interface for loading Verilog sources.
- Try to load a description from the search path.
- Determine which descriptions we still need to load.
- Mechanism for attaching warnings to particular modules or
other design elements.
- Extend vl-load-description to try to load a list of descriptions.
- Load a list of files.
- Print summary information (e.g., warnings, numbers of modules loaded,
etc.) after modules have been loaded.
- A list of vl-description-p objects.