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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM