我是靠谱客的博主 爱听歌短靴,最近开发中收集的这篇文章主要介绍若三位右移移位寄存器_FPGA-线性反馈移位寄存器(LFSR),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

线性反馈移位寄存器(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校验也有一定的关系,在后面的笔记会有介绍。

最后

以上就是爱听歌短靴为你收集整理的若三位右移移位寄存器_FPGA-线性反馈移位寄存器(LFSR)的全部内容,希望文章能够帮你解决若三位右移移位寄存器_FPGA-线性反馈移位寄存器(LFSR)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部