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?