Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Feature Request] Scalatest Cli support for FST waveform

Open Beginner friendly
#5,504 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Feature
Clarity
Clearly specified
Activity status
Active
Tech stack
scala
Domain
testing-qa

Research direction

Start at src/main/scala/chisel3/simulator/scalatest/Cli.scala around line 61, where the EmitFsdb trait shows how a waveform trait adds its option, and check the Fst support already present in the svsim.verilator package that this would drive. Copy that pattern into an EmitFst trait that passes -DemitFst=[1,true] and raises IllegalArgumentException when the backend is vcs. Done means the trait compiles and the scalatest simulator tests exercise the flag end to end; note the reporter has offered to write the PR themselves.

Written by the indexing model from the issue text.

Description

Type of issue: Feature Request

Is your feature request related to a problem? Please describe.
Fst is a verilator-specific waveform format that is much more efficient than Vcd. It can be found in the svsim.verilator package, but not found in chisel3.simulator.scalatest.Cli, which makes it hard to emit Fst waveforms by Cli args.

Describe the solution you'd like
Add a EmitFst to chisel3.simulator.scalatest.Cli, which adds -DemitFst=[1,true]. It throws IllegalArgumentException when backend is vcs.

Describe alternatives you've considered
If not added, users have to implement their own trait, calling addOption manually, which cause difference in different projects.

Additional context

The EmitFsdb trait lies here, and can be easily transplanted to Fst imo.
https://github.com/chipsalliance/chisel/blob/7ed985d50f5eb54b7c78c56d53bbaad1755047ad/src/main/scala/chisel3/simulator/scalatest/Cli.scala#L61

If it's ok to add, I'm glad to implement this feature and draft a PR.

What is the use case for implementing this feature?
It's common to debug through waveforms when unit test fails, using verilator, and Fst brings the advantage of less disk space and higher loading speed in visualizers like gtkwave.

Dominant language
Scala
Stars
4.8k
Forks
662
Avg merge
1d 23h
Merged PRs (30d)
9

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from chipsalliance/chisel

All issues in chipsalliance/chisel

Similar issues

More Scala issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.