peter1
February 13, 2023, 3:00pm
1
Hi All,
I want to check pattern looks like (2=>3=>…=>2=>3), where 2=>3 repeats two times.
I created the bin like that, but it does not work. Do you have some suggestions?
Thank a lot!
coverpoint data{
bins d2 = (2=>3=>!2[*0:50]=>2=>3);
}
dave_59
February 13, 2023, 6:40pm
2
In reply to peter :
‘!’ is a logical not, sop ‘!2’ is ‘0’, not sure if that is what you want.
You can do
bins d2 = (2=>3[=2]);
Which is nonconsecutive repetition 2=>3…=>2=>3. But there is no way to set a limit between repetitions
In reply to dave_59 :
Hi Dave ,
For the following :
bins d2 = (2=>3[=2]);
Won’t bin d2 be covered if the sampled values were :: 2 3 1 3 ?
One possible solution for the requirement :
// Assuming coverpoint ' data ' is 3-bit variable
wildcard bins transitn = ( 2 => 3 => 3'b?[*0:50] => 2 => 3 );
ignore_bins ig_trans = ( 2 => 3 => 2[*1:50] => 2 => 3 );
Bin tranitn would be covered if the sampled values were ::
2 3 1 2 3
2 3 2 3
*One of the tools throws compilation error for [0] which I believe is incorrect
Error-[FCITRV] Illegal repeat value in transition
Illegal value 0 specified in repeat min/max field of a transition in bin transitn of coverpoint data
This can be bypassed using ::
wildcard bins transitn = ( 2 => 3 => 2 => 3 ) , ( 2 => 3 => 3'b?[*1:50] => 2 => 3 );
A Note for future reference : ’ $ ’ can’t be specified as upper bound i.e following is illegal :
wildcard bins transitn = ( 2 => 3 => 2 => 3 ) , ( 2 => 3 => 3'b?[*1:$] => 2 => 3 );
peter1
February 17, 2023, 1:07am
4
In reply to dave_59 :
Hi Dave
bins d2 = (2=>3[=2])
Does it just cover 2=>3…=>3, not 2=>3…=>2=>3?
Thank you!