[Feature Request] Scalatest Cli support for FST waveform
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
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from chipsalliance/chisel
-
LFSR.tapsMaxPeriod: 17 second tap sets (widths 725 to 755) are a single number larger than the widthOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
chipsalliance/chisel#5512 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 67/100
chipsalliance/chisel#5507 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
chipsalliance/chisel#5499 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 54/100
chipsalliance/chisel#5430 · 2 comments ·
Maintainers usually reply within 1 day
-
MultiClockSpec chiselTest fails with recent Verilator versionPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 3/5 1-2 days Newbie friendliness 68/100
chipsalliance/chisel#5418 · 3 comments ·
Maintainers usually reply within 1 day
All issues in chipsalliance/chisel
Similar issues
-
area:verification status:backlog
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
KD5UJC-XYZ/scarab#459 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
scalacenter/scaladex#1834 ·
-
PlatformSpecific.hasGreenThreads incorrectly returns false for JDK updates and non-GA versionsPossibly taken @hearnadam claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
zio/zio#11303 · 1 reaction · 2 assignees ·
Maintainers usually reply within 1 day
-
Disabled tools can still be called by the agentPossibly taken @shaynhornik claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
apache/texera#9122 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day