基于verilog的伪随机码

今天上移动通信的课,老师讲到了扩频原理中的伪随机码,在此就想到了fpga中肯定也要用到随机码,所以就编了代码。

原理图如下:

 

 

 

 

代码如下

 

`timescale 1ns/1ps

module suiji  (
             clk,
             dout

              );
input         clk;
output        dout;
reg           dout;

reg           dout1;
reg           dout2;
reg           dout3;

initial       dout1 = 1;
initial       dout2 = 1;
initial       dout3 = 1;


always @ (posedge clk)    begin

    dout2 <= dout1;
    dout3 <= dout2;
    dout1 <= dout3^dout2;
    dout  <= dout3;
  end
 
endmodule  

 

此代码简单。。。

 

由于有3D触发器,但当3D触发器全为0时,输出的一直为0,所以就设起始状态为 1 1 1  。。。输出的状态是      1 1 1 0 0 1 0......依次循环。。。。。

 

如果要更多循环,可改变触发器的个数和异或、、、、

 

很多思想是来自书本,所以上好每一节课程是必须的。。

 

 

 

 

你可能感兴趣的:(verilog,hdl,语法)