数字IC前端学习笔记:LFSR(线性反馈移位寄存器)

张开发
2026/4/3 14:34:27 15 分钟阅读
数字IC前端学习笔记:LFSR(线性反馈移位寄存器)
相关文章数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482一、引言LFSRLinear Feedback Shift Register线性反馈移位寄存器是一种利用寄存器移位和线性反馈逻辑产生伪随机序列的数字电路结构常用于生成PRBSPseudo-Random Binary Sequence伪随机二进制序列。它通常由若干级触发器和异或门组成在每个时钟沿到来时寄存器中的数据按固定方向移位同时某些寄存器位经过异或后的结果反馈到输入端从而形成新的状态。LFSR的特点是硬件开销小、速度快、实现简单因此在数字IC设计中应用非常广泛。需要注意的是LFSR产生的是伪随机序列并不是真随机序列也就是说在相同初始值下它每次产生的序列都是固定且可重复的。另外LFSR的初始值通常称为种子。对于异或型LFSR来说全0状态一般不能作为初始值因为一旦进入全0反馈结果始终为0寄存器会一直停留在该状态无法跳出。对于n位LFSR如果反馈抽头选择得当其最大周期可以达到这也是LFSR被广泛用于伪随机序列生成的重要原因。二、斐波那契型LFSR和伽罗瓦型LFSRLFSR常见有两种实现形式斐波那契 LFSR和伽罗瓦型LFSR。1斐波那契型LFSR又称外反馈LFSR、多到一LFSR它的特点是多个抽头位先经过异或运算生成一个统一的反馈值再送到移位寄存器的输入端。你图中的第一种结构就属于这一类。它的优点是形式直观容易从反馈多项式理解其原理但当抽头较多时反馈路径上的组合逻辑可能会稍长。下图展示了斐波那契型LFSR的结构。在该例中x3和x2输出的结果异或运算并连接到最前级x1的输入反馈多项式意思即为在x3和x2的输出处有抽头反馈。而且可以看到异或门的反馈是在外部的即异或门的输入和输出连接的并不是相邻寄存器。2伽罗瓦型LFSR又称内反馈LFSR、一到多LFSR不是把所有反馈集中到输入端而是把反馈逻辑分散到寄存器链路内部。它的特点是异或逻辑分布更均匀组合路径更短因此在高速设计中通常更有优势。下图展示了伽罗瓦型LFSR的结构。在该例中最后一级触发器的输出和x3输出的结果异或运算并连接到x3的下一级x2的输入而且可以看到异或门的反馈是在内部的即异或门的一个输入和输出连接的是相邻寄存器。这两种结构本质上都能实现伪随机序列的生成只是反馈方式不同。一般来说斐波那契型更适合原理分析伽罗瓦型更适合工程实现。三、Verilog实现示例module lfsr_fibonacci_8 ( input wire clk, input wire rst_n, input wire en, output reg [7:0] lfsr_q ); always (posedge clk or negedge rst_n) begin if(!rst_n) lfsr_q 8h1; // 不能置 0 else if(en) lfsr_q {lfsr_q[6:0], lfsr_q[7] ^ lfsr_q[5] ^ lfsr_q[4] ^ lfsr_q[3]}; end endmodulemodule lfsr_galois_8 ( input wire clk, input wire rst_n, input wire en, output reg [7:0] lfsr_q ); wire feedback; assign feedback lfsr_q[7]; always (posedge clk or negedge rst_n) begin if(!rst_n) lfsr_q 8h1; else if(en) begin lfsr_q[7] lfsr_q[6]; lfsr_q[6] lfsr_q[5]; lfsr_q[5] lfsr_q[4] ^ feedback; lfsr_q[4] lfsr_q[3] ^ feedback; lfsr_q[3] lfsr_q[2] ^ feedback; lfsr_q[2] lfsr_q[1]; lfsr_q[1] lfsr_q[0]; lfsr_q[0] feedback; end end endmodule四、LFSR的用法LFSR在数字电路中有很多典型用途。最常见的一类是伪随机序列发生器。例如在高速接口测试中常见的PRBS7、PRBS15、PRBS31等测试码型本质上都可以通过LFSR产生。这类序列比固定码型更接近真实业务数据因此在链路误码测试中非常常用。第二类应用是扰码器和解扰器。在通信系统中如果数据中长期出现连续0或连续1会影响时钟恢复和频谱特性。LFSR可以生成一个伪随机序列与原始数据进行异或从而打散数据分布接收端只要使用同样的序列再次异或就可以恢复出原始数据。第三类应用是LFSR计数器。与普通二进制计数器相比LFSR计数器不按自然数顺序计数而是在若干状态之间伪随机遍历。它的优点是翻转位少、速度快、逻辑简单因此在某些地址遍历、测试激励和状态轮询场景中很有实用价值。此外LFSR在BIST、CRC相关硬件结构、测试响应压缩等场景中也非常常见。因此LFSR 虽然结构简单但却是数字IC设计中一个非常基础且重要的模块。以上内容来源于《Verilog高级数字系统设计技术和实例分析》

更多文章