-
Notifications
You must be signed in to change notification settings - Fork 23
Description
I was very impressed when using the generic on RunTest that I could set a generic that was not on a top-level entity. However, I was dismayed to find out that it didn't work when I tried to run in CLI/batch mode. I figured that it may be because I only SetInteractiveMode when I'm in GUI mode, so I tried SetDebug prior to runTest for by batch run. However, this had no effect when I re-ran.
After doing some digging, I can see that Debug is ignored if we've got NoGui. In at least Questasim's case, the +acc flag gives design visibility that was allowing me to set generics that were not top level.
OSVVM-Scripts/VendorScripts_Siemens.tcl
Line 310 in efeea2a
| if {($::osvvm::NoGui) || !($::osvvm::Debug)} { |
I also suspect that if I had external aliases set up to dive deep into the hierarchy, I might need debug visibility (I haven't tried).
I believe this user experience can be improved, it's not ideal to have an explicit setting (SetDebug) ignored, resulting in behaviour mismatch between GUI runs and batch runs.
I accept that a reasonable default for Debug is false for NoGui, but I believe that is already the default. I don't see what the gain is to enforce a check for NoGui at the vendor simulate stage.
If I've told the simulator to have debug visibility via SetDebug, I don't think OSVVM should disallow this.
If we really want the default behaviour to ignore Debug if NoGui, then we should add user feedback / warnings / errors when they try to SetDebug.
However, I think we should instead change the default behaviour to respect the Debug flag, regardless of GUI mode. We should then give a warning when NoGui, indicating that simulation will be slower and take up more memory etc.
I have a simple workaround to just wire that generic up to lop level. Perhaps I could also manually provide the +acc option as an argument.
P.S. the PDF documentation for RunTest was out of date and didn't mention that I can give [generic ] as an option.