Cross coverage exclude duplication

In reply to gidon:

I think this would be difficult to create as a single cross. I assume you are looking to have 124*256 individual bins. I would create an array of covergroup instances

covergroup cg(int idx1,idx2)

ab_idx: coverpoint (a == idx1 && b == idx2 || a == idx2 && b == idx1) {
   bins match = {1};
}
c_idx: coverpoint c {
    bins c_idx[] = {[0:123]};
}
cross_ab_c: cross ab_idx, c_idx;
endgroup


cg cg_h[256];
int dup= 0;

for(int i1=0;i1<16;i1++)
  for(int i2=0;i2<16;i2++)
     cg_h[dup++] = new(i1,i2);