How to define cross coverage for the selected range

In reply to dave_59:

OK, this is the most compact way to get the exact bins you are looking for with the information you have provided.

covergroup cg;
      a: coverpoint v_a { bins a[] = {[2:27]}; }
      b: coverpoint v_a { bins b[] = {[2:27]}; }
      c1: cross a,b
	{ignore_bins ib = ! binsof(a) intersect {[2:5]} || ! binsof(b) intersect {[3:6]};}
      c2: cross a,b
	{ignore_bins ib = ! binsof(a) intersect {[6:8]} || ! binsof(b) intersect {[7:10]};}
      c3: cross a,b
	{ignore_bins ib = ! binsof(a) intersect {[9:15]} || ! binsof(b) intersect {[11:15]};}
      c4: cross a,b
	{ignore_bins ib = ! binsof(a) intersect {[16:27]} || ! binsof(b) intersect {[16:27]};}
   endgroup // cg