Hi All ,
For the following code ::
bit [1:0] a , b ;
covergroup Covdst ;
a_cp: coverpoint ( a )
{
bins a0 = { 0 } ;
bins a1 = { 1 } ;
}
b_cp: coverpoint ( b )
{
bins b0 = { 0 } ;
bins b1 = { 1 } ;
}
x1: cross a_cp , b_cp
{
bins a0b0 = binsof( a_cp.a0 ) && binsof( b_cp.b0 ) ;
bins def = default ; // Avoiding all other cross
}
endgroup
// Instantiate covergroup here as part of handle declaration itself .
I observe compilation error with the above code .
However on checking the LRM I don’t see default bins being termed as illegal when used within cross .
LRM mentions examples using bins / ignore_bins / illegal_bins within cross as legal
( wildcard bins within cross works as well although LRM doesn’t have examples for it )
Have 3 questions in mind ::
(1) Is default illegal within cross ? If yes why is it so ? ( I expected LRM to mention this )
(2) Any work-around for above scenario ?
The above code has 4 cross possible , however my project has 80 cross products
out of which I am interested in 2-3 .
(3) Within cross when defining user-defined bins , is the user limited to use only Select Expressions ( binsof( ) / !binsof( ) ) on right side ?
Thanks.