Crossing cross coverage points

Is it possible to form a cross coverpoint using other cross coverpoints in the same covergroup? I want to do this so I can define the illegal crosses within the respective individual cross coverpoints which then need to be crossed with potentially more cross coverpoints.

If this is possible, can you provide syntax for referencing the individual cross points within the larger cross points (ie how binsof() would work).

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

In reply to Naven8:

Not really related to this, but how would I specify a bin in the cross that covers only the bins I explicitly state. Lets say i’m crossing 3 coverpoints and I want to create a cover point containing including all values of 2 of the coverpoints but still crossed with the third coverpoint. So I end up with a user-generated bin that is auto-crossed with one of the coverpoints in the cross.