0

I need to extract some values from SystemVerilog data structures after I run the simulation. I would like to do this without changing SystemVerilog code.

Below is an example of TCL script I am using in Synopsys DVE environment to add certain SystemVerilog signals to DVE waveforms. I need to write the same thing but instead of adding signlas to the waveforms I need to use TCL “puts” (that work like in C printf or Verilog $display) to print the signal values:

gui_open_db -file ./vcdplus.vpd

gui_open_window Wave

gui_sg_create abc

gui_list_add_group -id Wave.1 { abc }

gui_sg_addsignal -group abc {
 top.dut_inst.xyz.mno
 {top.dut_inst.xyz.pqr[3][7:0]}
}

gui_zoom -window Wave.1 -full
dave_59
  • 39,096
  • 3
  • 24
  • 63
  • When printing a signal, you'll need to think whether you are printing the _name_ of the signal (not the most interesting of things), a _sample_ of the signal (whether at the current time or not), or a _series_ of the signal (how the signal changes over time, which will probably require more complex code to print). **Unfortunately** I've not been able to fight my way through the thicket of Synopsys docs to find what commands you need to get values out of a signal, so this isn't the answer you're looking for, just a little bit of it… – Donal Fellows Aug 22 '18 at 06:36

1 Answers1

0

Something like the following should work:

puts [get top.dut_inst.xyz.mno]

If you are using a post-process mode, there are commands to go to certain time. Just do it in GUI and check DVEFiles/dve_history.log for a command.