How to create the cover group's bins that based on array's values

In reply to faigenboim:
You can pass a handle as a covergroup argument.


typedef class my_component;
covergroup fxp_reg_access_cg(my_component handle, string maps_name, uvm_reg_addr_t maps_base, uvm_reg_addr_t maps_size) with function sample(uvm_reg_addr_t address );
        accesse_blocks_cp : coverpoint handle.get_block(apb_transaction.address) {
...
endgroup
class my_component;
  virtual function void start_of_simulation_phase(uvm_phase phase);
        super.start_of_simulation_phase(phase);
        fxp_reg_access_cg = new(cfg.maps_name);
        foreach (cfg.maps_name[i])
            maps_cg[i] = new(this, cfg.maps_name[i], cfg.maps_base_addr[i], cfg.maps_end_addr[i], cfg.maps_num_of_bins[i]);
    endfunction : start_of_simulation_phase
...
endclass