Skip to content

[svsim] Stop passing --trace-threads to Verilator - #5526

Open
mmporong wants to merge 1 commit into
chipsalliance:mainfrom
mmporong:svsim-drop-trace-threads
Open

mmporong wants to merge 1 commit into
chipsalliance:mainfrom
mmporong:svsim-drop-trace-threads

Conversation

@mmporong

Copy link
Copy Markdown

Summary

Fixes #5335

Verilator v5.048 removed multi-threaded FST tracing (verilator/verilator#7443) and now reports --trace-threads as DEPRECATED. svsim doesn't pass -Wno-fatal by default, so with TraceKind.Fst(Some(n)) the Verilator build fails. Hamster5295 reported this and traced it to Fst.toCompileFlags. This drops the option, as suggested in the issue, instead of checking the Verilator version.

  • Fst now only emits --trace-fst.
  • traceThreads is kept for source and binary compatibility, but it's deprecated and documented as ignored. @deprecated on the parameter alone trips -Werror because the synthetic case class members read it, so Fst also has @nowarn("cat=deprecation"). Constructing Fst(Some(n)) doesn't warn.
  • A new CommandLineSpec test checks that the generated Verilator arguments contain --trace-fst and no --trace-threads. It fails before this change and passes after.

Checked with Verilator 5.048 (conda-forge build) and JDK 21:

  • The existing ChiselSimSpec test "should dump a FST waveform when traceStyle is Fst and enableWaves is used" already uses Fst(Some(2)). Before this change it fails with the same DEPRECATED error as the issue; after it, it passes.
  • svsim.cross[2.13].test and svsim.cross[3].test pass (the VCS spec is ignored, no VCS here).
  • chisel[2.13].test.compile, unipublish[2.13].mimaReportBinaryIssues and the svsim checkFormat tasks pass.

CI installs oss-cad-suite 2023-06-21, which predates Verilator 5.048, so CI doesn't hit this failure.

Not done here: the issue also suggests having ChiselSim store and print the Verilator version it was tested with when the Verilator call fails, like it does for firtool. That's left out to keep this change small; it could be a follow-up PR.

Release Notes

svsim no longer passes --trace-threads to Verilator, which fixes FST tracing with TraceKind.Fst(Some(n)) on Verilator v5.048 and newer. The traceThreads parameter of TraceKind.Fst is deprecated and ignored. Multi-threaded FST writing is no longer requested on older Verilator versions either.

Development notes

  • AI tool(s) used: Claude Code (claude-opus-5-5), for the change, the test and this description.

Assisted-by: Claude Code:claude-opus-5-5

Verilator v5.048 removed multi-threaded FST tracing and now reports
--trace-threads as DEPRECATED.  svsim does not pass -Wno-fatal by
default, so with TraceKind.Fst(Some(n)) the Verilator build fails.

Only pass --trace-fst for FST tracing.  Keep the traceThreads parameter
for source and binary compatibility, but deprecate it and document that
it is ignored.

Add a CommandLineSpec test that checks the generated Verilator
arguments no longer contain --trace-threads.

Assisted-by: Claude Code:claude-opus-5-5
@linux-foundation-easycla

linux-foundation-easycla Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: mmporong / name: mmporong (1ecdafa)

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ChiselSim] Flag --trace-threads is deprecated since Verilator v5.048

1 participant