[dvsim] Provide a method to dump UVM waves for all simulators
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
When developing UVM testbenches based on behavioural models it is very useful to be able to view the fields of classes in the wave viewer.
They can be viewed as they change over time along with RTL signals.
Often there is a similar structure and fields which correspond to RTL signals.
Visual comparison of these allows for efficient debug of the RTL or model.
However it's not desirable to record these items every time waves are requested (**--waves**) as the file storage is considerably greater than if only RTL waves are dumped and the simulation is also slowed considerably.
I've achieved this for Excelium with a by using a slightly modified waves.tcl when required but a command line switch (say **--uvm-waves**) would be preferable.
The reason UVM fields are not dumped currently is that the probe command must come _after_ the UVM environment has been built, i.e. after the end of UVM build phase.
For Excelium I achieved this via the TCL command **uvm_phase** :
```
uvm_phase -stop_at build -end -stop_args -execute {
probe -create $uvm:{uvm_test_top} -depth all -tasks -functions -uvm -packed 4k -unpacked 16k -all -database $wavedump_db
} -continue
```
In this manner the probe command is only executed after build phase has ended and all the fields are present to be dumped.
There will be similar methods for the other simulators.
Contributor guide
Research direction
Start by tracing the existing --waves handling and the simulator-specific waves.tcl flow, using the Excelium example and its uvm_phase command as the reference. Compare how each supported simulator can run the probe after the UVM build phase, then verify that a proposed --uvm-waves option dumps UVM fields without changing ordinary RTL-only wave behavior.
Written by the indexing model from the issue text.
Assessment
- Domain
- testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100