In my environment, I have written coverage for transaction class fields. I want some of those coverpoint to cross with some of RAL coverage coverpoints. As they are different covergroup, I am not able to sample data and report shows 0% coverage for cross.
// Coverage for transaction
covergroup cg_trans(trans trans_inst);
cp_a1 : trans_inst.a1;
endgroup
// Cross of transaction coverage and ral coverage
covergroup cross_ral(cg_trans cg_trans_inst, ral_model ral_cov);
cp_cross : cg_trans_inst.cp_a1, ral_cov.cg_vals.cp_var1;
endgroup
// Coverage class
class trans_coverage extends uvm_componet;
ral_model cov_ral;
cg_trans cg_trans_inst;
trans trans_inst;
cross_ral cross_ral_inst
function new(string name, uvm_componet parent=null);
super.new(name,parent);
trans_inst = new();
// Getting ral through config db
cg_trans_inst = new(trans_inst);
cross_ral_inst = new(cg_trans_inst, cov_ral);
endfunction
endclass
Can I do this way? How to sample data fpr cross_ral such that I can get coverage?