Hi dear all,
I am at a customer working on a SystemVerilog UVM - based verification environment…
without going (yet) too much deep in details I have that starting a simulation with a command line such as:
ifxxcelium execute -gui -- +UVM_TESTNAME=adas_err_monitor_test -svseed 5 -gpg '\"TLF30682_VER => 0\"' +uvm_set_config_int=uvm_test_top,test_nb,6 &
and starting it with
ifxxcelium execute -gui -- +UVM_TESTNAME=adas_err_monitor_test -gpg '\"TLF30682_VER => 0\"' +uvm_set_config_int=uvm_test_top,test_nb,6 &
and then giving in the tcl console:
set svseed 5; run <ENTER>
produces different results...
The ifxxcelium execute customer- specific- script passes what follows "--" simply to xrun (while it works on itself some of the switches before the "--" and then passes them to xrun)...
before going deep…. is a possible corner in the LRM to have different results if one uses the -svseed switch or the "set svseed <VALUE> " tcl command and then hits run ?
simulator version is xcelium_17.10.010 (s010) , run in 32bits mode.
thx in advance!
I'm not aware of any deliberate difference in behaviour between -svseed and the Tcl svseed variable, however it's possible that your scripting is doing other things before your svseed variable setting, which could mean something gets constructed int eh SV code and picks up the global seed from the command line before you set the seed in Tcl. There's always a risk that you've found a bug too, but 17.10 is extremely old and unless you can reproduce this in a newer supported version, then there's not so much that we can do.
To be honest though, I'm struggling to understand why you need to use 2 different flows. Can't you pick one and use it consistently so as to get stable results?