0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

线性反馈移位寄存器(LFSR)

FPGA之家 来源:FPGA之家 作者:FPGA之家 2022-06-16 10:04 次阅读

线性反馈移位寄存器(LFSR):通常由移位寄存器和异或门逻辑组成。其主要应用在:伪随机数,伪噪声序列,计数器,BIST,数据的加密和CRC校验等。

Part.1

线性反馈移位寄存器(LFSR)主要包括两大类:斐波那契(外部LFSR),又称many-to-one;伽罗瓦(内部LFSR),又称one-to-many。

如下图(模2的多项式:x^8+x^6+x^4+1):

5cd6b2f4-ed0d-11ec-ba43-dac502259ad0.png

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下,抽头的设定(对应不同的本原多项式)和最大的输出状态个数关系表。

5ce281ce-ed0d-11ec-ba43-dac502259ad0.png

Part.3

上面提到N bits的LFSR能产生最大输出状态的个数为2^N-1,如果输出状态包括全零的状态,最大输出状态的个数可达到2^N,那么通过对LFSR做如下图的修改,即如果检测到Q[7]-Q[0]输出状态为全零时,经过~|Q[6:0]^Q[7]逻辑运算后输出的结果为1,进而保证线性反馈寄存器不会陷入死循环中。

5cff7162-ed0d-11ec-ba43-dac502259ad0.png

Part.4

在实际的应用中,例如crc的校验,会用到模2的多项式的运算,遵循如下的计算原则:

5d225a42-ed0d-11ec-ba43-dac502259ad0.png

写在最后

这里只是介绍了线性反馈移位寄存器的原理,后面会写到RTL的具体实现。

参考资料: 1.https://en.wikipedia.org/wiki/Linear-feedback_shift_register 2.HDL Chip Design. A Practical Guide for Designing, Synthesizing and Simulating ASICs and FPGAs Using VHDL or Verilog

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5042

    浏览量

    117769
  • 线性
    +关注

    关注

    0

    文章

    188

    浏览量

    24975

原文标题:线性反馈移位寄存器原理

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    具有三态输出寄存器的 SNx4HC595 8位移位寄存器数据表

    电子发烧友网站提供《具有三态输出寄存器的 SNx4HC595 8位移位寄存器数据表.pdf》资料免费下载
    发表于 04-30 10:22 0次下载
    具有三态输出<b class='flag-5'>寄存器</b>的 SNx4HC595 8位<b class='flag-5'>移位寄存器</b>数据表

    带输出寄存器的汽车类8位移位寄存器SN74LV8T594-Q1数据表

    电子发烧友网站提供《带输出寄存器的汽车类8位移位寄存器SN74LV8T594-Q1数据表.pdf》资料免费下载
    发表于 04-29 10:07 0次下载
    带输出<b class='flag-5'>寄存器</b>的汽车类8位<b class='flag-5'>移位寄存器</b>SN74LV8T594-Q1数据表

    带输出寄存器的8位移位寄存器74LVC594A产品数据表

    电子发烧友网站提供《带输出寄存器的8位移位寄存器74LVC594A产品数据表.pdf》资料免费下载
    发表于 02-25 09:37 0次下载
    带输出<b class='flag-5'>寄存器</b>的8位<b class='flag-5'>移位寄存器</b>74LVC594A产品数据表

    移位寄存器可降低LED设计的尺寸和成本

    在使用 LED 的设计中,移位寄存器非常有用。例如,如果系统包括七段显示器、单个指示器或形成网格或面板的 LED 阵列,则可以使用标准 8 位移位寄存器来允许低引脚数微控制器驱动多个LED。
    发表于 01-30 15:14 133次阅读
    <b class='flag-5'>移位寄存器</b>可降低LED设计的尺寸和成本

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一种用于在数字电路中实现数据移位操作的基本电路元件。它由多个触发器以及相关控制电路组成,具有存储、接受和移动数据的功能。移位寄存器可以分为两种类型:串行移位寄存器和并行
    的头像 发表于 01-18 10:52 1694次阅读

    labview移位寄存器如何清零

    LabVIEW中的移位寄存器(Shift Register)是一种用于存储和移动数据的功能性块。它类似于传统计算机中的寄存器,可以用于在循环中保留变量的状态。但与传统寄存器不同的是,移位寄存器
    的头像 发表于 01-05 13:49 814次阅读

    基于VHDL的移位寄存器实验

    非常实用的基于VHDL的移位寄存器实验
    发表于 09-25 08:06

    什么是移位寄存器?数字电路中的寄存器类型有哪些呢?

    移位寄存器是一种时序逻辑电路,能够存储和传输数据。它们由触发器组成,这些触发器的连接方式使得一个触发器的输出可以作为另一个触发器的输入,具体取决于所创建的移位寄存器的类型。
    的头像 发表于 09-20 10:44 4381次阅读
    什么是<b class='flag-5'>移位寄存器</b>?数字电路中的<b class='flag-5'>寄存器</b>类型有哪些呢?

    使用移位寄存器构建环形计数器电路

    移位寄存器是一种重要的数字电路元件,可用于构建各种电路,包括环形计数器。在这篇文章中,我们将介绍如何使用移位寄存器来构建一个环形计数器电路。
    的头像 发表于 07-09 11:42 2307次阅读

    移位寄存器连接方法及类型

    移位寄存器在一条线上接收传输的4位和8位信号,并一一发送出去。反之亦然,它的作用是将海量的数据分拣到每一位,进行转换和传输数据,移位寄存器允许高速传输大量信号而无需大量布线。在本文中将解释此类移位寄存器
    的头像 发表于 07-07 10:50 1693次阅读

    使用移位寄存器构建一个环形计数器电路

    移位寄存器可用于各种电路。例如,如果您稍微修改串行输入 – 并联输出移位寄存器,则可以创建一个环形计数器电路,如下所示:
    的头像 发表于 06-29 11:24 818次阅读
    使用<b class='flag-5'>移位寄存器</b>构建一个环形计数器电路

    什么是移位寄存器移位寄存器的用途是什么?

    移位寄存器是数字电子学中的常见构建模块,用于存储和移动位,例如,从串行数据转换为并行数据,反之亦然。
    的头像 发表于 06-29 11:21 4914次阅读
    什么是<b class='flag-5'>移位寄存器</b>?<b class='flag-5'>移位寄存器</b>的用途是什么?

    Arduino 74hc595移位寄存器

    电子发烧友网站提供《Arduino 74hc595移位寄存器.zip》资料免费下载
    发表于 06-14 10:03 3次下载
    Arduino 74hc595<b class='flag-5'>移位寄存器</b>

    基于移位寄存器TDM的实现方式

    设计中两片FPGA分割边界的数据Sig1、Sig2、Sig3、Sig4……等一大波的信号被并行地加载到传输时钟的上升沿上的移位寄存器中,并用相同的时钟移出。
    发表于 05-26 14:08 122次阅读
    基于<b class='flag-5'>移位寄存器</b>TDM的实现方式

    基于移位寄存器的TDM的实现方式

    设计中两片FPGA分割边界的数据Sig1、Sig2、Sig3、Sig4……等一大波的信号被并行地加载到传输时钟的上升沿上的移位寄存器中,并用相同的时钟移出。
    发表于 05-23 15:42 209次阅读
    基于<b class='flag-5'>移位寄存器</b>的TDM的实现方式