线性反馈移位寄存器原理

线性反馈移位寄存器(lfsr):通常由移位寄存器和异或门逻辑组成。其主要应用在:伪随机数,伪噪声序列,计数器,bist,数据的加密和crc校验等。
part.1
线性反馈移位寄存器(lfsr)主要包括两大类:斐波那契(外部lfsr),又称many-to-one;伽罗瓦(内部lfsr),又称one-to-many。
如下图(模2的多项式:x^8+x^6+x^4+1):
part.2
抽头(tap):影响线性反馈寄存器下一个状态的比特位叫做抽头,抽头的设定会决定线性反馈寄存器最大的输出序列长度,抽头通常用有限域算数中模2的多项式来表示(例如模2的多项式为:x^8+x^6+x^4+1)。通常n bits的线性反馈寄存器能产生最长的不重复序列为2^n-1。因为当所有寄存器的输出为全零状态时,线性反馈寄存器陷入死循环,故nbit的线性反馈寄存器的输出状态有2^n-1。抽头的位置会影响lsfr的最大输出状态的个数,例如:3bit的抽头为【3,2】会产生7个状态(多项式对应为:x^3+x^2+1),若抽头为【3,1】会产生2个状态(多项式对应为:x^3+x+1)。当n bits下,抽头的设定产生的最大输出序列长度为2^n-1时,此时对应的模2多项式为本原多项式。下表为不同的bits下,抽头的设定(对应不同的本原多项式)和最大的输出状态个数关系表。
part.3
上面提到n bits的lfsr能产生最大输出状态的个数为2^n-1,如果输出状态包括全零的状态,最大输出状态的个数可达到2^n,那么通过对lfsr做如下图的修改,即如果检测到q[7]-q[0]输出状态为全零时,经过~|q[6:0]^q[7]逻辑运算后输出的结果为1,进而保证线性反馈寄存器不会陷入死循环中。
part.4
在实际的应用中,例如crc的校验,会用到模2的多项式的运算,遵循如下的计算原则:
写在最后
这里只是介绍了线性反馈移位寄存器的原理,后面会讲到rtl的实现。


中科芯与IAR共建生态合作,IAR集成开发环境全面支持CKS32系列MCU
监控安装系统工程光纤使用说明
峰会回顾第9期 | 移动应用高级语言开发——并发探索
iPhone15系列预约量超300万台
激光照明是否能完全取代LED
线性反馈移位寄存器原理
全球GPU竞赛抢跑 中国企业同时内部腾挪
机器能不能自动的学习特征呢?
理想的连线和现实的导线是有差别的
如何利用RJ45无线通讯网关实现触摸屏与PLC间通信?
断钻咀的主要原因及预防措施
贾跃亭再成被执行人 眼看他起朱楼 眼看他楼塌了
简单了解CPU和内存搭配规律
不同铺层方式对其力学性能的影响规律
最原始的Mac电脑是怎样的? 20多年前的Mac电脑带你体验佛系人生
美团计划8月在雄安推广无人配送车,最高时速可达15km/h
运放OPA549放大电路电流源
检测抑郁症的利器--手机传感器
PXI TAC 2018盛大开幕 NI助力航空国防技术腾飞
关于LDO的常见问题分享