基于LFSR伪随机数的FPGA产生

时间:2025-11-01  作者:Diven  阅读:0

1.概念

基于LFSR伪随机数的FPGA产生

通过一定的算法对事先选定的随机种子(seed)做一定的运算可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取其中一个数字,该数字称作伪随机数,由于所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。这里的“伪”的含义是,由于该随机数是按照一定算法模拟产生的,其结果是确定的,是可见的,因此并不是真正的随机数。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要,如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。

2.由LFSR引出的产生方法

产生伪随机数的方法最常见的是利用线性反馈移位寄存器(LFSR),是由n个D触发器和若干个异或门组成的,如下图:

其中,gn为反馈系数,取值只能为0或1,取为0时表明不存在该反馈之路,取为1时表明存在该反馈之路;n个D触发器最多可以提供2^n-1个状态(不包括全0的状态),为了保证这些状态没有重复,gn的选择必须满足一定的条件。下面以n=3,g0=1,g1=1,g2=0,g3=1为例,说明LFSR的特性,具有该参数的LFSR结构如下图:

假设在开始时,D2D1D0=111(seed),那么,当时钟到来时,有:

D2=D1_OUT=1;

D1=D0_OUT^D2_OUT=0;

D0=D2_OUT=1;

即D2D1D0=101;同理,又一个时钟到来时,可得D2D1D0=001. ………………

画出状态转移图如下:

从图可以看出,正好有2^3-1=7个状态,不包括全0;

如果您理解了上图,至少可以得到三条:

1)初始状态是由SEED提供的;

2)当反馈系数不得到的状态转移图也不同;必须保证gn===1,否则哪来的反馈?

3)D触发器的个数越多,产生的状态就越多,也就越“随机”;

3.verilog实现

基于以上原理,下面用verilog产生一个n=8,反馈系数为g0g1g2g3g4g5g6g7g8=101110001的伪随机数发生器,共有2^8=255个状态,该LFSR的结构如下:

verilog源代码如下:

Module RanGen( input rst_n, input clk, input load, input [7:0] seed, output reg [7:0] rand_num );always@(posedge clk or negedge rst_n)begin if(!rst_n) rand_num <=8'b0; else if(load) rand_num <=seed; else begin rand_num[0] <= rand_num[7]; rand_num[1] <= rand_num[0]; rand_num[2] <= rand_num[1]; rand_num[3] <= rand_num[2]; rand_num[4] <= rand_num[3]^rand_num[7]; rand_num[5] <= rand_num[4]^rand_num[7]; rand_num[6] <= rand_num[5]^rand_num[7]; rand_num[7] <= rand_num[6]; end endendModule

仿真波形:

以1111 1111为种子,load信号置位后,开始在255个状态中循环,可将输出值255、143、111……作为伪随机数。

编辑:黄飞

 

猜您喜欢

CBB61启动电容是电机启动中常用的部件。的作用是提高电机的启动性能。很多人在选择启动电容时,常常会有疑问。本文将为大家详细介绍CBB61启动电容的相关知识。C...
2025-03-28 10:00:02

电路设计中,电阻和电容是两种基本的电子元件。的并联组合在许多电路应用中发挥着重要作用。通过合理地将电阻和电容并联,可以实现信号的滤波、延时、稳定电压等多种功能。...
2025-04-14 07:01:11

电子设备日益普及的今天,你是否想过这些设备是如何获得稳定可靠的电源供应的呢?答案就是线性稳压模块。就像一位默默无闻的守护者,为各种电子设备提供着稳定纯净的电压,...
2024-06-16 00:00:00

2008-04-03 00:00:00

电解电容器在电子设备中很常见。有许多优点,能满足不同需求。本文将介绍电解电容器的几个主要优点。高电容值电解电容器电容值大。可以提供大容量,适合多种应用。比如,电...
2025-03-26 11:01:07

现代工业和日常生活中,配件的选择和使用变得愈发重要。尤其是“Accessories_7.86X8.5MM_TM”,这种特定尺寸的配件因其独特的功能和广泛的应用而...
2025-03-07 06:13:19

切换器是应用于多个领域的设备,能够在不同的信号源之间进行高效切换,确保信息传输的顺畅。在通信行业,切换器能够连接不同的网络设备,如路由器和交换机,提升网络的灵活...
2011-05-22 00:00:00

电子元器件中,二极管是常见且重要的器件,应用于整流、开关和信号调制等领域。随着时间的推移,二极管可能会出现故障,因此了解如何测量二极管的性能是每个电子爱好者和工...
2025-04-10 06:31:40

电解电容是电子元件,用于电路中。许多人会问,电解电容直流和交流通用吗?本文将为您解答这个问题。电解电容的基本概念电解电容是由电解液和电极组成。的特点是容量大、体...
2025-03-27 17:30:02

1、前言本文详细描述了FPGA实现图像去雾的实现设计方案,采用暗通道先验算法实现,并利用verilog并行执行的特点对算法进行了加速;本设计以HDMI或者ov5...
2023-06-05 17:01:00