Oops. I’m sorry. I’ve been carried away by the abc, xyz examples. Its actually the same coverpoint point, but not the same coverpoint expression. It’s like this.
bit [3:0] abc;
cp_abc1 : coverpoint abc{
bin1 = [1:4];
bin2 = [5:7];
bin3 = [8:10];
bin4 = [11:15];
}
cp_abc2 : coverpoint abc{
bin1 = [1:2];
bin2 = [3:5];
bin3 = [6:9];
bin4 = [10:15];
}
So, it’s all the values of abc divided into 8 categories (8 bins). And I need to collect coverage whenever there is a transition from a value in the range of [1:4] to a value in the range of [1:2] i.e something like [1:4] => [1:2] (this should be taken as 1 bin, instead it gives me 4x2 = 8 bins taking individual values in the range).
So, in this manner I need to get 4x4 16 bins,
like [1:4] => [1:2]
[1:4] => [3:5]
[1:4] => [6:9]
[1:4] => [10:15]
[5:7] => [1:2]
[5:7] => [3:5]
.
.
.
.
[11:15] => [10:15]
Sorry about the confusion. Thanks