Cross coverage binsof construct

Hello! Look at the below code:


c1: coverpoint addr {
							  
  bins a1    =  {0,1,2,3};
							  
  bins a2[]  =  {[4:7]};
							  
  bins a3[2] =  {[5:8],[9:11],12};
						  
  bins a4[]  =  {[13:$]};
							 
  bins a5[]  =  (0 => 6[*2] => 10);
                        
                      }

c2: coverpoint data {
		
   bins d1[]   =  {0,1,2,3,4,5};
							  					  
   bins d2[2]  =  {[6:15],[16:30]};
						
   bins d3     =  {[31:50]};
							 
   bins d4[]   =  {51,52,53,54,55,[56:100]};
					
   bins d5     =  {[100:$]};
							  
   bins d6     =  (55 => 10 => 12,18 => 10[=3]); 
							  
	  }


c3: cross c1,c2 {
                   
    bins ad12   =   binsof(c1.a1) && binsof(c1.a2); 							  
					
    bins ad13   =   binsof(c1.a1) && binsof(c1.a3); 							  
							   
    bins ad14   =   binsof(c1.a1) && binsof(c1.a4); 							  
							   					  
    bins ad15   =   binsof(c1.a1) && binsof(c1.a5);			  
							  
    bins ad16   =   binsof(c1.a1) && binsof(c2.d1); 		   					  
	
    bins ad17   =   binsof(c1.a1) && binsof(c2.d2);
		   		
    bins ad18   =   binsof(c1.a1) && binsof(c2.d3); 			  
							  
    bins ad19   =   binsof(c1.a1) && binsof(c2.d4); 
		
    bins ad20   =   binsof(c1.a1) && binsof(c2.d5); 			  
							  
    bins ad21   =   binsof(c1.a1) && binsof(c2.d6);							  
		
    bins ad22   =   binsof(c1.a1) || binsof(c1.a2);
				
    bins ad23   =   binsof(c1.a1) || binsof(c1.a3);
							  
    bins ad24   =   binsof(c1.a1) || binsof(c1.a4);
	
    bins ad25   =   binsof(c1.a1) || binsof(c1.a5);
					
    bins ad26   =   binsof(c1.a1) || binsof(c2.d1);
							  							  
    bins ad27   =   binsof(c1.a1) || binsof(c2.d2);
							  
    bins ad28   =   binsof(c1.a1) || binsof(c2.d3);
			
    bins ad29   =   binsof(c1.a1) || binsof(c2.d4);
				
    bins ad30   =   binsof(c1.a1) || binsof(c2.d5);
							          							  
    bins ad31   =   binsof(c1.a1) || binsof(c2.d6);

       }

In the covegroup tab, cross bins ad12,ad13,ad14,ad15 are not created at all where as bins ad22,ad23,ad24,ad25 are created. WHY?

In reply to Shashank Gurijala:

There are no bin values where binsof(c1.a1) AND binsof(c1.a2) would both be hit.

In reply to dave_59:

Hi Dave!

Then shouldn’t the covergroup tab show the bin and it’s coverage as 0% instead of omitting it completely?

In reply to Shashank Gurijala:

Coverage of any named bin (coverpoint or cross) is (number_of_bins_hit)/(total_bins_in_set)

An empty bin set would be 0/0. You should have received a message saying the bin was eliminated.

In reply to dave_59:

Hey Dave!

I changed the bins a2 = {[0:7]}; and still the binsof(c1.a1) AND binsof(c1.a2) bin is not created.

Also, I tried to check for the message which would tell me the bins that were ignored / eliminated and I couldn’t find it.

I use Questa Sim 10.7c

Can you please help me finding the message?

Thanks!

In reply to Shashank Gurijala:

???