Passing multiple variable to a single coverpoint

In reply to dave_59:

In reply to KumarSunilB:
Can you explain why you think you want to have one coverpoint with two bins instead of two coverpoints with one bin?

Good question :-)

Actually I have a total of 8 variables in a class

4 for source
4 for destination

I wanted 4 bins for source variables, each bin is a unique function of all the src variables.
I wanted 4 bins for destination variables, each bin is a unique function of all the destination variables.

I wanted to cover the cross of the 4 source and 4 destination bins

Here is the intent below

cov_src : coverpoint ???? {
                                bins s_1 = f1(src_1, src_2, src_3, src_4);
                                bins s_2 = f2(src_1, src_2, src_3, src_4);
                                bins s_3 = f3(src_1, src_2, src_3, src_4);
                                bins s_4 = f4(src_1, src_2, src_3, src_4);
                           }

cov_dst : coverpoint ???? {
                                bins d_1 = g1(dst_1, dst_2, dst_3, dst_4);
                                bins d_2 = g2(dst_1, dst_2, dst_3, dst_4);
                                bins d_3 = g3(dst_1, dst_2, dst_3, dst_4);
                                bins d_4 = g4(dst_1, dst_2, dst_3, dst_4);
                           }


cov_src_dst_cov : cross cov_src, cov_dst;