In reply to amsaveni.c:
You need to provide the path to each specific agent in your uvm_config_db#()::set instead of using a wildcard “*”. You can quickly find out what the paths should be by commenting out the set() statements and seeing the path generated by get_full_name in the `uvm_fatal message.
top module:
gen_if intf [4]();
gen_if ch_if();
for(genvar i=0;i< 4;i++)
initial uvm_config_db#(virtual gen_if)::set(null,
$sformatf("uvm_top_test.MyEnv.MyAgent%0d",i),
"vif",
intf[i]);
initial uvm_config_db#(virtual gen_if)::set(null,"uvm_top_test.MyEnv.MyAgent4","vif",ch_if);