1、->运算符
expression_a->expression_b其实等效于(!expression_a || expression_b),systemverilog中利用 || 运算的短路运算功能,即当!expresstion_a=ture(语句expression_a=false)时不执行expression_b。
运用:在constraint中
mode == little -> len < 10;
这个就等效于
if(mode==little){
len < 10;
}
即只有mode==little的时候才约束len小于10
2、soft
约束中使用到,修饰为soft的约束,可以被覆盖
如果最初约束是这样的:a == 10;如果后续又约束a == 11;那么会报错,因为这两个约束没法求解。
但是最初约束是这样的:soft a == 10;后续又约束a == 11;那么就不会报错,随机数据时以后续约束 为准,即约束a==11;