SV中沒有提供專門從數組中抽取一個元素的方法。但可以通過下面的方法實現:
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相當于代碼:
foreach(array[i])begin if(count == element) begin rand_idx = i; break; end count = count + 1; end
其中$urandom_range()函數有兩個參數,一個是上限參數和一個可選的下限參數。
element=$urandom_range(3,10);//element值的范圍是3~10 element = $urandom_range(10, 3); //element值的范圍是3~10;上下限可倒置 element=$urandom_range(5);//element值的范圍是0~5上述代碼的仿真結果,如下圖所示,element=4,相當于抽取數組array的第5個元素,即array[16]=16
小結:
對于定寬數組、隊列、動態數組和關聯數組可以使用$urandom_range($size(array)-1)
而對于隊列和動態數組還可以使用$urandom_range(array.size()-1)
如果想從一個關聯數組中隨機選取一個元素,需要逐個訪問它之前的元素,原因是沒辦法能夠直接訪問到第N個元素。上面的程序示范了如何從一個以整數值作為索引**的關聯數組中隨機選取一個元素。
注:如果數組是以字符串作為索引,只需要將idx的類型改為string即可。
審核編輯:黃飛
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
字符串
+關注
關注
1文章
551瀏覽量
20123 -
代碼
+關注
關注
30文章
4555瀏覽量
66767 -
數組
+關注
關注
1文章
409瀏覽量
25595
原文標題:隨機抽取SV數組中的一個元素
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
[教程] Matlab中矩陣、向量及數組元素的引用方法和討論
將它混淆,I*J*K叫做尺寸,而此時是三維數組,還有一點Matlab中沒有一維數組,它將標量視為1*1的二維
發表于 05-07 21:48
刪除或替換數組中某元素
本帖最后由 samuergao 于 2014-11-21 14:01 編輯
曾經遇到想刪除數組中某個元素的問題,比如要刪除或者替換一個數組中所有為10的
發表于 07-01 16:24
一維數組元素如何轉化為坐標值
計算,這樣就可以轉化為1500×1500個坐標,橫縱坐標值可以用兩個一維數組表示,以方便后面計算時用“索引數組”分別把坐標提取出來。下面是我
發表于 02-15 21:24
labview如何可以將一個1×1的數組(該數組內元素值是隨機變化的)轉換為一個1×N的數組
請教各位大師了,labview如何可以將一個1×1的數組(該數組內元素值是隨機變化的)轉換為
發表于 11-23 17:30
C語言數組元素的指針
C語言調用函數時虛實結合的方法都是采用“值傳遞”方式,當用變量名作為函數參數時傳遞的是變量的值,當用數組名作為函數參數時。
由于數組名代表的是數組
labview怎么查數組中相同元素的個數
要查找LabVIEW中數組中相同元素的個數,可以使用以下步驟: 創建一個包含要查找的數值的數組。這可以通過手動輸入數組元素或從文件/其他數據
評論