Files in the Git Tree

The following is a summary of the files in the Git Tree (distribution) of Verilator:

Changes                     => Version history
README.rst                  => This document
bin/verilator               => Compiler wrapper invoked to Verilate code
docs/                       => Additional documentation
examples/                   => Examples (see manual for descriptions)
include/                    => Files that should be in your -I compiler path
include/verilated*.cpp      => Global routines to link into your simulator
include/verilated*.h        => Global headers
include/        => Common Makefile
src/                        => Translator source code
test_regress                => Internal tests

Files Read/Written

All output files are placed in the output directory specified with the --Mdir option, or “obj_dir” if not specified.

Verilator creates the following files in the output directory:

For –cc/–sc, it creates:


CMake include script for compiling (from –make cmake)


Make include file for compiling (from –make gmake)


Make include file with class names (from –make gmake)


Make file for hierarchy blocks (from –make gmake)


Arguments for hierarchical Verilation (from –make gmake)


Arguments for hierarchical Verilation (from –make cmake)


Top level C++ file


Additional top C++ files (from –output-split)


Top level header


Infrequent cold routines


DPI import and export wrappers (from –dpi)


DPI import and export declarations (from –dpi)


Inline support functions


Global symbol table C++


Global symbol table header


Wave file generation code (from –trace)


Wave file generation code (from –trace)


Lower level internal C++ files


Lower level internal header files


Additional lower C++ files (from –output-split)

For –hierarchy mode, it creates:


Directory to Verilate each hierarchy block (from –hierarchy)


Make dependencies of the top module (from –hierarchy)


Directory to store .dot, .vpp, .tree of top module (from –hierarchy)

In certain debug and other modes, it also creates:


XML tree information (from –xml)


Clock Domain Crossing checks (from –cdc)


Statistics (from –stats)


Symbol demangling (from –protect-ids)


Make dependencies (from -MMD)


Timestamps (from –skip-identical)


Debugging graph files (from –debug)


Debugging files (from –debug)


Pre-processed verilog (from –debug)

After running Make, the C++ compiler may produce the following:


Intermediate dependencies


Intermediate objects


Intermediate dependencies


Intermediate objects


Final executable (from –exe)


Library of all Verilated objects


Include of all code for single compile


Intermediate dependencies


Intermediate objects