名称:线性反馈移位寄存器(LFSR)设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
线性反馈移位寄存器(LFSR)
1、设计线性反馈移位寄存器
2、使用状态机的方式设计,使用2种不同的写法
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testebnch
6. 仿真图
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. Testebnch
6. 仿真图
部分代码展示:
`timescale?1ns?/?1ps //3,12,14,15,21,28,31 module?data( ???input?clk, ???input?rstn,//0x02468ACD ???input?[2:0]?state, ???output?reg?[7:0]?data_out?? ????); reg?[31:0]??LFSR_reg=32'd0;? parameter?s_idle=3'd0; parameter?s_shift=3'd1; parameter?s_data_1=3'd2; parameter?s_data_2=3'd3; parameter?s_data_3=3'd4; parameter?s_data_4=3'd5; always@(posedge?clk?or?negedge?rstn) if(rstn==0) LFSR_reg<=32'h02468ACD; else//3,12,14,15,21,28,31 if(state==s_shift)begin LFSR_reg[0]<=(((((LFSR_reg[31]?^?LFSR_reg[28])^LFSR_reg[21])^LFSR_reg[15])^LFSR_reg[14])^LFSR_reg[12])^LFSR_reg[3]; LFSR_reg[31:1]<=LFSR_reg[30:0]; end else LFSR_reg<=LFSR_reg; always@(posedge?clk?or?negedge?rstn) if(rstn==0) data_out<=8'd0; else case(state) s_data_1:data_out<=LFSR_reg[7:0]; s_data_2:data_out<=LFSR_reg[15:8]; s_data_3:data_out<=LFSR_reg[23:16]; s_data_4:data_out<=LFSR_reg[31:24]; default:data_out<=8'd0; endcase endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1270
阅读全文