天津做網(wǎng)站要多少錢(qián)廣州網(wǎng)站優(yōu)化關(guān)鍵詞排名
一、概述
我們進(jìn)行FPGA開(kāi)發(fā)的過(guò)程中在做仿真的時(shí)候,難免會(huì)需要一些數(shù)據(jù)作為輸入。有的時(shí)候需要輸入大量的數(shù)據(jù)對(duì)于設(shè)計(jì)結(jié)果進(jìn)行一個(gè)驗(yàn)證,如果逐個(gè)去進(jìn)行輸入,就需要花費(fèi)大量的時(shí)間。這種情況下我們通常會(huì)想到使用隨機(jī)數(shù)。隨機(jī)數(shù)在我們的日常開(kāi)發(fā)中非常常見(jiàn)。不管是在軟件編程還是硬件開(kāi)發(fā)中,應(yīng)用都非常廣泛。
在FPGA開(kāi)發(fā)中我們同樣也可以使用Verilog提供的隨機(jī)數(shù)生成系統(tǒng)任務(wù)$random來(lái)幫助生成大量的隨機(jī)數(shù)。
二、調(diào)用方法分類(lèi)
前面兩種都是直接對(duì)于$random進(jìn)行一個(gè)調(diào)用,產(chǎn)生的結(jié)果都是一致的,而第三種就和前面兩種不一樣。
$random、$random():
????????$random的返回值是一個(gè)32位的整數(shù),但是有時(shí)不見(jiàn)得需要這么大的數(shù)。如果希望隨機(jī)數(shù)的值能固定在某個(gè)范圍,那么可以這么使用:$random%b;那么生成的隨機(jī)數(shù)的范圍就是 ? [ ( -b+1 ) : (b- 1 ) ]。 這其實(shí)就是對(duì)b取余。
????????此外,如果我們希望只生成正數(shù)范圍內(nèi)的隨機(jī)數(shù),那么可以這么使用:{$random}%b;那么生成的隨機(jī)數(shù)的范圍就是? ?[0 : (b - 1 )]。
$random(seed):
????????這種寫(xiě)法與上面兩種不同,給$random傳入了參數(shù)seed,因此$random根據(jù)seed來(lái)產(chǎn)生隨機(jī)數(shù)。seed不同,產(chǎn)生的隨機(jī)數(shù)的序列也不同。而且,每執(zhí)行一次$random(seed)產(chǎn)生一個(gè)隨機(jī)數(shù),seed也自動(dòng)更新一次。
三、?$random的調(diào)用
1)$random
rand=$random % 52; //產(chǎn)生一個(gè)在 -52—52范圍的隨機(jī)數(shù)。
rand={$random} % 52; //通過(guò)位拼接操作{}產(chǎn)生0—52范圍的隨機(jī)數(shù)
rand = 10+{$random}%(10-1+1)//產(chǎn)生一個(gè)在1, 10之間隨機(jī)數(shù)的例子
2)$random(seed)
$random(1)//這里當(dāng)括號(hào)里面的值不發(fā)生改變時(shí),每次隨機(jī)都會(huì)產(chǎn)生同一個(gè)數(shù)。