forked from github/verilator
174 lines
5.7 KiB
ReStructuredText
174 lines
5.7 KiB
ReStructuredText
.. Copyright 2003-2023 by Wilson Snyder.
|
|
.. SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
*****
|
|
Files
|
|
*****
|
|
|
|
.. _Files in the Distribution:
|
|
|
|
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/verilated.mk => Common Makefile
|
|
src/ => Translator source code
|
|
test_regress => Internal tests
|
|
|
|
|
|
.. _Files Read/Written:
|
|
|
|
Files Read/Written
|
|
==================
|
|
|
|
All output files are placed in the output directory specified with the
|
|
:vlopt:`--Mdir` option, or "obj_dir" if not specified.
|
|
|
|
Verilator creates the following files in the output directory:
|
|
|
|
For --cc/--sc, it creates:
|
|
|
|
.. list-table::
|
|
|
|
* - *{prefix}*\ .cmake
|
|
- CMake include script for compiling (from --make cmake)
|
|
* - *{prefix}*\ .mk
|
|
- Make include file for compiling (from --make gmake)
|
|
* - *{prefix}*\ _classes.mk
|
|
- Make include file with class names (from --make gmake)
|
|
* - *{prefix}*\ _hier.mk
|
|
- Make file for hierarchy blocks (from --make gmake)
|
|
* - *{prefix}*\ _hierMkArgs.f
|
|
- Arguments for hierarchical Verilation (from --make gmake)
|
|
* - *{prefix}*\ _hierCMakeArgs.f
|
|
- Arguments for hierarchical Verilation (from --make cmake)
|
|
* - *{prefix}*\ .h
|
|
- Model header
|
|
* - *{prefix}*\ .cpp
|
|
- Model C++ file
|
|
* - *{prefix}*\ ___024root.h
|
|
- Top-level internal header file (from SystemVerilog $root)
|
|
* - *{prefix}*\ ___024root.cpp
|
|
- Top-level internal C++ file (from SystemVerilog $root)
|
|
* - *{prefix}*\ ___024root\ *{__n}*\ .cpp
|
|
- Additional top-level internal C++ files
|
|
* - *{prefix}*\ ___024root\ *{__DepSet_hash__n}*\ .cpp
|
|
- Additional top-level internal C++ files (hashed to reduce build times)
|
|
* - *{prefix}*\ ___024root__Slow\ *{__n}*\ .cpp
|
|
- Infrequent cold routines
|
|
* - *{prefix}*\ ___024root\ *{__DepSet_hash__n}*\ .cpp
|
|
- Infrequent cold routines (hashed to reduce build times)
|
|
* - *{prefix}*\ ___024root__Trace\ *{__n}*\ .cpp
|
|
- Wave file generation code (from --trace)
|
|
* - *{prefix}*\ ___024root__Trace__Slow\ *{__n}*\ .cpp
|
|
- Wave file generation code (from --trace)
|
|
* - *{prefix}*\ __Dpi.h
|
|
- DPI import and export declarations (from --dpi)
|
|
* - *{prefix}*\ __Dpi.cpp
|
|
- Global DPI export wrappers (from --dpi)
|
|
* - *{prefix}*\ __Dpi_Export\ *{__n}*\ .cpp
|
|
- DPI export wrappers scoped to this particular model (from --dpi)
|
|
* - *{prefix}*\ __Inlines.h
|
|
- Inline support functions
|
|
* - *{prefix}*\ __Syms.h
|
|
- Global symbol table header
|
|
* - *{prefix}*\ __Syms.cpp
|
|
- Global symbol table C++
|
|
* - *{prefix}{each_verilog_module}*\ .h
|
|
- Lower level internal header files
|
|
* - *{prefix}{each_verilog_module}*\ .cpp
|
|
- Lower level internal C++ files
|
|
* - *{prefix}{each_verilog_module}{__n}*\ .cpp
|
|
- Additional lower C++ files
|
|
* - *{prefix}{each_verilog_module}{__DepSet_hash__n}*\ .cpp
|
|
- Additional lower C++ files (hashed to reduce build times)
|
|
|
|
For --hierarchy mode, it creates:
|
|
|
|
.. list-table::
|
|
|
|
* - V\ *{hier_block}*\ /
|
|
- Directory to Verilate each hierarchy block (from --hierarchy)
|
|
* - *{prefix}*\ __hierVer.d
|
|
- Make dependencies of the top module (from --hierarchy)
|
|
* - *{prefix}*\ __hier.dir
|
|
- Directory to store .dot, .vpp, .tree of top module (from --hierarchy)
|
|
|
|
In specific debug and other modes, it also creates:
|
|
|
|
.. list-table::
|
|
|
|
* - *{prefix}*\ .xml
|
|
- XML tree information (from --xml)
|
|
* - *{prefix}*\ __cdc.txt
|
|
- Clock Domain Crossing checks (from --cdc)
|
|
* - *{prefix}*\ __stats.txt
|
|
- Statistics (from --stats)
|
|
* - *{prefix}*\ __idmap.txt
|
|
- Symbol demangling (from --protect-ids)
|
|
* - *{prefix}*\ __ver.d
|
|
- Make dependencies (from -MMD)
|
|
* - *{prefix}*\ __verFiles.dat
|
|
- Timestamps (from --skip-identical)
|
|
* - *{prefix}{misc}*\ .dot
|
|
- Debugging graph files (from --debug)
|
|
* - *{prefix}{misc}*\ .tree
|
|
- Debugging files (from --debug)
|
|
* - {mod_prefix}_{each_verilog_base_filename}*\ .vpp
|
|
- Pre-processed verilog (from --debug)
|
|
|
|
After running Make, the C++ compiler may produce the following:
|
|
|
|
.. list-table::
|
|
|
|
* - verilated{misc}*\ .d
|
|
- Intermediate dependencies
|
|
* - verilated{misc}*\ .o
|
|
- Intermediate objects
|
|
* - {mod_prefix}{misc}*\ .d
|
|
- Intermediate dependencies
|
|
* - {mod_prefix}{misc}*\ .o
|
|
- Intermediate objects
|
|
* - *{prefix}*\
|
|
- Final executable (from --exe)
|
|
* - *{prefix}*\ __ALL.a
|
|
- Library of all Verilated objects
|
|
* - *{prefix}*\ __ALL.cpp
|
|
- Include of all code for single compile
|
|
* - *{prefix}{misc}*\ .d
|
|
- Intermediate dependencies
|
|
* - *{prefix}{misc}*\ .o
|
|
- Intermediate objects
|
|
|
|
The Verilated executable may produce the following:
|
|
|
|
.. list-table::
|
|
|
|
* - coverage.dat
|
|
- Code coverage output, and default input filename for :command:`verilator_coverage`
|
|
* - gmon.out
|
|
- GCC/clang code profiler output, often fed into :command:`verilator_profcfunc`
|
|
* - profile.vlt
|
|
- --prof-pgo data file for :ref:`Thread PGO`
|
|
* - profile_exec.dat
|
|
- --prof-exec data file for :command:`verilator_gantt`
|
|
|
|
Verilator_gantt may produce the following:
|
|
|
|
.. list-table::
|
|
|
|
* - profile_exec.vcd
|
|
- Gantt report waveform output
|