随机函数
1.pre_randmosize() 和post_randmosize
- 有时需要在定义randmosize之前或之后立即执行一些操作,例如在随机前设置类型的一些非随机变量(上下限,条件值),或者在随机化之后需要计算随机数据的误差,分析与记录随机数据等。
- Sv中预定义的两个void类型函数。用户可以在类中定义这两个函数,分别定义随机化前和随机化后的行为。
- 如果某个类中定义了pre_randmosize()和post_randmosize()函数,那么对象在执行了randmosize()之前或者之后会分别执行这两个函数。所以,这俩函数可以看做是randmosize()的回调函数。
2.随机数函数
r
a
n
d
o
m
(
)
,
random(),
random(),random(),$urandom_range()
下面是一个例子:
class rising;
byte low; //非随机化变量
rand byte med ,hi;//随机化变量
constraint up
{low < med; med <hi}
endclass
initial begin
rising r;
r = new();
r.randmosize();//随机化med ,hi;但不改变low
r.randmosize(med); //只随机化med
r.randmosize(low); //只随机化low
end