blob: 4153feded814af2db24f58acfdb90be3be81ef1e [file] [log] [blame] [edit]
// Linear feedback shift register.
//
// Useful as a simple psuedo-random number generator.
module LFSR #(
parameter WIDTH = 16,
parameter POLY = 16'hD008
) (
input rst,
input clk,
input [WIDTH-1:0] seed,
output reg [WIDTH-1:0] r
);
wire feedback = ^(r & POLY);
always @(posedge clk) begin
if(rst) begin
r <= seed;
end else begin
r <= {r[WIDTH-2:0], feedback};
end
end
endmodule