线性反馈移位寄存器 LFSR

线性反馈移位寄存器 LFSR参考连接 添加链接描述运算基础 模 2 运算 线性反馈移位寄存器用于产生可重复的伪随机序列 PRBS 该电路由 n 级除法器和异或门组成 在 k 阶段 寄存器存在初值 Rn 1 R1 R0 称为 seed 在 k 1 阶段 寄存器的值变为 k 1 阶段 Rn 1 Rn 2Rn 2 Rn 3 R0 f R1 R2 Rn 1 Rn 1gn Rn 2gn 1 R0 g1 g0 也就是说寄存器存储的结果 Rn 1 R1 R0 每个时钟周期改变一次 其中 R1

参考连接:添加链接描述
运算基础:模2运算;
线性反馈移位寄存器用于产生可重复的伪随机序列PRBS,该电路由n级除法器和异或门组成;
在这里插入图片描述k阶段,寄存器存在初值,(Rn-1, … R1, R0),称为seed
k+1阶段,寄存器的值变为:
*k+1阶段
Rn-1 = Rn-2
Rn-2 = Rn-3

R0 = f(R1, R2, …, Rn-1) = (Rn-1gn)⊕(Rn-2gn-1)⊕…⊕(R0*g1)g0









也就是说寄存器存储的结果 (Rn-1, … R1, R0) 每个时钟周期改变一次,其中R1-Rn-1是位移产生,R0是线性反馈函数 f(Rn-1, … R1, R0) 产生,所以称为线性反馈移位寄存器。












线性反馈移位寄存器总是假定g0,gn为1,否则 (Rn-1, … R1, R0) 将在n个周期后恒定为0。

抽头和特征多项式:
f(Rn-1, … R1, R0) = (Rn-1gn)⊕(Rn-2gn-1)⊕…⊕(R0*g1)*g0 可以用多项式表示为:

G(x)=gnxn+gn-1xn-1+…+g1x+g0

G(x)称为LFSR的特征多项式

影响线性反馈寄存器下一个状态的 gi = 0 或1叫做抽头,抽头的设定会决定线性反馈寄存器存储的结果 (Rn-1, … R1, R0) 的变化规律。

通常N位的线性反馈寄存器最多有 2N 个不同的状态。但是如果出现初值为N个0的情况,线性反馈寄存器陷入死循环,要排除掉。所以N位线性反馈寄存器能产生最长的不重复序列为 2N-1。

使最大输出序列长度为2N-1的不可约多项式称为LFSR的本原多项式,本原多项式产生的寄存器序列为M序列。

`timescale 1ns/1ps module LSFR_3( //input wire clk, //input wire rstn, //output wire [2:0] o//{ 
   r2,1,r0} ); reg clk; reg rstn; reg [2:0] o_out; parameter perd = 20; initial begin rstn=1; clk=1; #20 rstn =0; #20 rstn =1; end always #(perd/2) clk =~clk; always @(posedge clk or negedge rstn) begin if(~rstn) begin o_out<=3'b101; end else begin //o_out<={ 
   r1,r0,r1^r2}; o_out<={ 
   o_out[1],o_out[0],o_out[1]^o_out[2]}; end end endmodule 

测试和计算一样;

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220570.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:10
下一篇 2026年3月17日 下午8:10


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号