您现在的位置:首页 >> 其他 >> 内容

基于FPGA的LFSR16位伪随机数产生算法实现,可以配置不同的随机数种子和改生成多项式,包含tes

时间:2023/3/25 20:14:22 点击:

  核心提示:A888,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJaclpdt

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

     LFSR(线性反馈移位寄存器)提供了一种在微控制器上快速生成非序列数字列表的简单方法。生成伪随机数只需要右移操作和 XOR 操作。LFSR 完全由其多项式指定。例如,6千-次多项式与每个项存在用方程 x 表示6+ x5+ x4+ x3+ x2+ x + 1。有 2 个(6 - 1)= 32 个这种大小的不同可能多项式。与数字一样,一些多项式是素数或原始数。我们对原始多项式感兴趣,因为它们会在移位时为我们提供最大长度周期。n 次的最大长度多项式将有 2n- 1个不同的州。每个班次后都会转换到新状态。因此,6千-次多项式将有 31 种不同的状态。1 到 31 之间的每个数字在重复之前都会出现在移位寄存器中。在基元 6 的情况下千-次多项式,只有六个。表 1 列出了所有基元 6千-次多项式及其各自的多项式掩码。多项式掩码是通过采用多项式的二进制表示并截断最右侧的位来创建的。掩码用于实现多项式的代码中。实现 n 的多项式掩码需要 n 位千-次多项式。

4.部分源码

`timescale 1ns / 1ps

//

// Company: 

// Engineer: 

 

// Create Date: 2023/03/24 15:39:40

// Design Name: 

// Module Name: TEST

// Project Name: 

// Target Devices: 

// Tool Versions: 

// Description: 

// 

// Dependencies: 

// 

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

// 

//

 

 

module TEST();

 

reg          i_clk; 

reg          i_rst;     

reg          i_load;   

reg  [15:0] i_seed;    //随机种子

wire [15:0] o_rand;  //16位随机数

 

 

 

tops uut(

        .i_clk  (i_clk), 

.i_rst  (i_rst),     

.i_load (i_load),   

.i_seed (i_seed),      //随机种子

.o_rand (o_rand)      //16位随机数

);

 

 

initial

begin

i_clk=1'b1;

i_rst=1'b1;

i_load=1'b1;

i_seed=16'd12315;

#1000

i_rst=1'b0;

#100

i_load=1'b0;

#500;

i_load=1'b1;

i_seed=16'd5285;

#500;

i_load=1'b0;

#800;

i_load=1'b1;

end

 

always #5 i_clk=~i_clk;

 

 

endmodule

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168