若三位右移移位寄存器_FPGA-线性反馈移位寄存器(LFSR)

本文介绍了线性反馈移位寄存器(LFSR)的工作原理,特别是三位右移移位寄存器的结构和状态变化。通过Verilog代码展示了LFSR的实现,并提供了仿真波形和状态转移图。LFSR在伪随机数生成和CRC校验中具有应用。
摘要由CSDN通过智能技术生成

线性反馈移位寄存器(LFSR)结构如下,此为三位移位寄存器,D0,D1,D2有一个初始值,称为seed,随着时钟信号的到来,D0,D1,D2的值会发生变化,总共有2^3 – 1 = 7种状态,全零状态是不包括的。

da4273d06007c1033faf02b7bbbde8d4.png

D2的输出连接到D0的输入,D0的输出与D2的输出进行异或运算后输入到D1,计算方法如下:

D2=D1

D1=D2out ⊕ D0out

D0=D2out

下面编写verilog代码实现这个LFSR

1.	module LFSR_prj(  
2.	      
3.	    input clk,  
4.	    input rst_n,  
5.	      
6.	    input[2:0] seed,  
7.	    input load,  
8.	    output reg[2:0] code  
9.	    );  
10.	      
11.	    always@(posedge clk, negedge rst_n)  
12.	        if(!rst_n)  
13.	            code <= 3'd0;  
14.	        else if(load)  
15.	            code <= seed;  
16.	        else begin  
17.	            code[2] <= code[1];  
18.	            code[1] <= code[2] ^ code[0];  
19.	            code[0] <= code[2];  
20.	        end  
21.	  
22.	endmodule  

仿真波形如下:

f99f9f94f30051f02e19ab9c0126a8c4.png

状态转移图如下:

6c9232fc2982c07629da1cd414380268.png

利用LFSR可以产生伪随机数,例如给定一个初始值(seed),就可以产生一组随机数。此外,LFSR与CRC校验也有一定的关系,在后面的笔记会有介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值