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文章
578浏览量
20508 -
代码
+关注
关注
30文章
4780浏览量
68527 -
数组
+关注
关注
1文章
417浏览量
25939
原文标题:随机抽取SV数组中的一个元素
文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
[教程] Matlab中矩阵、向量及数组元素的引用方法和讨论
将它混淆,I*J*K叫做尺寸,而此时是三维数组,还有一点Matlab中没有一维数组,它将标量视为1*1的二维
发表于 05-07 21:48
一维数组元素如何转化为坐标值
计算,这样就可以转化为1500×1500个坐标,横纵坐标值可以用两个一维数组表示,以方便后面计算时用“索引数组”分别把坐标提取出来。下面是我
发表于 02-15 21:24
labview如何可以将一个1×1的数组(该数组内元素值是随机变化的)转换为一个1×N的数组
请教各位大师了,labview如何可以将一个1×1的数组(该数组内元素值是随机变化的)转换为
发表于 11-23 17:30
Labview一维数组相同元素去重及相同元素个数源代码免费下载
Labview源代码,可以去掉重复的一位数组元素,新生成只有唯一的元素的一个数组,并显示有多少
发表于 08-31 08:00
•103次下载
js判断是否在数组中存在
JavaScript 是一种用于客户端和服务器端编程的脚本语言。它提供了许多内置函数和方法,以便进行数组操作。 在本文中,我们将学习如何使用 JavaScript 来判断一
评论