使用SystemVerilog進(jìn)行模擬更容易生成隨機(jī)數(shù),對(duì)隨機(jī)數(shù)的可控性更強(qiáng)。對(duì)于隨機(jī)變量,可以在SystemVerilog中用rand或randc plus數(shù)據(jù)類型定義。Rand表示變量是隨機(jī)變量,在指定范圍內(nèi)服從均勻分布。在rand的基礎(chǔ)上,randc要求當(dāng)生成的隨機(jī)數(shù)在指定范圍內(nèi)完成一次遍歷時(shí),它會(huì)重復(fù)遍歷,C是循環(huán)的。聲明隨機(jī)變量后,需要通過(guò)約束來(lái)限制隨機(jī)數(shù)需要滿足的條件。這些都需要在類中聲明。
案例1:創(chuàng)建小于數(shù)字《大于號(hào)》小于或等于數(shù)字《= 大于等于號(hào)》=
代碼如下圖所示。代碼的第6行定義a0必須小于3,第7行定義a1必須大于2且小于7。請(qǐng)注意,這四個(gè)關(guān)系運(yùn)算符不能連接在一起。例如,代碼的第8行是非法的。第16行代碼實(shí)例化類,第20行代碼為類對(duì)象分配內(nèi)存空間,完成類對(duì)象的初始化。代碼的第22行用來(lái)判斷隨機(jī)數(shù)是否生成成功,如果生成成功則返回1;否則,它將返回0。