线性反馈移位寄存器(LFSR, Linear Feedback Shift Register)

给定前一个状态的输出,将该输出的线性函数再作为输入的移位寄存器。

其应用主要是生成伪随机数、伪随机噪声序列等等。

1
2
3
4
5
6
7
8
module lfsr(input clk, reset, en, output reg [7:0] q);
always @(posedge clk or posedge reset) begin
if (reset)
q <= 8'd1; // can be anything except zero
else if (en)
q <= {q[6:0], q[7] ^ q[5] ^ q[4] ^ q[3]}; // polynomial for maximal LFSR
end
endmodule