For SVA the following sequence :: *Sig1 |=> Sig2[0:4] is Legal
However when I use the following code in Functional Coverage ::
bit a , b ;
covergroup cg ;
coverpoint {a,b}
{
bins a_to_b = ( 2'b11 => 2'b10[*0:5] => 2'b00 ) ; // Compilation Error here
}
endgroup
cg cg1 = new();
The error message I observe is :: Illegal value 0 specified in repeat min/max field of a transition in bin
a_to_b of coverpoint {a, b} in covergroup Transition::cg.
Covergroup Instance: cg1
I tried looking in LRM which simply states ::
Consecutive repetitions of transitions are specified using:
trans_item [* repeat_range ]
It doesn’t explicitly state whether value of 0 is Illegal as such .
Transition bin specifications of length 0 shall be illegal. These are transition bin specifications containing a
trans_set production of a single covergroup_value_range, e.g., (0) or ([0:1]), or a single
covergroup_value_range with a repeat_range evaluating to 1, e.g., (0[*1]) or ([0:1][*1]).