LFSR用于产生可重复的伪随机序列PRBS,该电路有n级触发器和一些异或门组成,如下图所示。它和移位寄存器最大的区别就是他有反馈。 其中,
g
n
g_n
gn为反馈系数,取值只能为0或1,取为0时表明不存在该反馈之路,取为1时表明存在该反馈之路;这里的反馈系数决定了产生随机数的算法的不同。用反馈函数表示成
y
=
a
0
x
0
+
a
1
x
+
a
2
x
2
.
.
.
.
.
.
.
y=a_0x^0+a_1x+a_2x^2.......
y=a0x0+a1x+a2x2.......反馈函数为线性的叫线性移位反馈序列,否则叫非线性反馈移位序列。 LFSR的初始值被称为伪随机序列的种子,影响下一个状态的比特位叫做抽头。LFSR的触发器编号一般从1开始,抽头取值范围是
1
到
2
n
−
1
1到2^n-1
1到2n−1。抽头序列可以用来描述该LFSR的反馈多项式。由n个触发器构成的LFSR电路可以产生一个周期为
2
n
−
1
2^n-1
2n−1的序列。理论表明,要使LFSR得到最长的周期,这个抽头序列构成的多项式加1就是其反馈多项式,必须是一个本原多项式,也就是说这个多项式不可约
目前常用的LFSR电路可分为斐波那契LFSR和伽罗瓦LFSR。
斐波那契LFSR斐波那契LFSR也可以称为多到一型LFSR,即抽头序列对应bit位置的多个触发器的输出通过异或逻辑来驱动一个触发器的输入。如下图所示
伽罗瓦LFSR和斐波那契刚好相反,它是一到多型的LFSR,即最后一个触发器的输出通过与抽头序列对应位置触发器前一级触发器的输出异或逻辑驱动多个抽头序列对应位置触发器的输入。如下图所示
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2022/03/09 15:40:06
// Design Name:
// Module Name: LSFR1
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module LSFR(
input logic clk,
input logic rst_n,
output logic [3:0] o1,
output logic [2:0] o2
);
always_ff@(posedge clk,negedge rst_n)
if(~rst_n)
o1
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?