Why doesnt UVM_VERBOSITY from command line work on object extended from uvm_report_object

I have an object env_cfg which is extended from uvm_report_object.

I always get the uvm messages with UVM_MEDIUM. The run-time options have +UVM_VERBOSITY=UVM_NONE.

If I extend env_cfg from uvm_object then i dont see this issue.

Eda playground example

In the example above you can see that the line

“this should not be printed”

is with

UVM_MEDIUM

and i have

+UVM_VERBOSITY=UVM_NONE

.

I expected it to be not printed, but it gets printed. Is this a bug?

In reply to justrajdeep:

The uvm_report_object uses set_report_macros which means we have to set the verbosity through set_report_verbosity_level.

check the updated example here.

In reply to rag123:

In reply to justrajdeep:
The uvm_report_object uses set_report_macros which means we have to set the verbosity through set_report_verbosity_level.
check the updated example here.
UVM: The start and the end of each phase(3) - EDA Playground

I understand that i can use the
set_report_*
methods, but then i cannot change the verbosity level at runtime from command line, i will have to compile each time.

This looks like a limitation.

In reply to justrajdeep:

+UVM_VERBOSITY only works on classes derived from uvm_component. It also works on classes not derived from uvm_report_object because their reporting methods use the global reporting object from uvm_test_top. This does leave classes derived directly from uvm_report_object out of scope for the command line options.

Since you are using env_cfg as the message ID, you can derive env_cfg from uvm_object and use

+uvm_set_verbosity=*,env_cfg,UVM_NONE,build