Regarding how to declare bins for unpacked array variables

In reply to dave_59:

Hello,
First of all thanks for your reply.

See I have an output signal which is an unpacked array type. i.e. logic [7:0]OP[3:0][4080:0];
for this output signal I am not able to declare bins.
I have tried to pack this array(using do pack function) and then declare the bins but it is not working.

I am using do pack function as
function void do_pack(uvm_packer packer);
otn_trans t1;
super.do_pack(packer);
packer.pack_field_int(t1.op, $bits(t1.op));
t1.op.do_pack(packer);
endfunction : do_pack

It was showing error

  1. Field/method name (do_pack) not in ‘op’
  2. Arg. ‘value’ of ‘pack_field_int’: Illegal assignment to type ‘reg[63:0]’ from type ‘reg[7:0] $[3:0][4080:1]’: Cannot assign an unpacked type to a packed type.
  3. Bit stream casting is only allowed on same size data.

Do you mean for each ROW and COLUMN I have to declare different cover group?
Is there any in built function which help to cast an unpacked expression to integral expression?