Does cross coverage create auto bins even if i declare few user defined bins?

x: coverpoint a
{ bins hi = {1};
bins low = {0};
}

y: coverpoint b
{ bins hi = {1};
bins low = {0};
}

z: cross x, y
{ bins valid = binsof(x.hi) && binsof(y.hi); //other that this bin, all other combination should be illegal. So,
illegal_bins invalid = !binsof(x.hi) || !binsof(y.hi);
}

In the coverage report for cross x, y, it said, 1 user defined bin created and 3 auto-bins created.and no illegal bins were created.

So what does it mean?

  1. Does cross create all possible bins?
  2. Does cross don’t support illegal_bins?
  3. Or is it not supposed to happen this way?

In reply to Suhas BV:

According to 19.6.1 Defining cross coverage bins:

User-defined cross bins and automatically generated bins can coexist in the same cross. Automatically generated bins are retained for those cross products that do not intersect cross products specified by any user-defined cross bin.

This is why you’re seeing both the user generated bin and auto bins. All crosses will get created.

Illegal bins should be allowed. I don’t get why it’s not working for you. Tool issue?