100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【数字IC/FPGA】线性反馈移位寄存器

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

时间:2024-06-20 22:14:34

相关推荐

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

线性反馈移位寄存器

LFSR用于产生可重复的伪随机序列PRBS,该电路有n级触发器和一些异或门组成,如下图所示。它和移位寄存器最大的区别就是他有反馈

其中,gng_ngn​为反馈系数,取值只能为0或1,取为0时表明不存在该反馈之路,取为1时表明存在该反馈之路;这里的反馈系数决定了产生随机数的算法的不同。用反馈函数表示成y=a0x0+a1x+a2x2.......y=a_0x^0+a_1x+a_2x^2.......y=a0​x0+a1​x+a2​x2.......反馈函数为线性的叫线性移位反馈序列,否则叫非线性反馈移位序列。

LFSR的初始值被称为伪随机序列的种子,影响下一个状态的比特位叫做抽头。LFSR的触发器编号一般从1开始,抽头取值范围是1到2n−11到2^n-11到2n−1。抽头序列可以用来描述该LFSR的反馈多项式。由n个触发器构成的LFSR电路可以产生一个周期为2n−12^n-12n−1的序列。理论表明,要使LFSR得到最长的周期,这个抽头序列构成的多项式加1就是其反馈多项式,必须是一个本原多项式,也就是说这个多项式不可约

LSFR的分类

目前常用的LFSR电路可分为斐波那契LFSR伽罗瓦LFSR

斐波那契LFSR

斐波那契LFSR也可以称为多到一型LFSR,即抽头序列对应bit位置的多个触发器的输出通过异或逻辑来驱动一个触发器的输入。如下图所示

伽罗瓦LFSR

伽罗瓦LFSR和斐波那契刚好相反,它是一到多型的LFSR,即最后一个触发器的输出通过与抽头序列对应位置触发器前一级触发器的输出异或逻辑驱动多个抽头序列对应位置触发器的输入。如下图所示

代码实现

`timescale 1ns / 1ps//// Company: // Engineer: // // Create Date: /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<=4'b1001;elsebegino1<={o1[2:0],o1[3]^o1[2]};end//always_ff@(posedge clk,negedge rst_n)if(~rst_n)o2<=3'b001;elsebegino2<={o2[1],o2[2]^o2[0],o2[2]};endendmodule

仿真结果

总结

一到多型的伽罗瓦LFSR具有更高的速度,因为它的两个触发器之间仅使用一个异或门,关键路径比较短,可以达到更高的时钟频率

需要注意的是,应避免寄存器进入全为0的禁止态,因为一旦进入全零状态,LSFR的状态永远也无法发生改变了

预防办法:

(1)将寄存器复位到某个允许的状态

(2)用额外的电路让寄存器能够从禁止状态自动进入允许状态

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。