利用FPGA产生随机数,LFSR如何选择反馈项?
================================
================================
LFSR(Linear Feedback Shift Register,线性反馈移位寄存器)是一种经典的数字逻辑电路,常用于生成伪随机序列。它的结构简单,但功能强大,被广泛应用于通信、加密、测试模式生成等领域。以下是关于LFSR的一些介绍:
结构和原理:
LFSR由一组寄存器单元组成,每个寄存器单元存储一个比特。在每个时钟周期,所有寄存器单元中的比特都向右移动一位,同时根据预先设定的反馈多项式进行计算,得到新的输入比特。新的输入比特被存储在最左边的寄存器单元中,而原来最右边的比特则被丢弃。反馈多项式通常是一个不可约的多项式,通过它可以产生最大周期的伪随机序列。
工作原理:
-
初始化:LFSR的工作开始于一个初始状态,称为种子值。在每次使用前,通常需要将种子值加载到LFSR中。
-
时钟驱动:LFSR是一个同步电路,其移位操作受时钟控制。在每个时钟周期,寄存器中的比特向右移动一位。
-
反馈计算:在每个时钟周期,根据反馈多项式计算一个新的比特,并将其放入寄存器的最左边。这个计算通常是一个异或运算。
-
输出:LFSR的输出是寄存器中的某些比特,可以根据需要从寄存器中选择输出。
在设计 LFSR 时,反馈项可以根据下面 Xilinx的手册进行选取: