Forum Discussion
Lisence issue when running .do script
How is your queue declared ?
Be aware that if you want to use the SV randomization, you need an advanced version of Questa (to use the Solver) and neither Starter nor OEM Editions do have this. OTOMH that's what the svverification license feature is enabling. $urandom (Verilog) etc will work, but not the SV randomization methods.
I was precisely wondering about the program block.
So you have the proper workaround it seems :-)
Just out of curiosity : what was your motivation for using a program block ?
I have been teaching SV for as long as it exists and we even removed the chapter about the program block...
I remember that it was (in the early days of SV at least) a source of trouble in the SV scheduler implementation (and a source of non determinism across tools).
- WFH4 months ago
New Contributor
Thank you:)
I am beginner for learning SV for verification. In my Textbook it introduces the Program block that it is used to seperate the software block(Input stimulus written in Program) and hardware block(DUT).
Is that out of date?
- BCuze4 months ago
Occasional Contributor
In your case, it prevents you from using affordable versions of Questa, so it's definitely a serious reason to avoid the program block.
I could change my mind, but only the day I will see a clear advantage of using it.
- Farabi_Altera3 months ago
Regular Contributor
Hello WFH,
Do you still see license issue on Questa? If you using free edition of Questa, should be not the license issue, but the limitation of the free version of Questa.
regards,
farabi
- BCuze3 months ago
Occasional Contributor
It seems there is a consensus confirming my statement about not using the SystemVerilog program block. (You should be careful about your textbook).
That's what AI answers to "is it a good idea to use the program block in systemverilog ?" :
In modern SystemVerilog verification, the short answer is no, it is generally no longer considered a good idea to use the program block. While it was introduced early on to solve a major problem, evolution in verification methodologies—specifically the widespread adoption of the Universal Verification Methodology (UVM) and the strategic use of Clocking Blocks—has made the program block largely redundant and, in many cases, a source of subtle bugs.
- WFH3 months ago
New Contributor
Yes, It seems that my textbook teaches only about the old basic usage of SV for verification, does not cover the principles of UVM verification. I have asked AI about writing a testbench, it shows me that writing with module tb + interface + clocking block + class + mailbox/queue/event + assertion is a good way. And I would like to ask your practical industial experience about SV.:)