traceverilator

How to trace specific signals using Verilator?


I have a system which I want to trace with Verilator, but using a VCD trace file is highly resource-demanding (hundreds of gigabytes) and time consuming. I changed the trace file type to FST, and the file size is reasonable, but it is still time-consuming. Tracing the whole system is not my goal at the moment because I only want the values of 8 signals, not the 16000 signals of the system.

How can I trace specific signals using Verilator?

Any help or hint would be much appreciated.


Solution

  • The Verilator manual has a FAQ for this: How do I speed up writing large waveform (trace) files?

    These are the suggestions (briefly):

    1. Delay calling open
    2. Add the /*verilator tracing_off*/ metacomment
    3. Use the --trace-depth 1 option
    4. FST (which you already tried)
    5. Write your trace files to a local solid-state drive, instead of to a network drive