class Base
rand bit b;
// constraint c1 { every 5th randomization should have b =0;}
endclass
我知道我可以创建一个静态计数变量并更新该计数变量然后,在约束中我可以检查计数%5是否为零,然后使b = 0,但是有更好的方法吗?感谢。
答案 0 :(得分:0)
没有必要将计数设为静态,只是非随机。
class Base;
rand bit b;
int count;
constraint c1 { count%5 -> b==0;}
function post_randomize();
count++;
endfunction
endclass
答案 1 :(得分:-1)
如果你知道b
的上限,那么你可以写一个像下面这样的约束。
constraint abc
{
b dist {0:=20, 1:=80}
}
这会使0
到20
的权重和1
到80
的权重。所以这样,每5次随机化就会出现0次。