名称:m序列(线性反馈移位寄存器)发生器Verilog代码Quartus仿真(文末获取)
软件:Quartus
语言:Verilog
代码功能:
m序列(线性反馈移位寄存器)发生器
线性反馈移位寄存器设计(m序列)
本源多项式为1+x2+x3+x4+x8
1. 工程文件
2. 程序文件
3. 程序编译
4. Testbench
5. 仿真图
部分代码展示:
//伪随机序列发生器 module M_code( input clk,//时钟 input RESET,//复位 output random_out//输出伪随机信号 ); reg [7:0] shift_data=8'h12;//移位寄存器 parameter polynomial=8'b10001110;//多项式1+x2+x3+x4+x8 //移位 always @(posedge clk or negedge RESET) if (RESET==0) begin shift_data <= 8'h12;//复位,获取初始值(可自定义,但不可为0) end else begin//移位 shift_data[0] <=shift_data[1];//移位 shift_data[1] <=shift_data[2];//移位 shift_data[2] <=shift_data[3];//移位 shift_data[3] <=shift_data[4];//移位 shift_data[4] <=shift_data[5];//移位 shift_data[5] <=shift_data[6];//移位 shift_data[6] <=shift_data[7];//移位 //反馈多项式 shift_data[7] <=(shift_data[0] & polynomial[7]) ^ //异或 (shift_data[1] & polynomial[6]) ^ //异或 (shift_data[2] & polynomial[5]) ^ //异或 (shift_data[3] & polynomial[4]) ^ //异或 (shift_data[4] & polynomial[3]) ^ //异或 (shift_data[5] & polynomial[2]) ^ //异或 (shift_data[6] & polynomial[1]) ^ //异或 (shift_data[7] & polynomial[0]) ; //异或 end
源代码
扫描文章末尾的公众号二维码