1.randomization topics
constrained :受约束的
protocol:协议
2.randomization in SV
keyword:rand
keyword:randc,循环变量,只能用于bit型和enum型
所有值每次是乱序出现的,但是每个值都会出现。
constraint:不能重复且许合法
randomize() function是有返回值的。
相同的seed会有相同的随机值。
constraint 由constraint identifier和constraint block构成。只有rand及其相关变量constraint才是有效的。
inside:范围约束
权重分布:dist
如{a sinsdie {0,1 ,1,1,1,1}}可以简化为{a dist {0:=1,1:=5}}。
上图是:= 和:/的区别,[1:3]:/60表示1-3供出现60次,每个出现20次;[1:3]:=60表示1-3各出现60次,共180次。
上图示例
约束不是过程语句,并非一句一句的执行,而是声明语句,编译的时候就确定了。
->和if…else可以相互替换。
上三图均为示例。
solve…(y)before (x):在处理x之前先处理y。
iterative:重复的
SV允许约束表达式包含function calls;
关掉随机变量:rand_mod()。
关掉随机变量的约束:constraint_mode()。