欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > FPGA开发——verilog随机涵数$random的使用方法

FPGA开发——verilog随机涵数$random的使用方法

2025/2/2 9:27:00 来源:https://blog.csdn.net/weixin_63553972/article/details/141069763  浏览:    关键词:FPGA开发——verilog随机涵数$random的使用方法

一、概述

我们进行FPGA开发的过程中在做仿真的时候,难免会需要一些数据作为输入。有的时候需要输入大量的数据对于设计结果进行一个验证,如果逐个去进行输入,就需要花费大量的时间。这种情况下我们通常会想到使用随机数。随机数在我们的日常开发中非常常见。不管是在软件编程还是硬件开发中,应用都非常广泛。

在FPGA开发中我们同样也可以使用Verilog提供的随机数生成系统任务$random来帮助生成大量的随机数。

二、调用方法分类

前面两种都是直接对于$random进行一个调用,产生的结果都是一致的,而第三种就和前面两种不一样。

$random、$random():

        $random的返回值是一个32位的整数,但是有时不见得需要这么大的数。如果希望随机数的值能固定在某个范围,那么可以这么使用:$random%b;那么生成的随机数的范围就是   [ ( -b+1 ) : (b- 1 ) ]。 这其实就是对b取余。

        此外,如果我们希望只生成正数范围内的随机数,那么可以这么使用:{$random}%b;那么生成的随机数的范围就是   [0 : (b - 1 )]。
$random(seed):

        这种写法与上面两种不同,给$random传入了参数seed,因此$random根据seed来产生随机数。seed不同,产生的随机数的序列也不同。而且,每执行一次$random(seed)产生一个随机数,seed也自动更新一次。

三、 $random的调用

1)$random

rand=$random % 52; //产生一个在 -52—52范围的随机数。

rand={$random} % 52; //通过位拼接操作{}产生0—52范围的随机数

rand = 10+{$random}%(10-1+1)//产生一个在1, 10之间随机数的例子

2)$random(seed)

$random(1)//这里当括号里面的值不发生改变时,每次随机都会产生同一个数。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com