File: files.rst

package info (click to toggle)
verilator 5.038-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 162,552 kB
  • sloc: cpp: 139,204; python: 20,931; ansic: 10,222; yacc: 6,000; lex: 1,925; makefile: 1,260; sh: 494; perl: 282; fortran: 22
file content (187 lines) | stat: -rw-r--r-- 6,449 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
.. Copyright 2003-2025 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}*\ .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 --hierarchical mode, it creates:

.. list-table::

   * - V\ *{hier_block}*\ /
     - Directory to Verilate each hierarchical block (from --hierarchical)
   * - *{prefix}*\ __hierVer.d
     - Make dependencies of the top module (from --hierarchical)
   * - *{prefix}*\ _hier.mk
     - Make file for hierarchical blocks (from --make gmake)
   * - *{prefix}*\ __hierCMakeArgs.f
     - Arguments for hierarchical Verilation (from --make cmake)
   * - *{prefix}*\ __hierMkArgs.f
     - Arguments for hierarchical Verilation (from --make gmake)
   * - *{prefix}*\ __hierParameters.v
     - Module parameters for hierarchical blocks
   * - *{prefix}*\ __hier.dir
     - Directory to store .dot, .vpp, .tree of top module (from --hierarchical)

In specific debug and other modes, it also creates:

.. list-table::

   * - *{prefix}*\ .sarif
     - SARIF diagnostics (from --diagnostics-sarif)
   * - *{prefix}*\ .tree.json
     - JSON tree information (from --json-only)
   * - *{prefix}*\ .tree.meta.json
     - JSON tree metadata (from --json-only)
   * - *{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)
   * - *{prefix}*\ __inputs\ .vpp
     - Pre-processed verilog for all files (from --debug)
   * - *{prefix}*\ _ *{each_verilog_base_filename}*\ .vpp
     - Pre-processed verilog for each file (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)
   * - lib\ *{prefix}*\ .a
     - Final archive (default lib mode)
   * - libverilated.a
     - Runtime for verilated model (default lib mode)
   * - *{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