Different coverage report for different covergroup instance

In my recent work I have a requirement to gather coverage of 8 axi agents so my covergroup is one and its instances are 8. Now according to my requirement I need 100% coverage of each of the axi agent. Meaning if I am disabling one of the channel It should effect the overall coverage. I dont want the combined coverage I want individual coverage for each of the instance and coverage of all that instances should effect the overall coverage.

In reply to Ashutosh_jha:

Use the per_instance option of a covergroup.

In reply to dave_59:

Hi Dave So what happening is when I am using per_instance option=1 in my covergroup then coverage of instances get merged like for example:
covergroup cg;
feature1 :coverpoint a
{
bins n={0};
bins n1={1};
}
endgroup

For this I take 2 instance of cg as my two agents cg1 and cg2 during the sampling of cg1 the bin n of feature1 gets sampled and for sampling of cg2 bin of n1 of feature 1 gets sampled so coverage of cg1=50% and coverage of cg2=50% but since the I have used per_instance =1, it will do the union merging of the coverage and I will get overall coverage 100 % coverage. But my requirement says that it should be 50% because the two agent are separate and hence should not be merged.

In reply to Ashutosh_jha:

Use the get_inst_coverage option

In reply to saurabh_3:

Hi, Saurabh get_inst_coverage is not a option it is a method and I can use it to see the coverage of a instance that I can also see in the coverage report. So again what I want is to get a coverage report where over all coverage get effected by the coverage of each and every instance of the covergroup I dont want to perform union merging of the instance’s coverage I want to treat each instance’s coverage as separate. I have given a example in above post. If question is still not clear then let me know.

In reply to Ashutosh_jha:

In reply to saurabh_3:
Hi, Saurabh get_inst_coverage is not a option it is a method and I can use it to see the coverage of a instance that I can also see in the coverage report. So again what I want is to get a coverage report where over all coverage get effected by the coverage of each and every instance of the covergroup I dont want to perform union merging of the instance’s coverage I want to treat each instance’s coverage as separate. I have given a example in above post. If question is still not clear then let me know.

Generally we use it in this manner…

covergroup cg;
type_option.merge_instances = 1;
option.per_instance = 1;
option.get_inst_coverage = 1;
op_t: coverpoint addr;
op_r: coverpoint din;
endgroup

we can use it as a option also…

For your query,go through this paper → http://events.dvcon.org/2018/proceedings/papers/04_4.pdf

In reply to saurabh_3:

Thanks Saurabh the setting which worked for me was
options.per_instance=1;
type_option.merge_instances=0;

Also initially the reason I was getting merged instances coverage was because I had merge_instances set to 1.
Thanks to the paper you suggested I was able to figure out what configuration I need to fulfill my requirement.