LFSR(Linear Feedback Shift Register )翻译成中文就是线性反馈移位寄存器。其反馈函数是寄存器中的某些位的简单异或,这些位也称之为抽头序列。一个N位的LFSR能够在重复之前产生2^N-1位长的伪随机序列。只有具有一定抽头序列的LFSR才能通过所有2^N-1个内部状态,产生2^N-1位长的伪随机序列,这个输出的序列就称之为M序列。这里我们可以清晰的知道LFSR是用来产生伪随机数序列用的,它的原理也是非常的简单。下面我们就给出一个三位简单LFSR的构成:
它的输出端是FF1OUT,FF2OUT,FF3OUT。
它们的关系是:(用表达式来描述,注意<=是Verilog HDL中的非阻塞赋值表达)
FF2OUT<=FF1OUT
FF3OUT<=FF2OUT
FF1OUT<=FF2OUT^FF3OUT
这里我们通过文字表示就是:在每个时钟信号来的时候,会有的行为是FF2OUT取得FF1OUT的值,FF3OUT获得FF2OUT的值,FF1OUT的值则是FF2OUT和FF3OUT的异或值。下面我们给出一个在7个时钟周期中的变化情况,这里我们的初始值为111(序列关系是:FF1OUT,FF2OUT,FF3OUT)。
1 2 3 4 5 6 7
111-》011-》001-》100-》010-》101-》110-》111
这里要注意,如果你的初始值给的是000,那么LFSR接下来就全是000了。
对于LFSR的具体应用以及其他复杂的LFSR自己可以查看相关的资料。