当前位置: 首页 > 专利查询>兰州大学专利>正文

一种基于FPGA的随机小数发生器及其生成方法技术

技术编号:35815067 阅读:10 留言:0更新日期:2022-12-03 13:38
本发明专利技术公开一种基于FPGA的随机小数发生器及其生成方法。本发明专利技术所述随机小数发生器包括移位寄存器、门电路和时钟管理单元,占用FPGA的资源少,能够在高频下工作,由于只使用了FPGA,具有体积小,功耗小,可靠性高等优点;本发明专利技术所述随机小数的生成方法,在FPGA内利用线性反馈移位寄存器结构与定点小数乘法来实现生成任意特定范围均匀伪随机小数数发生器的方法;本方法结构简单,易于实现,而且所生成的伪随机序列具有周期长、随机特性好的特点。随机特性好的特点。

【技术实现步骤摘要】
一种基于FPGA的随机小数发生器及其生成方法


[0001]本专利技术属于扩频通信、信息加密和系统测试领域,涉及一种均匀的伪随机小数的生成方 法,具体地说是一种基于FPGA的随机小数发生器及其生成方法。

技术介绍

[0002]随着可编程逻辑器件在电子领域越来越广泛的应用,在很多高速设计和高速测试的场合 下,我们希望能够在FPGA中直接实现伪随机序列发生器。在软件中一般都采用含有大数乘法 的递推公式所计算出的一组数值来生成伪随机数列且支持生成随机小数,当数列足够长时, 这组数值就是近似满足均匀分布的伪随机数列。传统的大数乘法生成伪随机数的方法不但时 钟频率不能太高,并且需要消耗FPGA内大量的逻辑资源。设计性能良好的密钥序列始终是流 密码学的一个研究热点。线性反馈移位寄存器因其实现简单、速度快、具有良好的统计学特 性和较为成熟的理论等优点而成为生成Golomb伪随机序列的主要手段。
[0003]伪随机序列由于其随机特性和预先确定性以及可重复实现的优点,使它在许多领域中得 到广泛应用,包括导弹、卫星、飞船等的轨道测量和跟踪、雷达、导航,一般通信和保密通 信、通信系统性能的测量以及其他方面。例如,在集成电路的开发和生产过程中出现一些错 误和缺陷是不可避免的,为保证产品的质量与可靠性需通过测试对产品的质量与可靠性加以 监控,在集成电路中多采用插入伪随机序列生成器的方法来实现内建自测试。

技术实现思路

[0004]本专利技术的一个目的在于提出一种基于FPGA的随机小数发生器,其包括移位寄存器、门电 路和时钟管理单元,占用FPGA的资源少,能够在高频下工作,由于只使用了FPGA,具有体 积小,功耗小,可靠性高等优点;本专利技术的另一个目的在于提出一种基于FPGA的随机小数的 生成方法,本方法在FPGA内利用线性反馈移位寄存器(Linear Feedback Shift Registers) 结构与定点小数乘法来实现生成任意特定范围均匀伪随机小数数发生器的方法;本方法不仅 结构简单,易于实现,而且所生成的伪随机序列具有周期长,随机特性好的特点。
[0005]为实现上述目的,本专利技术所述一种基于FPGA的随机小数发生器,所述的随机小数发生器 包括随机种子模块、系统时钟、随机数发生器、乘法器、FIFO模块、FPGA模块;其中,
[0006]随机种子模块,用于生成随机小数生成器的随机初值;
[0007]系统时钟,用于调整随机种子模块生成随机初值的间隔时间;
[0008]随机数发生器,用于接收随机种子模块的随机初值后运用LFSR原理随机生成“1”或“0
”ꢀ
的32位初级随机数;通过32位初级随机数生成0

1范围内随机小数;
[0009]乘法器,用于将随机数发生器生成的0

1范围内随机小数扩大特定倍数,生成特定范围 内随机小数;
[0010]FIFO模块,用于确定顺序输入输出乘法器生成的特定范围内随机小数;
[0011]FPGA模块,用于接收FIFO模块输出的特定范围内随机小数生成最终生成的小数。
[0012]所述系统时钟为50MHZ,随机种子模块的工作时钟为1MHZ。
[0013]一种基于FPGA的发生器的随机小数生成方法,步骤如下:
[0014](1)给随机数发生器赋随机初值;
[0015](2)随机种子模块使随机初值每隔一段时间随机变化一次;
[0016](3)运用LFSR原理随机生成“1”或“0”的32位初级随机数;
[0017](4)所述32位初级随机数生成16位随机数,32位初级随机数取前16位随机数为X, 取后16位随机数为Y,组成16位随机数的坐标X、Y;
[0018]所述16位随机数生成0

1范围内随机小数,16位随机数取前6位为整数部分,后10位 为小数部分,整数部分置零,小数部分生成0

1范围内随机小数;
[0019](5)运用乘法器与生成0

1范围内随机小数相乘,乘法器中的模拟信号为H,产生0

H 范围内随机小数,其中,H为任意正整数;
[0020](6)0

H范围内随机小数取其10

25位为最终生成的小数。
[0021]所述一种基于FPGA的随机小数生成方法,步骤如下:
[0022](1)随机数发生器接收随机初值,
[0023]随机数发生器接收随机种子模块生成随机初值;
[0024](2)随机数发生器生成0

1范围内随机小数,
[0025]运用LFSR原理随机生成“1”或“0”的32位初级随机数;
[0026]所述32位初级随机数生成16位随机数,32位初级随机数取前16位随机数为X,取后 16位随机数为Y,组成16位随机数的坐标X、Y;
[0027]所述16位随机数生成0

1范围内随机小数,16位随机数取前6位为整数部分,后10位 为小数部分,整数部分置零,小数部分生成0

1范围内随机小数;
[0028]运用乘法器与生成0

1范围内随机小数相乘,乘法器中的模拟信号为H,产生0

H范围 内随机小数,其中,H为任意正整数;
[0029]所述0

H范围内随机小数取其10

25位为最终生成的小数。
[0030]所述运用LFSR原理中LFSR的m序列,是同样级数的线性移位寄存器所能产生的最长序 列;所述m序列由特征多项式和初始状态组成;
[0031]所属特征多项式为:
[0032]其中,(c0,c1,c2,...,c
n
)是反馈系数,当反馈系数c
i
=1时,表示相应的第i根连线存在, 而当c
i
=0时,表示相应的第i根连线存在。
[0033]所述LFSR的抽头设置为32,22,2,1。
[0034]所述0

1范围内随机小数到0

H范围内随机小数采用定点小数乘法。
[0035]所述随机小数发生器对随机初值扩大了1024倍来以整数存储小数,最后生成小数要相应 的除以1024,为实际产生的小数值;所述最终生成小数为X=M/1024;其中,X:最终生成小 数,M:显示值。
[0036]本专利技术所述一种基于FPGA的随机小数发生器及其生成方法,其有益效果在于:
[0037](1)完全依靠硬件实现的随机数发生器,不用借助软件,完全在硬件基础上实现生成随 机小数功能,减少了元器件使用数量,提高了测量精度和可靠性;
取后16位随机数为Y,组成16位随机数的坐标X、Y;
[0065]所述16位随机数生成0

1范围内随机小数,16位随机数取前6位为整数部分,后10位 为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA的随机小数发生器,其特征在于:所述的随机小数发生器包括随机种子模块、系统时钟、随机数发生器、乘法器、FIFO模块、FPGA模块;其中,随机种子模块,用于生成随机小数生成器的随机初值;系统时钟,用于调整随机种子模块生成随机初值的间隔时间;随机数发生器,用于接收随机种子模块的随机初值后运用LFSR原理随机生成“1”或“0”的32位初级随机数;通过32位初级随机数生成0

1范围内随机小数;乘法器,用于将随机数发生器生成的0

1范围内随机小数扩大特定倍数,生成特定范围内随机小数;FIFO模块,用于确定顺序输入输出乘法器生成的特定范围内随机小数;FPGA模块,用于接收FIFO模块输出的特定范围内随机小数生成最终生成的小数。2.如权利要求1所述一种基于FPGA的随机小数发生器,其特征在于:所述系统时钟为50MHZ,随机种子模块的工作时钟为1MHZ。3.一种如权利要求1所述基于FPGA的发生器的随机小数生成方法,其特征在于:步骤如下:(1)给随机数发生器赋随机初值;(2)随机种子模块使随机初值每隔一段时间随机变化一次;(3)运用LFSR原理随机生成“1”或“0”的32位初级随机数;(4)所述32位初级随机数生成16位随机数,32位初级随机数取前16位随机数为X,取后16位随机数为Y,组成16位随机数的坐标X、Y;所述16位随机数生成0

1范围内随机小数,16位随机数取前6位为整数部分,后10位为小数部分,整数部分置零,小数部分生成0

1范围内随机小数;(5)运用乘法器与生成0

1范围内随机小数相乘,乘法器中的模拟信号为H,产生0

H范围内随机小数,其中,H为任意正整数;(6)0

H范围内随机小数取其10

25位为最终生成的小数。4.如权利要求3所述一种基于FPGA的随机小数生成方法,其特征在于:步骤如下:(1)随机数发生器接收随机初值,随机...

【专利技术属性】
技术研发人员:刘贵鹏刘泽萍
申请(专利权)人:兰州大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1