Sampling Cross Products Even when One Of The Cross_item Is Unknown/High Impedence

cover_cross ::= // from A.2.11
[ cross_identifier : ] cross list_of_cross_items [ iff ( expression ) ] cross_body
list_of_cross_items ::= cross_item , cross_item { , cross_item }
cross_item ::= cover_point_identifier| variable_identifier

The Setup,

covergroup cg_test;

//data_1 and data_2 =>  reg [3:0] data_1, data_2;
cp_data_1 : coverpoint data_1;
cp_data_2 : coverpoint data_2;  

cp_cross_data_1_x_data_2 : cross data_1, data_2;

endgroup: cg_test

Assuming,
data_1 is updated with different value i.e. != 'x (which is default due to reg declaration).
And data_2 is always 'x.

data_1 = 'd0 (sample) 'd1 (sample) 'd2 (sample) 'd3 (sample) … 'd14 (sample) 'd15 (sample)
data_2 = 'xd (sample) 'dx (sample) 'dx (sample) 'dx (sample) … 'dx (sample) 'dx (sample)

Outcome:

  • cp_data_1 : 100% (16/16)
  • cp_data_2 : 0% (0/16)
  • cp_cross_data_1_x_data_2 : 0% (0/256)

My Requirement:

data_1 = 'd0(sample)'d1(sample)'d2(sample)'d3(sample)…'d14(sample)'d15(sample)'dx(sample)
data_2 = 'xd(sample)'dx(sample)'dx(sample)'dx(sample)…'dxx(sample)'dxx(sample)'dx(sample)
cg_any = ____ hit________hit_______hit_______hit___________hit_________hit_______not_hit


//There is data(not 'x) on either data_1 or data_2
//The scenario mentioned above in assumption, covers this condition.
cg_any : //Please suggest code for this.