基于FPGA生成一个2^5-1 2Mbps的伪随机码

伪随机码的介绍:

伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。

关于伪随机码的详细介绍课件附件的资料《伪随机序列的FPGA设计与应用》

基于FPGA生成一个2^5-1 2Mbps的伪随机码_第1张图片

详细文档见:http://wenku.baidu.com/view/d2f2a482ec3a87c24128c402.html

在设计伪随机码前要确定码长,从而确定本原多项式,常用的本原多项式见下表所示:

基于FPGA生成一个2^5-1 2Mbps的伪随机码_第2张图片

2 、开发环境说明

Xp操作系统下

编译环境:ISE13.2/SP3 ISE(XST)/Synplify 9.0 pro均综合实现通过

仿真环境:ISE13.2/SP3 ISE simulator(ISE)自带的仿真工具)功能和时序仿真成功

3 verilog代码如下

module PN_code(clk,rst,ena,m_out,load);

input  clk,rst,ena;

output  m_out,load;

reg  m_out,load;

reg  [4:0] shift; //5级移位寄存器产生周期为31的序列

always @(posedge clk) begin

if(!rst) begin//初始化

    m_out<=1'b0;

         load<=1'b0;  

         shift <= 5'b1111_1; 

   end

else begin//开始产生序列信号

   if(ena) begin

           shift<={shift[3:0],shift[0]};

           shift[0]<=( shift[1]^shift[4]);//对应本原多项式Fx=x^5+x^2+1

           load<=1'b1;

           end

          else begin

     load<=1'b0;            

     end

          m_out<=shift[4];

   end

 end

endmodule

说明:

程序中的m序列生成多项式为f(x)=x^5+x^2+1;

rst:复位信号,低电平有效

clk:时钟信号

ena:控制信号,高电平时序列发生器开始工作

m_out:数据信号,输出m伪随机序列

load:控制信号,为高电平时表示伪随机序列开始

4 verilog激励仿真输入代码如下

module PN_code_tb;

         // Inputs

         reg clk;

         reg rst;

         reg ena;

         // Outputs

         wire m_out;

         wire load;

         // Instantiate the Unit Under Test (UUT)

         PN_code uut (

                   .clk(clk),

                   .rst(rst),

                   .ena(ena),

                   .m_out(m_out),

                   .load(load)

         );

         initial begin

                   // Initialize Inputs

                   clk = 0;

                   rst = 0;

                   ena = 0;

                   #40   rst = 1'b1; 

                   #50   ena = 1'b1;

         end

   always #25 clk = ~clk; //产生2Mbp速率的码字

endmodule

5 ISE simulator仿真结果如下图所示

基于FPGA生成一个2^5-1 2Mbps的伪随机码_第3张图片

 

 

 

 

 

你可能感兴趣的:(FPGA)