blob: 3622b9d09677e31418081762c80763e1b16573aa [file] [log] [blame] [view]
# SystemVerilog Project Multi-tool
<!--*
freshness: { owner: 'hzeller' reviewed: '2020-12-21' }
*-->
`verible-verilog-project` is a multi-tool that operates on whole Verilog
projects, consisting of a file list and related configurations. This serves as a
diagnostic tool for analyzing (and potentially transforming) project-level
sources.
## Usage
```
verible-verilog-project COMMAND [options...]
available commands:
file-deps
help
symbol-table-defs
symbol-table-refs
Flags from verilog/tools/project/project_tool.cc:
--file_list_path (The path to the file list which contains the names of
SystemVerilog files.
The files should be ordered by definition dependencies.); default: "";
--file_list_root (The absolute location which we prepend to the files in the
file list (where listed files are relative to).); default: ".";
--include_dir_paths (Comma separated paths of the directories used to look
for included files.
Note: The order of the files here is important.
File search will stop at the the first found among the listed directories.
e.g --include_dir_paths directory1,directory2
if "A.sv" exists in both "directory1" and "directory2" the one in
"directory1" is the one we will use.
); default: ;
```
## Commands
### `symbol-table-defs`
Builds a unified symbol table over all project files, and prints a
human-readable representation. This does not show nor attempt to resolve symbol
references.
### `symbol-table-refs`
Builds a unified symbol table over all project files, attempts to resolve all
symbol references to definitions, and prints a human-readable representation of
the references.
### `file-deps`
Prints inter-file dependencies.
Example output:
```
"foo.sv" depends on "bar.sv" for symbols { bar baz }
"bar.sv" depends on "baz.sv" for symbols { quux }
```