Hi
I like to know if they are any differences between below bins
bins a = (3[*3:5]);
bins b[ ] = (3[*3:5]);
So my doubt is ‘bin a’ will have only one bin when they are the transition from 3=>3=>3 or 3=>3=>3=>3 or 3=>3=>3=>3=>3 So if anyone occurs bin will be hit
What about bin b is it like 3 bins will be created b[1] for 3=>3=>3, b[2] for 3=>3=>3=>3, b[3] for 3=>3=>3=>3=>3 ?
Note in your particular case, bin a is set as soon as there are three repetitions of the value “3”. Bin a is already 100% covered by the the time you get to the 4th and 5th repetitions. And bin b requires 5 repetitions to get 100% coverage of the bin.
Wanted to confirm a few things regarding the above code and transition bins in general :
The Index nomenclature for dynamic / multiple bins ( via [ ] ) is undefined as per LRM .
So tools would have their own interpretation for indexes for the 3 bins of b .
Tool1 may name it b[1] , b[2] and b[3] ,
tool2 may use b[3=>3=>3] , b[3=>3=>3=>3] and b[3=>3=>3=>3=>3] while others may simply name it as b[0] , b[1] and b[2] .
For scenario where the sample transition is 3 3 3 3 3 i.e 5 continuous 3 ,
bin a is hit ONLY once on 3rd occurrence of 3
bin b[0] / b[1] / b[3=>3=>3] is hit on 3rd occurrence of 3
bin b[1] / b[2] / b[3=>3=>3=>3] is hit on 4th occurrence of 3
bin b[2] / b[3] / b[3=>3=>3=>3=>3] is hit on 5th occurrence of 3 . For 6 consecutive occurrences of 3 , both bins a and bin b[0] / b[1] / b[3=>3=>3] would be hit twice.
For transitions bins , is usage of ’ $ ’ illegal based on BNF definition ?
Eg : bins a = ( 3[*3:] ); // Max value of coverpoint variable
bins b = ( 3[*:2] ); // Min value of coverpoint variable