See Lfsr5 for explanations.
Build a 32-bit Galois LFSR with taps at bit positions 32, 22, 2, and 1.
module top_module(
input clk,
input reset, // Active-high synchronous reset to 32'h1
output [31:0] q
);
always@ (posedge clk)
if(reset)
q <= 32'h1;
else begin
q <= {q[0], q[31:23], q[22] ^ q[0], q[21:3], q[2]^q[0], q[1] ^ q[0]};
end
endmodule
该模块描述了一个32位的Galois线性反馈移位寄存器(LFSR),它在时钟的上升沿触发。在同步复位为高时,LFSR被初始化为32h1。在非复位状态下,LFSR的更新基于特定的位位置(32,22,2,和1)的tap,利用异或操作生成下一个状态。
704

被折叠的 条评论
为什么被折叠?



