Hello All,
In my existing UVM Tb I am trying to set verbosity to UVM_DEBUG for specific components ( and ignore the UVM_DEBUG msgs from UVM library and other components )
The two components of interest are scbd and reg_mon which are created in Env’s build_phase()
tc_scbd = tc_mapr_sb::type_id::create("tc_mapr_scbd", this);
tc_reg_mon = tc_mapr_reg_mon::type_id::create("tc_mapr_reg_mon", this);
Pls note that string arg. ‘name’ to create is different than their respective handle names
I have a few questions on using +uvm_set_verbosity as command line argument for these 2 components
(1) Are multiple +uvm_set_verbosity arguments legal in UVM ?
Eg: For multiple +UVM_VERBOSITY= only the 1st occurrence is used internally as per LRM
(2) Does (1) depend on UVM version ? i.e whether I am using UVM 1.1d or UVM 1.2
(3) Assuming that (1) is legal, how does user provide the hierarchy for the 2 components ?
i.e does UVM library consider the full hierarchical name ( i.e string ‘name’ argument “tc_mapr_scbd” & “tc_mapr_reg_mon” )
[ OR ] is it based on handle name ( tc_scbd & tc_reg_mon ) ?
i.e Should I pass
+uvm_set_verbosity=uvm_test_top.env.tc_mapr_scbd,_ALL_,UVM_DEBUG,run
[ OR ]
+uvm_set_verbosity=uvm_test_top.env.tc_scbd,_ALL_,UVM_DEBUG,run
(4) Can +uvm_set_verbosity be used for object types (associated with components) like ::
(a) Sequences started on particular sequencer
i.e to set verbosity for msgs fom sequence body() with starting signature ::
uvm_test_top.env.vseqr@@tc_mapr_init_seq
(b) Adapter passed as argument to 'set_sequencer' to register map of register block
// Within Env's build_phase() ::
tc_mapr_reg2axi = axi_ral_adapter::type_id::create("tc_mapr_reg2axi",this); // 2nd arg. is this
// Within Env's connect_phase() ::
tc_mapr_ral.default_map.set_sequencer( tc_mapr_vseqr , tc_mapr_reg2axi );
(5) My intention is to pass the command line argument using Makefile switches.
The expectation is when I don’t pass +uvm_set_verbosity1 & +uvm_set_verbosity2, the global verbosity should be used. Would the following work ?
##// Within the Makefile, what should be the default switches for uvm_set_verbosity1 & uvm_set_verbosity2
UVM_VERBOSITY ?= UVM_LOW
uvm_set_verbosity1 ?= *,_ALL_,$(UVM_VERBOSITY),run
uvm_set_verbosity2 ?= *,_ALL_,$(UVM_VERBOSITY),run
where the above switches are passed as run-time arguments to the tool ::
+UVM_VERBOSITY=$(UVM_VERBOSITY) +uvm_set_verbosity=$(uvm_set_verbosity1) +uvm_set_verbosity=$(uvm_set_verbosity2)
Is +UVM_VERBOSITY=UVM_LOW equivalent to +uvm_set_verbosity=*,_ALL_,UVM_LOW,run
?