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;