Hello,
Does the path argument in $assertoff (0, tb_top.dut..property) have to exist to the compilation to pass or is there a workaround for it to pass? I have several compilation builds for my full chip testbench and need this capability.
Thanks.
No, you do not need the path to each affected module. You can write in the TB
initial $assertoff(0); // if called without arguments,
// it affects the entire design (e.g., $assertoff; )
/* Note: $assertoff stops the checking of all specified assertions until a subsequent $asserton. An assertion that is already executing, including execution of the pass or fail statement, is not affected. It is equivalent to: */
$assertcontrol(4, 15, 7, levels [,list])
SV compiler checks the path and errors out. Have you tried that? Thanks.
If you try to compile source code with a path that does not exist, you get a compiler error. You either need to use `ifdef
s or change your compilation to exclude compiling code with paths that don’t exist.
Another option is using tool specific command lines for controlling assertions instead of putting it in your source code.
I found a solution, if one puts a quote around the path and provide the string as an argument, it works. If the path does not exist, there is info on the assert skipping in the log and simulation will continue. This technique has more flexibility.
Thanks.
Is it legal to use wild characters in $assertoff? Thanks.