FPGA-Verilog实例----线性反馈移位寄存器(LFSR)
目录
- 一、概述
- 二、原理
- 三、Verilog实现
一、概述
线性反馈移位寄存器(LFSR)的英文全称为:Linear Feedback Shift Register
是移位寄存器的一种,通常用于在数字电路中产生伪随机数
通过一定的算法对事先选定的随机种子(seed)做一定的运算(选取哪些位置 用于移位,是需要进行预先设计好的)可以得到一组人工生成的周期序列,在这组序列中以相同的概率选取其中一个数字,该数字称作伪随机数。
这里的“伪”的含义是,由于该随机数是按照一定算法模拟产生的,其结果是确定的,是可见的,因此并不是真正的随机数。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要,如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。
LFSR代表线性反馈移位寄存器,它是一种在FPGA内部有用的设计。 LFSR易于合成,这意味着它们占用的资源相对较少,并且可以在FPGA内部以很高的时钟速率运行。 使用LFSR可以使许多应用受益,包括:
计数器(Counters)
测试码型发生器(Test Pattern Generators)
数据加扰(Data Scrambling)
密码学(Cryptography)
二、原理
线性反馈移位寄存器实现为FPGA内部的一系列触发器,这些触发器连接在一起作为移位寄存器。 影响下一个状态的比特位叫做抽头,移位寄存器链的多个抽头用作XOR或XNOR门的输入。 然后,此门的输出用作对移位寄存器链开始的反馈,因此用作LFSR中的反馈。
运行LFSR时,由各个触发器生成的模式是伪随机的,这意味着它接近随机。 它不是完全随机的,因为从LFSR模式的任何状态,您都可以预测下一个状态。 有一些重要的移位寄存器属性需要注意:
FPGA-Verilog实例----线性反馈移位寄存器(LFSR)相关推荐
- 四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)
移位寄存器总结 一.前言 二.简单循环左移/右移/双向移位寄存器 2.1 简单循环左移/右移/双向移位寄存器 2.2 verilog代码 2.3 Testbench 2.4 仿真结果 三.逻辑移位与算 ...
- 线性反馈移位寄存器LFSR(斐波那契LFSR(多到一型)和伽罗瓦LFSR(一到多型)|verilog代码|Testbench|仿真结果)
线性反馈移位寄存器LFSR 一.前言 二.LFSR简介 三.斐波那契LFSR和伽罗瓦LFSR 3.1 斐波那契LFSR 3.1.1 斐波那契LFSR 3.1.2 verilog代码 3.1.3 Tes ...
- 线性反馈移位寄存器(LFSR) ______FPGA产生基于LFSR的伪随机数
FPGA产生基于LFSR的伪随机数 https://blog.csdn.net/qq_34070723/article/details/89736772 1.概念 通过一定的算法对事先选定的随机种子( ...
- 线性反馈移位寄存器-LFSR
LFSR badmonkey的博客 最开始了解到LFSR的时候是在学习MT19937伪随机数生成器的时候,当时也是初步了解.也没有用代码实现过,最近做了几道相关的题,在这里记录一下. 原理 证明过程不 ...
- 【数字IC/FPGA】线性反馈移位寄存器
线性反馈移位寄存器 LFSR用于产生可重复的伪随机序列PRBS,该电路有n级触发器和一些异或门组成,如下图所示.它和移位寄存器最大的区别就是他有反馈. 其中,gng_ngn为反馈系数,取值只能为0或 ...
- 序列密码体制(python随机数密码,RC4,线性反馈移位寄存器
目录 概念: Vernam密码技术(序列密码的起源 伪随机数 线性反馈移位寄存器: 线性反馈移位寄存器LFSR 概念: 明文按一定长度分组后表示成一个序列,称为明文流.加密时,由种子密钥通过密钥流生产 ...
- 流密码(一)同步流密码、自同步流密码以及线性反馈移位寄存器
正式进入密码学领域,发现密码学更像是一门数学,主要是对数论.近世代数的简单应用以及运用在算法中,常常结合模运算以及数字逻辑运算. 流密码的第一部分主要是比较了同步流密码和自同步流密码,其中自同步流密码 ...
- 线性反馈移位寄存器(LSFR)
线性反馈移位寄存器(LSFR) 流密码的流密钥产生器可以通过线性驱动和非线性组合两部分来实现.而线性驱动部分可以由线性反馈移位寄存器(LFSR)来实现. 线性反馈移位寄存器(LFSR):通常由移位寄存 ...
- LFSR线性反馈移位寄存器Verilog实现
用Verilog实现如下图所示的线性反馈移位寄存器: The reset should resetthe LFSR to 1 直接写逻辑门的代码 这种写法比较笨拙. 这里寄存器只有5 bits,数量不 ...
- 【Verilog基础】一文搞懂线性反馈移位寄存器(LFSR)
文章目录 一.理论 1.1.LFSR 引入 1.1.1.移位寄存器 1.1.2.反馈移位寄存器 1.1.3.线性反馈移位寄存器 1.2.LFSR深入及m序列介绍 1.2.1.LFSR的反馈函数 1.2 ...
最新文章
- linux 安装jdk1.8 rpm包
- 小型化RDA5807调频收音模块实验板
- JavaWeb学习总结(九)--JDBC入门
- stl-map/set
- Linux shell 条件判断if
- uinavigation样式
- 【转】刨根究底字符编码【2.0版】(1):开篇
- php+页面加载进度,基于jQuery实现模拟页面加载进度条_jquery
- jq判断html为空,jquery如何判断是否为null?
- 录屏 模拟器_系统自带的录屏好用吗?其实有功能更强大的软件
- 应用PIC16F1938中IIC读取LM75A温度
- ES6学习之Promise
- Python使用requests发送post请求
- 手把手教学电信天翼校园接入无线路由器(Windows Server版)
- HTML5游戏开发5条建议及开发工具分享
- 北理乐学大学计算机实验报告,北理乐学实验六.doc
- SAP License:FI-现金流量表的几种实现方式
- 出国旅行 Android软件,出国旅行必备实用app,你拥有几款
- cass简码大全_考考你......列出 南方cass 简码指令50个。
- 【面试智力题】一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到十楼,怎样拿到最大的一颗?
热门文章
- 简单介绍几种Java后台开发常用框架组合
- c语言算法骑士,[算法]C语言实现 骑士旅游(递归)
- 智能AI机器人源码,电话机器人源码和系统部署运行环境freeswitch
- 超详细的SFtp工具类及使用
- java如何看jdk文档_如何在IntelliJ IDEA中查看JDK外部文档?
- [c#]喜马拉雅FM音频批量下载器开发手记
- Vue开发实例(01)之环境搭建nodejs与运行第一个Vue项目
- bat批处理命令详解
- MySQL存数学符号,如何将数学符号保存到mysql或mssql数据库?
- google css兼容,CSS 针对谷歌或者360(Chrome) safari的webkit核心浏览器 兼容性