sv杂谈-双向约束、->、solve before

1.双向约束强调的是各个约束块之间执行的过程是并行的,也就是最终的结果是A约束块和B约束块综合出来的结果。

2.->强调的是前后两个值之间的约束关系,比如:

(x == 0) -> (y == 0);//x=0,1;y = 0,1,2,3

(1)当x = 0的时候y一定为0;(2)当x != 0的时候,y的值随意;(3)当y == 0的时候,x值是随意的;(4)当 y != 0的时候,x一定不为0;

总结就是x为0的时候y一定为0

需要注意的是,->和if==约束中使用if else语句看起来似乎是有先后条件的,但是实际上他仍然是并行执行的,也就是x和y的值是同时确定的,但是在确定的时候是需要满足约束的

sv杂谈-双向约束、->、solve before_第1张图片

3.solve before在->的基础上会增加随机的先后条件,比如solve a before b表示的是先确定了a,再来确定b

sv杂谈-双向约束、->、solve before_第2张图片

使用solve before不能是randc型,且变量需要是整数值

你可能感兴趣的:(杂谈,开发语言)