线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。它主要用于伪随机数、伪噪声序列、计数器、BIST、数据加密和CRC校验等。
第一部分
线性反馈移位寄存器(LFSR)主要包括两大类:Fibonacci(外部LFSR),又称多对一;Lowa(内部LFSR),也称为一对多。
如下图(模2的多项式:x^8 x^6 x^4 1):
第二部分
Tap:影响线性反馈寄存器下一状态的位称为tap。tap的设置将决定线性反馈寄存器的最大输出序列长度。抽头在有限域算术中通常用模2的多项式表示(例如模2的多项式为:x^8 x^6 x^4 1)。通常,N位的线性反馈寄存器可以产生2 n-1的最长不重复序列。因为当所有寄存器的输出都为零时,线性反馈寄存器陷入无限循环,所以Nbit的线性反馈寄存器的输出状态是2 N-1。抽头的位置将影响LSFR的最大输出状态的数量。例如,如果3bit的抽头为[3,2],将产生7个状态(对应多项式:x 3x21),如果抽头为[3,1],将产生2个状态(对应多项式:x 3x1)。当通过设置抽头产生的最大输出序列长度在N比特下是2 n-1时,对应的模2多项式是本原多项式。下表给出了不同比特下,抽头设置(对应不同的本原多项式)与最大输出状态数的关系。
第三部分
如上所述,N位LFSR可以产生的最大输出状态数为2 n-1。如果输出状态包括全零,输出状态的最大数量可以达到2 n,那么可以如下图所示修改LFSR,即如果检测到Q [7]-Q [0]的输出状态都是零,在~| Q [6: 0] Q [7]之后
第四部分
在实际应用中,比如crc校验,会用到模2多项式的运算,会遵循以下计算原则:
写在最后
本文只介绍线性反馈移位寄存器的原理,RTL的实现将在后面讨论。
审计郭婷
标签:器输出状态