SV中沒有提供專門從數(shù)組中抽取一個元素的方法。但可以通過下面的方法實現(xiàn):
module rand_select_array_element(); initial begin //declare int array[int]; int idx=1;// int rand_idx;//initial value is 0 int element;//initial value is 0 int count=0; repeat(10) begin $display("**** idx = %d ***", idx); array[idx] = idx; idx = idx << 1; end foreach(array[i]) $display("***array[%0d] = %0d",i, array[i]); //下面這一段有意思,好好品一品 element = $urandom_range(array.size()-1); $display("****element=%0d", element); foreach(array[i]) if(count++ == element) begin rand_idx = i; break; end $display("****%0d element array[%0d]=%0d", element, rand_idx, array[rand_idx]); end endmodule其中,代碼:
foreach(array[i]) if(count++ == element) begin rand_idx = i; break; end相當(dāng)于代碼:
foreach(array[i])begin if(count == element) begin rand_idx = i; break; end count = count + 1; end
其中$urandom_range()函數(shù)有兩個參數(shù),一個是上限參數(shù)和一個可選的下限參數(shù)。
element=$urandom_range(3,10);//element值的范圍是3~10 element = $urandom_range(10, 3); //element值的范圍是3~10;上下限可倒置 element=$urandom_range(5);//element值的范圍是0~5上述代碼的仿真結(jié)果,如下圖所示,element=4,相當(dāng)于抽取數(shù)組array的第5個元素,即array[16]=16
小結(jié):
對于定寬數(shù)組、隊列、動態(tài)數(shù)組和關(guān)聯(lián)數(shù)組可以使用$urandom_range($size(array)-1)
而對于隊列和動態(tài)數(shù)組還可以使用$urandom_range(array.size()-1)
如果想從一個關(guān)聯(lián)數(shù)組中隨機(jī)選取一個元素,需要逐個訪問它之前的元素,原因是沒辦法能夠直接訪問到第N個元素。上面的程序示范了如何從一個以整數(shù)值作為索引**的關(guān)聯(lián)數(shù)組中隨機(jī)選取一個元素。
注:如果數(shù)組是以字符串作為索引,只需要將idx的類型改為string即可。
審核編輯:黃飛
-
字符串
+關(guān)注
關(guān)注
1文章
588瀏覽量
20817 -
代碼
+關(guān)注
關(guān)注
30文章
4868瀏覽量
69861 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26224
原文標(biāo)題:隨機(jī)抽取SV數(shù)組中的一個元素
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
[教程] Matlab中矩陣、向量及數(shù)組元素的引用方法和討論
查詢一個一維數(shù)組(數(shù)值型數(shù)組)中每一個元素出現(xiàn)的次數(shù)
一維數(shù)組元素如何轉(zhuǎn)化為坐標(biāo)值
數(shù)組進(jìn)行隨機(jī)排序的算法分析
如何設(shè)計一個vi實現(xiàn)數(shù)組中的元素相乘?
有什么高效率的方法從數(shù)組中抽取個位重新組成數(shù)組嗎?
labview如何可以將一個1×1的數(shù)組(該數(shù)組內(nèi)元素值是隨機(jī)變化的)轉(zhuǎn)換為一個1×N的數(shù)組
matlab如何從一個數(shù)組中每隔幾個數(shù)抽取一個生成新的數(shù)組?
Labview一維數(shù)組相同元素去重及相同元素個數(shù)源代碼免費下載

評論