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

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

3天内不再提示

通过四个异步振荡器的真实随机数生成器骰子设计

电子设计 来源:与非网 作者:与非网 2021-02-01 14:38 次阅读

该项目描述了如何设计一个7段1位LED显示屏的从1到6的真正随机数发生器。

硬件部件

DialogSemiconductor GreenPAK高级开发板SLG4DVKADV× 1个

Dialog Semiconductor SLG46826× 1个

该项目描述了如何设计Digital Dice,这是一个从1到6的真实随机数生成器。可以使用此设备代替常用的骰子。它具有一个1位数的7段LED显示屏和两个按钮:“运行”和“显示上一个”。数码骰子可以由单个CR2032电池供电。它没有开机开关,因为闲置时的功耗极低。

o4YBAGAXoM6ADeegAAL6JTVurwM077.png

图1:数字骰子示意图

下面我们描述了了解解决方案如何设计数字骰子所需的步骤。但是,如果您只想获取编程结果,请下载GreenPAK软件以查看已完成的GreenPAK设计文件。将GreenPAK开发套件插入计算机,然后点击程序来设计解决方案。

设备架构

o4YBAGAXoN6ACBQbAAOLepdkQmk918.png

图2:GreenPAK6 Designer项目

该设计包含以下块:

熵产生器

熵发生器由四个异步振荡器组成。其中两个是使用具有延迟(1 MHz和6.5 MHz)的反向闭环LUT构建的。另外两个是GreenPAK的OSC1(2.048 MHz,除以3)和OSC2(25 MHz,除以2)。

向XNOR门输入一些异步时钟信号足以在其输出上获得不可预测的信号(噪声或熵)。但是SLG46826V中的宏单元可以使解决方案更加复杂。再使用一个振荡器和DFF,我们得到一个完全随机的信号。

pIYBAGAXoPGAaDekAAHzQVTeTa4801.png

图3:熵产生器

线性反馈移位寄存器

3位LFSR使用三个DFF和一个XNOR门构建。每个输入时钟的该块都会生成一个3位的伪随机数。此处,噪声信号代替时钟脉冲进入LFSR的输入,从而生成一个真正的随机3位数字。

o4YBAGAXoQSAIZhMAAFlmJpuQ9k379.png

图4:LFSR

二进制至7段解码器

为了转换由LSFR生成的3位随机数,使用了二进制至7段解码器,请参见图3。解码器由3位LUT构建。

pIYBAGAXoROAAceOAAOYbJ6_LQ8800.png

图5:二进制到7段解码器

控制单元

控制单元是设备的一部分,旨在在3秒钟后启动并停止。两个引脚被配置为输入,并且两个按钮必须从VDD连接到这些引脚。按下“运行”按钮时,设备将连续生成随机数。释放按钮后,立即停止生成,LFSR锁存其输出。解码器随后驱动7段显示器。3秒钟后,数字骰子将进入空闲状态。该设备仍处于开机状态,但是由于所有振荡均已关闭,因此电流消耗极低。这使设备可以“记住”最后生成的随机数。如果按下“显示上一个”按钮,将显示最后生成的随机数,直到释放该按钮。因为数字骰子旨在替代普通骰子,所以当出现“ 0”或“ 7”时,将使用3位LUT12重新启动它。这样可以确保设备生成1到6之间的随机数。

o4YBAGAXoSSATjgAAAIdQf1vbUI224.png

图6:控制单元

宏单元设置

对于每个宏单元,设置请参考下表。

pIYBAGAXoT2AVNueAARNB6t5ctY997.png

表1. LUT设置

pIYBAGAXoVOAI3b0AAE3wY8UfNc707.png

表2:DFF设置

o4YBAGAXoWGARrcCAAGSvfeLqLs175.png

表3:CNT / DLY设置

表6:OSC设置

pIYBAGAXoaOAW26yAAFw9bZ4ivY024.png

表7:PIN设置

结论

数字骰子可以替代赌场中的普通骰子,也可以在需要骰子的任何其他游戏中使用。它具有一个熵生成器,该熵生成器在按下“运行”按钮时会不断生成3位随机数。它仅在释放按钮时停止并显示结果,因此人为因素也会影响所生成的随机数。四个异步振荡器以及人为按下按钮的可变性使该设备完全不可预期地不可预测
编辑:hfy

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

    关注

    237

    文章

    22849

    浏览量

    649272
  • 解码器
    +关注

    关注

    9

    文章

    1100

    浏览量

    40407
  • 振荡器
    +关注

    关注

    28

    文章

    3733

    浏览量

    138381
  • 随机数发生器

    关注

    0

    文章

    21

    浏览量

    10982
  • dff
    dff
    +关注

    关注

    0

    文章

    26

    浏览量

    3349
收藏 人收藏

    评论

    相关推荐

    如何使用Python生成随机数

    为了实现这些目标,Python 为我们提供了random() 模块。random() 是一 内置的 Python 模块,用于 生成 随机数
    的头像 发表于04-15 12:47 409次阅读

    Minitab 交互式表格生成器

    生成器
    MinitabUG
    发布于 :2024年04月03日 15:58:54

    请问rt-thread studio如何使用硬件随机数生成器

    ; i < max_length; i++) { // 生成 随机索引值 uint32_t index = rand() % (sizeof(characters) - 1
    发表于02-23 08:03

    基于时分复用光学参量振荡器的5比特全光量子随机数发生

    联合研究团队研制出一种基于时分复用简并点飞秒光学参量 振荡器,具备高重复频率飞秒光纤激光 泵浦, 通过在谐振腔中接入多通单元,能高效拓展光路,实现5比特全光量子 随机数发生
    的头像 发表于01-09 11:13 348次阅读
    基于时分复用光学参量<b class='flag-5'>振荡器</b>的5比特全光量子<b class='flag-5'>随机数</b>发生<b class='flag-5'>器</b>

    TSMaster报文发送的信号生成器操作说明

    信号 生成器功能是TSMaster分析中的报文发送模块。信号 生成器用于发送和配置每个CAN/LIN信号的值变化行为,简而言之,这是一 可以控制和调整CAN/LIN信号值的功能。我们可选择的信号
    的头像 发表于12-23 08:21 671次阅读
    TSMaster报文发送的信号<b class='flag-5'>生成器</b>操作说明

    全志R128应用开发案例——获取真随机数

    路独立的环形 振荡器,由模拟器件电源噪声产生频率抖动,用低频始终重采样,然后进行弹性抽取和熵提取处理,最终输出128bit真 随机数。 载入方案 我们使用的开发板是 R128-Devkit,需要开发
    发表于11-13 16:31

    随机数生成器TRNG外设模块应用要点

    国产车规微控制 原厂云途半导体设计和发售的YTM32ME微控制 上集成的真 随机数 生成器TRNG(True Random Number Generator)外设模块
    的头像 发表于11-08 14:52 1451次阅读
    真<b class='flag-5'>随机数</b><b class='flag-5'>生成器</b>TRNG外设模块应用要点

    AT32的随机数的产生

    AT32的 随机数的产生为设计者使用AT32芯片时,产生符合应用需求的 随机数,提供设计建议。
    发表于10-26 06:04

    全志R128应用开发案例—获取真随机数

    R128 内置了TRNG,一 随机数发生 随机源是 8 路独立的环形 振荡器
    的头像 发表于10-24 17:49 801次阅读
    全志R128应用开发案例—获取真<b class='flag-5'>随机数</b>

    PLC输出0~100之间的随机数编写

    由于西门子PLC不提供 随机数相关函数,在需要用到 随机数的情况下,只能自己手动去写,下面来教大家写一 简单的0~100之间的 随机数
    发表于10-11 12:22 2981次阅读
    PLC输出0~100之间的<b class='flag-5'>随机数</b>编写

    如何使用雪花算法生成真正的随机数

    ,所谓熵池就是当前系统下的环境噪音,描述了一 系统的混乱程度,环境噪音由这几个方面组成,如内存的使用,文件的使用量,不同类型的进程数量等等。 利用/dev/urandom可以 生成 随机数的值,/dev/urandomLinux下的
    的头像 发表于10-09 10:05 1110次阅读

    使用NIST统计测试集验证STM32微控制随机数生成

    德赢Vwin官网 网站提供《使用NIST统计测试集验证STM32微控制 随机数 生成.pdf》资料免费下载
    发表于09-20 11:24 0次下载
    使用NIST统计测试集验证STM32微控制<b class='flag-5'>器</b><b class='flag-5'>随机数</b><b class='flag-5'>生成</b>

    基于多级反馈环形振荡器的真随机数发生设计

    德赢Vwin官网 网站提供《基于多级反馈环形 振荡器的真 随机数发生 设计.pdf》资料免费下载
    发表于09-14 14:56 0次下载
    基于多级反馈环形<b class='flag-5'>振荡器</b>的真<b class='flag-5'>随机数</b>发生<b class='flag-5'>器</b>设计

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

    随机试验的结果,产生 随机数有多种不同的方法。这些方法被称为 随机数 生成器随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。
    的头像 发表于09-12 09:13 1332次阅读

    STM32L4随机数生成器模块(RNG)介绍

    基于噪声源的32位真 随机数 生成器。 •使用线性反馈移位寄存 进行后处理。 •由专用时钟(PLL48CLK)计时 •两 连续 随机数之间的PLL
    发表于09-11 07:29