Setting user-defined verbosity for `uvm_info messages in UVM Tb

Hi All,
Run-time argument of +UVM_VERBOSITY=UVM_MEDIUM sets the verbosity globally,
I was trying a scenario ( edaplayground ) where user wants a user-defined verbosity for module , interface , component and user_sequence via run-time argument +uvm_set_verbosity=

  1. In UVM Source code the string argument ‘name’ to uvm_root is “__top__” , so to set verbosity for uvm_info messages within a module / interface, what should be the run-time argument ?
    I tried :: +uvm_set_verbosity=__top__,MOD,UVM_NONE,phase but it didn’t take effect.
    also what should be last phase argument since there is no phasing within the module / interface ?

  2. Is it possible to set different verbosity for module and an interface ( as both call the function via uvm_root ) ? ( assuming the message_id is different )

  3. Similarly what should be the run-time argument to set verbosity for the sequence ? what should be the last ‘phase’ arg. ? )

  4. For a specific component is it possible to change severity for ALL phases ? ( i.e it should apply to `uvm_info messages from build to final phase ) ?

  1. The big issue here is that the +uvm_set_verbosity filtering is based on a UVM component instance name or a message ID. uvm_info() in a module or interface don’t have an instance name. Not even “top” as that is for uvm_root. That is why they always just display “reporter”. So you can’t filter messages in a module or instance based on an instance name. Not even with “reporter”.

  2. You could filter by ID. This could be either the module or interface name, or their instance name, from $sformatf(“%m”), which might be simulator-dependent. The phase should be “run”.

  3. If you start the sequence on a sequencer, the sequence path is path to the sequencer and a wildcard, like “uvm_test_top.env.agt.sqr*” This also depends if you call seq::type_id::create() or `uvm_create(). No short answer. In your example, you call seq.start(null), so the sequence message just has “reporter”

  4. I can not find a phase name for all phases in UVM 1.2. Wildcard “*” does not work.