In reply to Shashank Gurijala:
Q1. Why can we not assign fixed size array to transition bins?
This is the error compiler throws: Fatal: (vsim-8541) A fixed-size array transition bin ‘d4’ is found in Coverpoint ‘c1’ of Covergroup instance '/transition_bins/#ublk#243269587#33/c '. It is illegal to have such fixed-szie array transition bin per LRM.
Time: 0 ns Iteration: 0 Process: /transition_bins/#INITIAL#35 File: transition_bins.sv
Can you share the code ?
Q2. Why can we not assign a dynamic array to a non-consecutive transition bin?
Here is the sample: bins d8 = (12 => 15[=3] => 10);
Here is the error it throws: Fatal: (vsim-8568) Unbounded or undetermined varying length sequences formed using Repetitive/Consecutive operators are not allowed in unsized Array Transition bins. A transition item in bin ‘d8’ of Coverpoint ‘c1’ in Covergroup instance '/transition_bins/#ublk#243269587#33/c ’ has an operator of kind ‘[= ]’. Please fix it.
Thanks in advance.
// This is unbounded length sequence (12...=>15...=>15...=>15...=> 10).
// so using [] won't allowed
bins d8[] = (12 => 15[=3] => 10); // 12...=>15...=>15...=>15...=> 10
//Few examples
bins d8[] = (12 => 15[=3] => 10); //Not valid as unbounded length sequence (12...=>15...=>15...=>15...=> 10)
bins d8[] = (12 => 15[->3] => 10); //Not valid as unbounded length sequence (12...=>15...=>15...=>15=>10)
bins d8[] = (12 => 15[*3] => 10); //Valid as bound length sequence (12=>15=>15=>15=>10)
bins trans_3[] = (3[*3:5]); //Valid as bound length sequence 3=>3=>3, 3=>3=>3=>3, 3=>3=>3=>3=>3
bins d8[] = (12 => 15[*3:5] => 10); //Valid as bound length sequence
//(12=>15=>15=>15=>10), (12=>15=>15=>15=>15=>10), (12=>15=>15=>15=>15=>15=>10)