Why Factory registration is not covering

in my coverage report why factory registration is not covering in all the classes i am facing same error,

please let me know which file/librerry we need to in clude in my project

uvm_component_utils / uvm_object_utils(component_name/object_name)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
r_xtn/get_object_type
0.00%
0.00%
 
r_xtn/get_type
0.00%
0.00%
 
w_agent_top/get_object_type
0.00%
0.00%
 
w_agent_top/get_type
0.00%
0.00%
 
w_agent/get_object_type
0.00%
0.00%
 
w_agent/get_type
0.00%
0.00%
 
w_monitor/get_object_type
0.00%
0.00%
 
w_monitor/get_type
0.00%
0.00%
 
w_sequencer/get_object_type
0.00%
0.00%
 
w_sequencer/get_type
0.00%
0.00%
 
w_driver/get_object_type
0.00%
0.00%
 
w_driver/get_type
0.00%
0.00%
 
w_xtn/create
0.00%
0.00%
 
w_xtn/get_object_type
0.00%
0.00%
 
w_xtn/get_type
0.00%
0.00%
 
env_config/__m_uvm_field_automation
0.00%
0.00%
 
env_config/get_type_name
0.00%
0.00%
 
env_config/create
0.00%
0.00%
 
env_config/get_object_type
0.00%
0.00%
 
env_config/get_type
0.00%
0.00%
 
r_config/__m_uvm_field_automation
0.00%
0.00%
 
r_config/get_type_name
0.00%
0.00%
 
r_config/create
0.00%
0.00%
 
r_config/get_object_type
0.00%
0.00%
 
r_config/get_type
0.00%
0.00%
 
w_config/__m_uvm_field_automation
0.00%
0.00%
 
w_config/get_type_name
0.00%
0.00%
 
w_config/create
0.00%
0.00%
 
w_config/get_object_type
0.00%
0.00%
 
w_config/get_type
0.00%
0.00%

In reply to uvm_verification:

These macros generate a lot of code inside your code that you may or many not actually use. (See a sample expansion here.

You most likely want to exclude this code from code coverage, and you certainly don’t wan to be running code coverage on the UVM base class library unless you are one of its developers.

Since this Mentor sponsored forum is not for discussing tool specific issues, please read your tool’s user manual or contact them for support.

In reply to dave_59:

In reply to uvm_verification:
These macros generate a lot of code inside your code that you may or many not actually use. (See a sample expansion here.
You most likely want to exclude this code from code coverage, and you certainly don’t wan to be running code coverage on the UVM base class library unless you are one of its developers.
Since this Mentor sponsored forum is not for discussing tool specific issues, please read your tool’s user manual or contact them for support.

Dear Sir,
how i will do factory ragistration without using(uvm_component_utils/uvm_object_utils) please tell me.

Thanks in Advance

In reply to uvm_verification:

My point was not suggesting that you avoid using the factory registration macros. It’s just that you might register classes with the factory, and then never perform a factory override. That code never gets covered. The factory also provides a number of different ways of performing overrides (i.e. by name or by type, etc), and you’ll never get 100% code coverage unless you use every possible feature in every possible way.

In reply to dave_59:

In reply to uvm_verification:
My point was not suggesting that you avoid using the factory registration macros. It’s just that you might register classes with the factory, and then never perform a factory override. That code never gets covered. The factory also provides a number of different ways of performing overrides (i.e. by name or by type, etc), and you’ll never get 100% code coverage unless you use every possible feature in every possible way.

Thaks Sir tuday I resolved this issue,
 
`uvm_component_utils / `uvm_object_utils(component_name/object_name)  

 in place of above macros we need to use :- 

           typedef uvm_component_registry#(component_name,"component_name") type_id;
           typedef uvm_object_registry#(object_name,"object_name") type_id;
 
 
 
 
 
           Thanks Dave sir
 

In reply to uvm_verification:
The question is what the value of these functional coverage items is. It is not related to the functionality of your DUT. Functional coverage is used to measure which functionality of your DUT you have stimulated. The number of overrides in your UVM testbench does not belog to these numbers. Finally you get a lot of useless functional coverage numbers which will lower your final functional coverage.

actually for total_coverage , code_coverage & functional_coverage both shoud be good thats why i would like to increase code coverage.

due to above factory problem total coverage was 65% but after resolvinf that issue total coverage is 89%.

In reply to uvm_verification:

Even 89% is very bad for code coverage. Again the coverage numbers are always focused on the DUT and not on the testbench. The testbench does not play a role in this game. The lines of code executed in the DUT have to be high and also the functional coverage for the DUT. You might fail with your verification when focusing too much on the testbench wrt to the coverage numbers.

In reply to chr_sue:

In reply to uvm_verification:
Even 89% is very bad for code coverage. Again the coverage numbers are always focused on the DUT and not on the testbench. The testbench does not play a role in this game. The lines of code executed in the DUT have to be high and also the functional coverage for the DUT. You might fail with your verification when focusing too much on the testbench wrt to the coverage numbers.

Sir my Function coverage is also 96%,
and DUT cover 97%

I hope that you will guide me further.

Thansk sir