2017-04-17 74 views
-1
class Base 
rand bit b; 
// constraint c1 { every 5th randomization should have b =0;} 
endclass 

我知道我可以做一个静态计数变量和更新次数变量,然后在约束我可以检查是否计数%5为零,则使B = 0,但有没有更好的方法来做到这一点?谢谢。SystemVerilog的约束,固定值每n次迭代

+1

发布您将使用的实际代码。然后,人们可以提供更好的方式,如果有的话。 – toolic

+0

刚才在采访中被问到。 –

回答

0

有没有必要计算静态,只是非随机。

​​
+0

谢谢@ dave_59。你可以让我知道如何计数是非静态成员将由该类的所有实例共享?提前致谢。 –

+0

您在原始问题中未指定您是否计划重复随机化一个对象,或者创建许多对象将其随机化一次。对于后者来说,计数需要是静态的。 –

+0

谢谢@ dave_59。 –

-1

如果你知道b的上限,那么你可以写一个约束如下。

constraint abc 
{ 
    b dist {0:=20, 1:=80} 
} 

这会使减肥的020和重量的180。所以以这种方式,每5次随机化就会发生一次0。

+0

这是不正确的。具有1/5的概率与每5次出现一次并不相同, –

+0

因此,您的意思是说,并不能保证工具每过5次随机生成一次就会产生0次上述约束? –

+1

正确。概率不是保证。 –