线性反馈移位寄存器(linear feedback shift register, LFSR)是指,给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。

移位寄存器是产生信号和序列的常用设备,它分为线性和非线性两大类,著名的一序列和序列就是分别由线性和非线性反馈移位寄存器所生成的。线性反馈移位寄存器(Linear feedback shift register,LFSR)是

通常由动态或静态主从型触发器构成。反馈回路由异或门构成。其特性通常由一个特征多项式表征。使用二输入异或门计算反馈函数的最大长度或近最大长度不纠立寄存器的特征多项式。这种电路的特点是结构简单,它的上限移位速度取决于移位单元的延迟时间和二输入异或门的延迟时间,因此,能获得较高的速度 [1]  。线性反馈移位寄存器中的移位单元是由主一从型边沿触发器构成的。在这种结构的移位单元中,主从两极锁存器在两相不交叠时钟的控制下,使数据在时钟上升沿被采样,并一直保持到下一个时钟上升沿。电路中四个移位单元都是由动态主从边沿型触发器构成的,每次移位的操作都需要数据串行依次经过两级锁存器。

赋给寄存器的初始值叫做“种子”,因为线性反馈移位寄存器的运算是确定性的,所以,由寄存器所生成的数据流完全决定于寄存器当时或者之前的状态。而且,由于寄存器的状态是有限的,它最终肯定会是一个重复的循环。然而,通过本原多项式,线性反馈移位寄存器可以生成看起来是随机的且循环周期非常长的序列。移位寄存器结构简单,运行速度快,实用的密钥流产生器大多基于移位寄存器,移位寄存器理论也成了现代流密码体制的基础。

线性反馈移位寄存器的应用包括生成伪随机数,伪随机噪声序列,快速数字计数器,还有扰频器。线性反馈移位寄存器在硬件和软件方面的应用都非常得普遍。循环冗余校验中用于快速校验传输错误的数学原理,就与线性反馈移位寄存器密切相关。

#include <stdint.h>
unsigned lfsr_fib(void)
{uint16_t start_state = 0xACE1u;  /* Any nonzero start state will work. */uint16_t lfsr = start_state;uint16_t bit;                    /* Must be 16-bit to allow bit<<15 later in the code */unsigned period = 0;do{   /* taps: 16 14 13 11; feedback polynomial: x^16 + x^14 + x^13 + x^11 + 1 */bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5)) & 1u;lfsr = (lfsr >> 1) | (bit << 15);++period;}while (lfsr != start_state);return period;
}

线性反馈移位寄存器(LFSR)相关推荐

  1. 四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

    移位寄存器总结 一.前言 二.简单循环左移/右移/双向移位寄存器 2.1 简单循环左移/右移/双向移位寄存器 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.逻辑移位与算 ...

  2. 线性反馈移位寄存器LFSR(斐波那契LFSR(多到一型)和伽罗瓦LFSR(一到多型)|verilog代码|Testbench|仿真结果)

    线性反馈移位寄存器LFSR 一.前言 二.LFSR简介 三.斐波那契LFSR和伽罗瓦LFSR 3.1 斐波那契LFSR 3.1.1 斐波那契LFSR 3.1.2 verilog代码 3.1.3 Tes ...

  3. 线性反馈移位寄存器(LFSR) ______FPGA产生基于LFSR的伪随机数

    FPGA产生基于LFSR的伪随机数 https://blog.csdn.net/qq_34070723/article/details/89736772 1.概念 通过一定的算法对事先选定的随机种子( ...

  4. 线性反馈移位寄存器-LFSR

    LFSR badmonkey的博客 最开始了解到LFSR的时候是在学习MT19937伪随机数生成器的时候,当时也是初步了解.也没有用代码实现过,最近做了几道相关的题,在这里记录一下. 原理 证明过程不 ...

  5. 序列密码体制(python随机数密码,RC4,线性反馈移位寄存器

    目录 概念: Vernam密码技术(序列密码的起源 伪随机数 线性反馈移位寄存器: 线性反馈移位寄存器LFSR 概念: 明文按一定长度分组后表示成一个序列,称为明文流.加密时,由种子密钥通过密钥流生产 ...

  6. 流密码(一)同步流密码、自同步流密码以及线性反馈移位寄存器

    正式进入密码学领域,发现密码学更像是一门数学,主要是对数论.近世代数的简单应用以及运用在算法中,常常结合模运算以及数字逻辑运算. 流密码的第一部分主要是比较了同步流密码和自同步流密码,其中自同步流密码 ...

  7. 线性反馈移位寄存器(LSFR)

    线性反馈移位寄存器(LSFR) 流密码的流密钥产生器可以通过线性驱动和非线性组合两部分来实现.而线性驱动部分可以由线性反馈移位寄存器(LFSR)来实现. 线性反馈移位寄存器(LFSR):通常由移位寄存 ...

  8. 【数字IC/FPGA】线性反馈移位寄存器

    线性反馈移位寄存器 LFSR用于产生可重复的伪随机序列PRBS,该电路有n级触发器和一些异或门组成,如下图所示.它和移位寄存器最大的区别就是他有反馈. 其中,gng_ngn​为反馈系数,取值只能为0或 ...

  9. HDLBits 系列(21)LFSR(线性反馈移位寄存器)

    目录 5 bit LFSR 3 bit LFSR 32 bit LFSR 5 bit LFSR A linear feedback shift register is a shift register ...

  10. quartus仿真6:74194构建线性反馈移位寄存器计数器LFSR

    扭环形计数器具有8个有效状态,仍然有8个无效状态.进一步提高移位寄存器构建的计数器的有效状态数,可采用线性反馈移位寄存器计数器(Linear Feedback Shift-Register Count ...

最新文章

  1. Android提升篇系列:Android项目代码优化实践
  2. php168站内统计,PHP168整站系统0DAY
  3. mvc EF 从数据库更新实体,添加视图实体时添加不上的问题
  4. C++中引用与指针的区别(详细介绍)
  5. 数据特征分析-统计分析
  6. webUI自动化二-获取元素信息相关方法
  7. HttpClient settimeout 设置
  8. 学习用 Keras 搭建 CNN RNN 等常用神经网络
  9. 不可以! 南阳理工ACM 题目1071
  10. LayaBox1.7.16 TiledMap 销毁的问题,TiledMap销毁后屏幕变灰,不能显示
  11. 100套精品PPT模板免费拿!以后再也不用怕老板叫你制作PPT了
  12. React结合es6实例教程
  13. Python系统学习第二十四课
  14. 用Python代码来下载任意指定网易云歌曲
  15. redis主从结构 (一主一从,一主多从,主从从)
  16. Axure幻灯片案例
  17. shiro使用Md5加密
  18. Web 前端从入门菜鸟到实践老司机所需要的资料与指南合集
  19. (转)音频输出PCM与LPCM有什么不同
  20. sql查询语句-平均分、最高最低分、排序

热门文章

  1. 开发工具篇 程序员计算器
  2. 今天第72个儿童节,程序猿“童”样精彩~
  3. 2020离散数学系列
  4. Android-EasyChart第二波饼图
  5. 我的世界java版伪光影_我的世界光影核心V2伪风光材质包
  6. c4d学习笔记-快捷键
  7. pytorch+cuda+cudnn下载、安装和配置
  8. JAVA处理字符串压缩以及文件压缩
  9. 从零开始教你成为装机大神
  10. oracle中分析函数range值范围,Oracle实战4(分析函数)