SUNODH
December 6, 2022, 4:21pm
1
Hi,
I am trying to understand the difference between the below cover-point bins

```
coverage cg;
cp1 : coverpoint { bins a[4] = {[1:10],11,13,15};}
cp2 : coverpoint { bins a[ ] = {[1:10],11,13,15};}
```

what I know is here for both cp1 and cp2 , 4-cover bins are created, I have confused about how these values are spread out among 4 bins ?
And Is they are any method like a display statement to check bins it created for our coverpoint during simulation?

Please help me with this…

Thanks & Regards
Sunodh

In reply to SUNODH :

SystemVerilog-2017 LRM Section 19.5.1 explains the value distribution

For fixed bins the 13 values are distributed within 4 bins as :: <1,2,3>, <4,5,6>, <7,8,9>, <10,11,13,15>

For the 2nd case 13 bins are generated , 1 bin for each value from 1:10 , 11 , 13 , 15 .

Is they are any method like a display statement to check bins it created for our coverpoint during simulation?

As per my understanding one would have to generate coverage report ( html or text format ) to observe the bins generated .

SUNODH
December 7, 2022, 7:52am
3
In reply to MICRO_91 :

Thank you for answering
So my understanding is for fixed bins we need to calculate
no.values/bins then round of value and according to that evenly distribute bins
is below bins distribution is correct

```
bins a[5] = {[1:10],11,13,15} :: <1,2,3>,<4,5,6>,<7,8,9>,<10,11,13>,<15>
bins a[6] = {[1:10],11,13,15} :: <1,2>,<3,4>,<5,6>,<7,8>,<9,10>,<11,13,15>
```

Please correct me if i wrong

Thanks

In reply to SUNODH :

That’s partially correct . There is no rounding off , only integer part is considered .

```
bins a1[5] = {[1:10],11,13,15};
bins a2[6] = {[1:10],11,13,15};
```

a1 has 5 bins divided amongst 13 values .

( 13 / 5 ) == 2 ( integer part only ) .

So each bin will cover 2 values except the last bin which would simply cover the remaining values

```
bins a1[5] = {[1:10],11,13,15} :: <1,2>,<3,4>,<5,6>,<7,8>,<9,10,11,13,15>
```

Will leave a2 for you to try

SUNODH
December 7, 2022, 10:19am
5
In reply to MICRO_91 :

Hi

Thank for clearing it
for a[6] it will be 13/6 == 2
so for 6 bins we have 2 values each

```
bins a[6] = {[1:10],11,13,15} :: <1,2>,<3,4>,<5,6>,<7,8>,<9,10>,<11,13,15>
```

Thanks

In reply to SUNODH :

so for 6 bins we have 2 values each

Correction : Last bin has 3 values whereas remaining bins cover 2 values each