class Base
rand bit b;
// constraint c1 { every 5th randomization should have b =0;}
endclass
我知道我可以做一个静态计数变量和更新次数变量,然后在约束我可以检查是否计数%5为零,则使B = 0,但有没有更好的方法来做到这一点?谢谢。SystemVerilog的约束,固定值每n次迭代
class Base
rand bit b;
// constraint c1 { every 5th randomization should have b =0;}
endclass
我知道我可以做一个静态计数变量和更新次数变量,然后在约束我可以检查是否计数%5为零,则使B = 0,但有没有更好的方法来做到这一点?谢谢。SystemVerilog的约束,固定值每n次迭代
有没有必要计算静态,只是非随机。
谢谢@ dave_59。你可以让我知道如何计数是非静态成员将由该类的所有实例共享?提前致谢。 –
您在原始问题中未指定您是否计划重复随机化一个对象,或者创建许多对象将其随机化一次。对于后者来说,计数需要是静态的。 –
谢谢@ dave_59。 –
如果你知道b
的上限,那么你可以写一个约束如下。
constraint abc
{
b dist {0:=20, 1:=80}
}
这会使减肥的0
到20
和重量的1
到80
。所以以这种方式,每5次随机化就会发生一次0。
这是不正确的。具有1/5的概率与每5次出现一次并不相同, –
因此,您的意思是说,并不能保证工具每过5次随机生成一次就会产生0次上述约束? –
正确。概率不是保证。 –
发布您将使用的实际代码。然后,人们可以提供更好的方式,如果有的话。 – toolic
刚才在采访中被问到。 –