0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA的伪随机数发生器学习介绍

电子发烧友论坛 来源:电子发烧友论坛 2023-09-12 09:13 次阅读

今天是画师本人第一次和各位大侠见面,执笔绘画FPGA江湖,本人写了篇关于FPGA的伪随机数发生器学习笔记,这里分享给大家,仅供参考。

基于FPGA的伪随机数发生器

(附代码)

1、概念

随机数是专门的随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。随机数分为三类,分别是伪随机数、密码学安全的伪随机数以及真随机数。

本次设计为基于FPGA生成的伪随机数发生器,什么是伪随机数呢?统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。

在实际应用中往往使用伪随机数就足够了。这些数列是“似乎”随机的数,实际上它们是通过一个固定的、可以重复的计算方法产生的。计算机或计算器产生的随机数有很长的周期性。它们不真正地随机,因为它们实际上是可以计算出来的,但是它们具有类似于随机数的统计特征。这样的发生器叫做伪随机数发生器。

2、设计原理

本次设计采用线性反馈移位寄存器Linear Feedback Shift Register, LFSR)来实现伪随机数发生器。线性反馈移位寄存器是指,给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

线性反馈移位寄存器通常由动态或静态主从型触发器构成。反馈回路由异或门构成。其特性通常由一个特征多项式表征。LFSR结构如下图所示:

f1783070-50ff-11ee-a25d-92fbcf53809c.png

图1 LFSR结构示意图

对应的特征多项式为:

f187ebb4-50ff-11ee-a25d-92fbcf53809c.png

Gm为多项式的系数,而多项式系数只能为1或0。

利用LFSR生成伪随机数,需要给它一个随机种子(seed),由于它是由N个触发器和异或门组成,所以种子不能给全0,如果给的全0,将会陷入0的死循环一直出不来,就得不到我们想要的伪随机数,在设计时,我们可以给一个任意不为0的数。

基于以上原理,我们使用本原多项式x^32+x^7+x^5+x^3+x^2+x+1来构造最大周期的LFSR。

3、架构设计

设计架构如下图:

f1945aa2-50ff-11ee-a25d-92fbcf53809c.png

将输入时钟命名为clk,复位信号命名为rst_n,输入有效信号命名为ivalid,输入的随机种子命名为seed[31:0],生成的随机数命名为data[31:0]。

4、Verilog代码实现

代码中data <= seed部分也可以不需要,不用输入有效信号以及随机种子,直接初始化为非零值也可。如直接初始化为非零值,则仿真代码只需进行复位即可。

设计实现代码如下:

f1a15ab8-50ff-11ee-a25d-92fbcf53809c.png

5、仿真测试结果

仿真代码如下:

f1aff654-50ff-11ee-a25d-92fbcf53809c.png

本次仿真采用100M时钟进行,输入种子为非零随机数。

f1c47ff2-50ff-11ee-a25d-92fbcf53809c.png

f1dd5612-50ff-11ee-a25d-92fbcf53809c.png

6、总结

以上是经过学习,集合了各家所长得到的结果。由于想做一个32位的伪随机数发生器,在网上找了各种资料,并没有找到有规定的标准多项式,于是随意定了一个。在实际运用当中,如果有标准的多项式系数,可能得到了一个伪随机数,就可以根据已知的特征式得出后面的结果,安全性也就大大降低了。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21320

    浏览量

    593194
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84526
  • 发生器
    +关注

    关注

    3

    文章

    1291

    浏览量

    60862
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309

原文标题:【学习教程】基于FPGA的伪随机数发生器(附代码)

文章出处:【微信号:gh_9b9470648b3c,微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【assingle分享】labview随机数发生器

    ,提供了多种不同的函数,下面大概总结一下。一、随机数发生器在LABVIEW数值函数选板中,提供了一个随机数发生器函数,返回一个0-1之间的
    发表于 04-07 10:27

    【总结】LabVIEW随机数发生器

    ,提供了多种不同的函数,下面大概总结一下。一、随机数发生器在LABVIEW数值函数选板中,提供了一个随机数发生器函数,返回一个0-1之间的
    发表于 01-30 14:51

    随机数发生器在信息安全系统中的应用

    安全控制,采用最新专利科技集成了硬件高速真随机数发生器,其产生的随机序列具有极高的不可预测性和不可重复性,并且已通过FIPS140-2和AIS-31安全测试认证,适用于高安全性要求的
    发表于 12-05 09:55

    如何制作方法简单的真随机数发生器

    大家好请帮助我如何制作方法简单的真随机数发生器(真随机数发生器)从psoc1模拟内部组件(cy8c29466)多谢Kamil 以上来自于百度翻译 以下为原文Hi all Please
    发表于 01-16 10:52

    怎么设计基于USB和FPGA随机数发生器验证平台?

    一种必然。为此,基于纯数字电路实现的随机数发生器已成为研究的热点,而FPGA可编程逻辑芯片为此类随机数发生器的研究提供了良好的开发环境。
    发表于 08-27 06:05

    Zynq-7000 AP SoC是否具有真正的随机数发生器

    随机数发生器在安全解决方案中起着重要作用。真正的随机数发生器通常由平台支持,例如Exynos 5,OMAP 3,4 SoC系列和飞思卡尔i.MX53。我已经阅读了zynq-7000的
    发表于 07-17 14:27

    请问随机数发生器的主要特性和功能以及如何操作?

    随机数发生器简介随机数发生器主要特性随机数发生器功能说明随机
    发表于 11-13 07:51

    什么是随机数

    用到的随机数,一般都只满足第一个条件,这种只满足随机性分布的随机数,就叫做随机数或弱
    发表于 07-22 09:42

    stm32随机的使用

    stm32随机的使用前言最近使用了一款芯片,内置随机数发生器,封装了一个 8 Byte的指令接口,mcu每次发送指令给芯片,芯片就会返回 8 字节
    发表于 08-23 07:08

    随机数发生器的相关资料分享

    00. 目录文章目录00. 目录01. 随机数发生器简介02. 随机数发生器主要特性03. 随机数发生器
    发表于 02-14 07:35

    学习笔记 | 基于FPGA随机数发生器(附代码)

    今天是画师本人第一次和各位大侠见面,执笔绘画FPGA江湖,本人写了篇关于FPGA随机数发生器学习
    发表于 04-21 19:42

    基于FPGA的真随机数发生器设计

    设计并实现了一种基于 FPGA 的真 随机数发生器 ,利用一对振荡环路之间的相位漂移和抖动以及亚稳态作为随机源,使用线性反馈移位寄存器的输出与原始序列运算作为后续处理。在X
    发表于 05-30 17:04 72次下载
    基于<b class='flag-5'>FPGA</b>的真<b class='flag-5'>随机数</b><b class='flag-5'>发生器</b>设计

    利用FPGA的自身特性实现随机数发生器

    本文主要介绍利用FPGA的自身的特性实现随机数发生器,在Virtex-II Pro开发板上用ChipScope观察随机数序列,以及在PCIe
    发表于 02-11 16:26 1.2w次阅读
    利用<b class='flag-5'>FPGA</b>的自身特性实现<b class='flag-5'>随机数</b><b class='flag-5'>发生器</b>

    基于FPGA的伪随机数发生器设计方案

    基于FPGA的伪随机数发生器设计方案
    发表于 06-28 14:36 4次下载

    【STM32】随机数发生器详解

    00. 目录文章目录00. 目录01. 随机数发生器简介02. 随机数发生器主要特性03. 随机数发生器
    发表于 12-08 18:36 10次下载
    【STM32】<b class='flag-5'>随机数</b><b class='flag-5'>发生器</b>详解