systemverilog中奇怪的语法

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;

猜你喜欢

转载自www.cnblogs.com/yuandonghua/p/11983592.html