Here is the covergroup in question:
covergroup valid_pix_cvg();
ADDRESS_IZQ : coverpoint valid_pix_address_izq {
bins pix_addr_izq = {`__REG_AU_IZQ_ADDR};
}
ADDRESS_DER : coverpoint valid_pix_address_der {
bins pix_addr_der = {`__REG_AU_DER_ADDR};
}
VALUE_IZQ : coverpoint valid_pix_value_izq {
bins valid_pix_one = { 1 };
bins valid_pix_6000 = { 6000 };
bins valid_pix_between = { [2:6000] };
bins valid_pix_great = { [6001:$] };
}
VALUE_DER : coverpoint valid_pix_value_der {
bins valid_pix_one = { 1 };
bins valid_pix_6000 = { 6000 };
bins valid_pix_between = { [2:6000] };
bins valid_pix_great = { [6001:$] };
}
CRS_PIX : cross VALUE_IZQ, VALUE_DER {
bins pix_1 = binsof(VALUE_IZQ.valid_pix_one) && binsof(VALUE_DER.valid_pix_one);
bins pix_6000 = binsof(VALUE_IZQ.valid_pix_6000) && binsof(VALUE_DER.valid_pix_6000);
bins pix_full = binsof(VALUE_IZQ.valid_pix_one) && binsof(VALUE_DER.valid_pix_6000);
bins pix_grt_der = binsof(VALUE_IZQ.valid_pix_between) && binsof(VALUE_DER.valid_pix_between);
bins pix_grt_izq = binsof(VALUE_IZQ.valid_pix_great) && binsof(VALUE_DER.valid_pix_great);
bins pix_grter = binsof(VALUE_IZQ.valid_pix_great) && binsof(VALUE_DER.valid_pix_between);
bins pix_valid = (binsof(VALUE_IZQ.valid_pix_between) && binsof(VALUE_DER.valid_pix_between)) with (VALUE_IZQ < VALUE_DER);
bins pix_valid_eq = (binsof(VALUE_IZQ.valid_pix_between) && binsof(VALUE_DER.valid_pix_between)) with (VALUE_IZQ == VALUE_DER);
bins pix_inv = (binsof(VALUE_IZQ.valid_pix_between) && binsof(VALUE_DER.valid_pix_between)) with (VALUE_IZQ > VALUE_DER);
}
endgroup : valid_pix_cvg
When running the simulation we get the following two warnings:
** Warning: (vsim-8560) On evaluating the select expression of Cross bin ‘CRS_PIX.pix_valid’ in Covergroup instance '/LogicPackage::EBICoverage::valid_pix_cvg ', the bin is found to be empty since no cross products are selected.
Time: 0 ps Iteration: 12 Region: /uvm_pkg::uvm_phase::m_run_phases
** Warning: (vsim-8560) On evaluating the select expression of Cross bin ‘CRS_PIX.pix_inv’ in Covergroup instance '/LogicPackage::EBICoverage::valid_pix_cvg ', the bin is found to be empty since no cross products are selected.
And neither of those two bins appear in the covergroup window of the simulation when done. We suspect the problem to be the use of the < and > in the with expression. But we need that the cross coverpoint where VALUE_IZQ is valid_pix_between and VALUE_DER is valid_pix_between and the VALUE_IZQ < VALUE_DER. How can we accomplish this?