19 lines
363 B
Coq
19 lines
363 B
Coq
|
module LFSR(
|
||
|
input i_Clk,
|
||
|
output [SIZE-1:0] o_LFSR_Data,
|
||
|
output o_LFSR_Done
|
||
|
);
|
||
|
parameter SIZE = 22;
|
||
|
|
||
|
reg [SIZE-1:0] r_LFSR;
|
||
|
wire w_XNOR;
|
||
|
|
||
|
always @(posedge i_Clk) begin
|
||
|
r_LFSR <= {r_LFSR[SIZE-2:0], w_XNOR};
|
||
|
end
|
||
|
|
||
|
assign w_XNOR = r_LFSR[SIZE-1] ^~ r_LFSR[SIZE-2];
|
||
|
assign o_LFSR_Done = (r_LFSR == 0);
|
||
|
assign o_LFSR_Data = r_LFSR;
|
||
|
endmodule
|