See Lfsr5 for explanations.
Build a 32-bit Galois LFSR with taps at bit positions 32, 22, 2, and 1.
前言
两个输入,包括一个时钟clk,一个高电平有效的同步置位信号reset;一个输出信号q。
代码
module top_module(
input clk,
input reset,
output [31:0] q
);
always@(posedge clk)begin
if(reset) q<=32'd1;
else q<={q[0]^1'b0,q[31:23],q[0]^q[22],q[21:3],q[0]^q[2],q[0]^q[1]};
end
endmodule
总结
对于LFSR而言,只在有抽头的地方异或上q[0],其它地方正常循环右移。