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