Normally, functional coverage can be added in monitor and scoreboard.
Adding it in monitor to cover transaction
Adding it in socorboard to cover use case
//coverage
covergroup cov_a;
a_0: coverpoint tr.data ;
a_1: coverpoint tr.error;
a_2: coverpoint tr.addr
{ bins valid ={[32'h820000:32'h825fff]};
ignore_bins invalid = {[32'h826000:$]};
}
cross a_0,a_1;
endgroup
//new
cov_a = new();
//sample
cov_a.sample();
Default bin specification cannot be explicitly ignored.
ignore_bins invalid = default;