1VERILATOR_GANTT(1) User Contributed Perl Documentation VERILATOR_GANTT(1)
2
3
4
6 verilator_gantt - Create Gantt chart of multi-threaded execution
7
9 Creates a visual representation to help analyze Verilator multithreaded
10 simulation performance, by showing when each macro-task starts and
11 ends, and showing when each thread is busy or idle.
12
13 The generated Gantt chart has time on the X-axis. Times shown are to
14 the scale printed, i.e. a certain about of time for each character
15 width. The Y-axis shows threads, each thread's execution is shown on
16 one line. That line shows "[" at the position in time when it
17 executes.
18
19 Following the "[" is the cpu number the task executed on, followed by
20 zero or more "-" to make the width of the characters match the scaled
21 execution time, followed by a "]". If the scale is too small, the cpu
22 number and mtask number will not be printed. If the scale is very
23 small, a "&" indicates multiple mtasks started at that time position.
24
25 Also creates a value change dump (VCD) format dump file which may be
26 viewed in a waveform viewer (e.g. "GTKWave"). See below.
27
29 Build with --prof-threads.
30
31 Run a sim with +verilator+prof+threads+window 2.
32
33 This will create profile_threads.dat.
34
35 Then run:
36
37 verilator_gantt profile_threads.dat
38
39 The report will be printed on standard output, this also generates
40 profile_threads.vcd
41
42 View profile_threads.vcd in a waveform viewer.
43
45 In waveforms there are the following signals. Most signals the
46 "decimal" format will remove the leading zeros and make the traces
47 easier to read.
48
49 parallelism: The number of mtasks active at this time, for best
50 performance this will match the thread count. You may want to use an
51 "analog step" format to view this signal.
52
53 cpu#_thread: For the given CPU number, the thread number executing.
54
55 mtask#_cpu; For the given mtask id, the CPU it is executing on.
56
57 thread#_mtask: For the given thread number, the mtask id executing.
58
60 filename
61 The filename to read data from, defaults to "profile_threads.dat".
62
63 --help
64 Displays this message and program version and exits.
65
66 --scale n
67 On the X-axis of the generated Gantt chart, each character
68 represents this many time units. (On x86, time units are rdtsc
69 ticks.) Defaults to 0, which will automatically compute a
70 reasonable scale where no two mtasks need to fit into same
71 character width's worth of scaled time.
72
73 --no-vcd
74 --vcd filename
75 Set output filename for vcd dump, or disable. Default is
76 verilator_gantt.vcd.
77
79 The latest version is available from <https://verilator.org>.
80
81 Copyright 2018-2021 by Wilson Snyder. This program is free software;
82 you can redistribute it and/or modify it under the terms of either the
83 GNU Lesser General Public License Version 3 or the Perl Artistic
84 License Version 2.0.
85
86 SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
87
89 Wilson Snyder <wsnyder@wsnyder.org>
90
92 "verilator"
93
94
95
96perl v5.34.0 2021-07-23 VERILATOR_GANTT(1)