verilator/include
Geza Lore b51f887567
Perform VCD tracing in parallel when using --threads (#3449)
VCD tracing is now parallelized using the same thread pool as the model.
We achieve this by breaking the top level trace functions into multiple
top level functions (as many as --threads), and after emitting the time
stamp to the VCD file on the main thread, we execute the tracing
functions in parallel on the same thread pool as the model (which we
pass to the trace file during registration), tracing into a secondary
per thread buffer. The main thread will then stitch (memcpy) the buffers
together into the output file.

This makes the `--trace-threads` option redundant with `--trace`, which
now only affects `--trace-fst`. FST tracing uses the previous offloading
scheme.

This obviously helps a lot in VCD tracing performance, and I have seen
better than Amdahl speedup, namely I get 3.9x on XiangShan 4T (2.7x on
OpenTitan 4T).
2022-05-29 19:08:39 +01:00
..
gtkwave GTKWave header updates from upstream. 2022-02-09 21:56:22 -05:00
vltstd Fix DPI open array handling issues, and do internal coverage (#2350). 2020-12-09 22:15:34 -05:00
.gitignore Support VPI product info, warning calls, etc, bug588. 2013-01-17 21:40:37 -05:00
verilated_config.h.in Add VERILATOR_VERSION_INTEGER for determining API (#3343). 2022-03-12 11:17:39 -05:00
verilated_cov_key.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_cov.cpp Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_cov.h Internals: Cleanup some defaults. No functional change. 2022-05-12 23:30:39 -04:00
verilated_dpi.cpp Commentary 2022-03-30 20:17:59 -04:00
verilated_dpi.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_fst_c.cpp Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_fst_c.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_fst_sc.cpp Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_fst_sc.h Internals: Add cpplint control file and related cleanups 2022-01-09 16:49:38 -05:00
verilated_funcs.h Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_heavy.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_imp.h Internals: Use mutable for mutexes. No functional change. 2022-05-13 07:21:39 -04:00
verilated_intrinsics.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_profiler.cpp Make local function 'static' in verilated_profiler.h 2022-05-28 12:17:39 +01:00
verilated_profiler.h Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_save.cpp Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_save.h Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_sc.h Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_sym_props.h Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_syms.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_threads.cpp Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated_threads.h Internals: Use mutable for mutexes. No functional change. 2022-05-13 07:21:39 -04:00
verilated_trace_defs.h Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_trace_imp.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_trace.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_types.h Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_vcd_c.cpp Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_vcd_c.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated_vcd_sc.cpp Copyright year update. 2022-01-01 08:26:40 -05:00
verilated_vcd_sc.h Internals: Add cpplint control file and related cleanups 2022-01-09 16:49:38 -05:00
verilated_vpi.cpp Internals: Cleanup some statics, trivial part towards (#3419) 2022-05-15 14:26:55 -04:00
verilated_vpi.h Deprecate 'vluint64_t' and similar types (#3255). 2022-03-27 15:27:40 -04:00
verilated.cpp Add assert when VerilatedContext is mis-deleted (#3121). 2022-05-15 10:51:03 -04:00
verilated.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00
verilated.mk.in Add -DVM_TRACE_VCD in model builds with Make with --trace 2022-05-20 16:44:38 +01:00
verilated.v Copyright year update. 2022-01-01 08:26:40 -05:00
verilatedos.h Perform VCD tracing in parallel when using --threads (#3449) 2022-05-29 19:08:39 +01:00