In reply to atomiccow:
Yes. You can do cross with another cross group.
covergroup cg;
c0: coverpoint addr {
bins c00 = {10};
bins c01 = {20};
}
c1: cross addr,data{
bins c10 = binsof(addr.c00);
bins c11 = binsof(addr.c01);
bins c12 = binsof(data) intersect {100};
}
c2: cross c1,inst{
bins c20 = binsof(c1.c10) || binsof(c1.c11);
bins c21 = binsof(c1.c12);
}
endgroup