LFSR+CRC

LFSR(Linear feedback shift register):线性反馈移位寄存器

CRC(cyclic redundancy check):循环冗余校验码

 

 LFSR

线性反馈移位寄存器(LFSR)是内测试电路中最基本的标准模块结构,既用作伪随机测试码产生器,也作为压缩测试结果数据的特征分析器。

一个n阶的LFSR由n个触发器和若干个异或门组成。在实际应用当中,主要用到两种类型的LFSR,即异或门外接线性反馈移位寄存器(IE型LFSR,图1)和异或门内接线性反馈移位寄存器(EE型LFSR,图2)。其中g0 g1 g2 gn为’0’或’1’, Q1 Q2 Q3 Qn为LFSR的输出,M(x)是输入的码字多项式,如M(x)=x4+ x1+ 1,表示输入端的输入顺序为11001,同样,LFSR的结构也可以表示为多项式G(x),称为生成多项式:

G(x)= gn*xn+ …+g1*x1+ g0;

图1 IE型LFSR

图2 EE型LFSR

以EE型LFSR为例来分析LFSR的工作原理以应用,参照有趣的线性反馈移位寄存器(LFSR) - 与非网的博文,并对一些地方加以说明。

以n  = 3 来做个例子,具体的电路图如图3所示:

图3 LFSR的电路结构

假设开始的时候(D2,D1,D0 ) = (0,0,1),那么每过一个时钟周期会进行跳变一次,可以看到具体的跳变如图4所示:

图4 LFSR的输出跳变图

然后我们可以看到这个计数器循环起来了,无论进入那样一个状态除了0之外,都可以循环着回来,其实这里就相当于了一个3bit的伪随机数,很有意思,不是所有的多项式都有这个特性,我们现在在从数学上面来看看这个问题,其实最上面的电路是可以看成是一个除法电路,在Galois域的一个除法电路。现在假设的是R(x)是寄存器中剩余的数据,M(x)是输入的码字多项式,然后数学公式可以表示成:

然后分别计算出了M(x)的各种情况,

对于这个部分的计算我开始走进了误区,因为开始我把这的除法当作二进制除法来算了,所以一直没得到正确的结果,后来我明白了这的除法是模二的除法,在LFSR的结果中,多项式中的“+”都是模2加,就是异或运算,所以是没有进位的概念;同样,这里的除法秀的也是模2除法,即除法过程中用到的减法是模2减法,是不会产生加法进位和减法借位的运算,所以在进行模2除法时,只要部分余数首位为1,便可上商1,否则上商0,然后按照模2减法求得余数,当被除数被除完时,最后得到比除数少一位的余数。

这里用一个例子说明一下,比如M(x)=x7时,R(x)=1;模2的计算公式如下:

所以这里一定要区别模2和二进制数之间的运算的区别。

M(x)和R(x)到底是什么意义呢?

比如M(x)=1时,R(x)=1,指的就是当M(x)输入一个1时,这时的R(x)为1,即寄存器剩余的数为001,即Q1=1,Q2=0,Q3=0。

又M(x)=x时,R(x)=x,指的就是当M(x)顺序输入1,0时,这时的R(x)为x,即寄存器剩余的数为010,即Q1=0,Q2=1,Q3=0。

同理,可以知道,当M(x)=x6时,R(x)=x2+1,指的就是当M(x)顺序输入1,0,0,0,0,0,0时,这时的R(x)为x2+1,即寄存器剩余的数为010,即Q1=1,Q2=0,Q3=1。

可以看出,当第一个时钟时输入端输入一个1时,以后保持输入端为0,则随着时钟的到来,输入码字多项式就是按照1,x,x2,x3,x4,x5,x6,x7,…,xn这样的顺序发展着,观察前六个输入的R(x)分别对应的输出为:001,010,100,011,101,111,101,111,刚好为除去000的其他七个状态,当M(x)为x7时,输出又回来001,所以输出一直这样循环下去,因此LFSR可以用来BIST的伪随机测试码产生器。

 CRC参考博文http://blog.sina.com.cn/s/blog_468e65190100cxq3.html

循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码又叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幂为N-K=R的多项式G(x)可以使整个编码被除余数为0。根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。 校验码的具体生成过程为:假设发送信息用信息多项式C(X)表示,将C(x)左移R位,则可表示成C(x)*2的R次方,这样C(x)的右边就会空出R位,这就是校验码的位置。通过C(x)*2的R次方除以生成多项式G(x)得到的余数就是校验码。

通过CRC的生成原理知道CRC的检验码生成是通过除法得到,由此联想到可以通过LFSR来产生校验码。

假设原信息码子多项式为

生成多项式为

那么CRC的码字为

,使用用LFSR电路来进行实现,将M(x)向左移r位在电路中的意义即为输入完信息码后再输入r个0,所以在电路上的表现就如图5所示。

图5 使用LFSR来产生CRE校验码

将这个时刻产生的寄存器输入添加到原信息码的后边就进行完了CRC编码,同样接收端可以使用LFSR来进行CRC检验

[转载]LFSR的工作原理以及LFSR在CRC上的应用相关推荐

  1. 转载:磁盘工作原理、文件系统及i节点、块存储、文件存储、对象存储、DAS、NAS、还有SAN

    本文出自 "11366164" 博客,转载请与作者联系! (一)磁盘工作原理 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从 ...

  2. 转载 调试器工作原理

    调试器工作原理--基础篇 本文是一系列探究调试器工作原理的文章的第一篇.我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起. 关于本文 我打算在这篇文章中介绍关于Li ...

  3. [转载] Web Service工作原理及实例

    一.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量 ...

  4. 计算机领域经典故事,[转载]计算机的工作原理(1):一个经典的故事

    计算机技术的实现是人类思维的产物,实际上是人类以自己的思维方式为蓝本设计出来的一种模拟机,因此远在工业革命以前,人们就已经在思想上进行了极为类似的的模拟实验,这些可以从我们熟知的一个经典的故事中找出. ...

  5. IPM的基本结构和工作原理——IGBT模块在工程上应用的学习报告(一)

    1.IGBT模块的结构 中文全称:绝缘栅双极性晶体管 英文全称:Insulated-gate Bipolar Transistor 具体较为详细的从学术上的介绍,请大家参照王兆安电力电子技术第五版的3 ...

  6. 什么是Vue?Vue的工作原理是什么?

    Vue(读音/Vju:/,类似于View)是一套用于构建用户界面的渐进式框架,与其他大型框架相比,Vue被设计为可以自底向上逐层应用.其他大型框架往往一-开始就对项 目的技术方案进行强制性的要求,而V ...

  7. 计算机操作系统(12):计算机工作原理

    计算机工作原理 编辑 计算机的基本原理是存储程序和程序控制.预先要把指挥计算机如何进行操作的指令序列(称为程序)和原始数据通过输入设备输送到计算机内存贮器中.每一条指令中明确规定了计算机从哪个地址取数 ...

  8. 传感器工作原理_光电式速度传感器的工作原理

    光电式转速传感器基于光电效应.物质(金属或半导体)在光作用下发射电子的现象,称为光电效应.由于被光照射的物体材料不同,所以产生的光电效应也不同,通常,光电效应分为外光电效应和内光电效应. 外光电效应∶ ...

  9. (初学者视角)二极管和三极管的工作原理

    二极管工作原理 N区的自由电子带负电,P区带正电的空穴会吸引自由电子扩散填充 左边失去电子的区域会显示正电,P区得到新的电子会显负电 这整块区域就是耗尽层,也叫PN结. 当电池负极接N区,正极接P区, ...

最新文章

  1. TextView 添加Onclick 无效
  2. 每天一个 Linux 命令(13):less 命令
  3. 中石油训练赛 - The King’s Ups and Downs(记忆化搜索)
  4. DCL双检查锁机制实现线程安全的单例设计模式
  5. 问题 H: Search Problem (V)
  6. Keepalived+Nginx实现高可用,反向代理---模拟实现线上环境
  7. java线程属性_Java 并发 线程属性
  8. 如何更换 Mac 登录画面的背景桌面?
  9. iphone多线程事件循环
  10. 拉格朗日插值的优缺点_对拉格朗日插值法与牛顿插值法的学习和比较
  11. matlab如何提取文本词干,英文词干提取(stemming)算法 - Lovins, Porter
  12. 国内几个使用Ruby开发的网站
  13. Shiro从入门到实战(整合进SpringBoot)
  14. TEM波以及TEM TE TM模的区别
  15. 兄弟连Linux(二)--Linux常用命令
  16. c#Winform自定义控件-目录
  17. U盘制作ubuntu18.04.6系统安装盘
  18. 假设从键盘输入从某日凌晨零点零分零秒到现在已经经历的时间(单位:秒),编译程序计算到现在为止已经过了多少天?现在的时间是多少?
  19. 中国矿业大学计算机学院评优,活动回顾 | 中国矿业大学院研究生会评优工作圆满结束...
  20. 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

热门文章

  1. html 5 压缩zip,Zip
  2. 用例规约初版(希望大家进来修改一下)
  3. 求菲波那切数列第n项
  4. micropython实现mpy的ota(有用,推荐)
  5. matplotlib.plt.subplot()用法
  6. php 获取搜狗微信 sn,记搜狗微信号搜索反爬虫
  7. CF1151F Sonya and Informatics
  8. lnmp一键部署脚本
  9. Win10使用Lenovo Vantage更新驱动后蓝屏,提示system_service_exception ETD.sys如何解决
  10. 用unity做的简单小游戏------“小球酷跑“