名称:流水灯设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
流水灯设计
1、可以通过按键控制流水灯变化频率
2、可以按键切换流水灯模式,共8种不同模式
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 仿真图
按键控制模块
分频模块
8种不同的速率
LED控制模块
8种不同模式
部分代码展示:
//分频模块 module?div( input?clk_in,//50M input?[2:0]?speed,//频率控制 output?clk_1K,//1KHz时钟 output?reg?clk_div ); reg?clk_1KHz=0; reg?[15:0]?div_cnt1K=16'd0; always@(posedge?clk_in) if(div_cnt1K>=16'd25_000)begin//分频产生1K,计数25000翻转 div_cnt1K<=16'd0; clk_1KHz<=~clk_1KHz;//1KHz end else div_cnt1K<=div_cnt1K+16'd1; assign?clk_1K=clk_1KHz; //1Hz reg?clk_1Hz=0; reg?[31:0]?cnt_1Hz=31'd0; always@(posedge?clk_in) if(cnt_1Hz>=32'd25_000_000)begin//50MHz分频到1Hz,计数25_000_000为半个周期 cnt_1Hz<=32'd0; clk_1Hz<=~clk_1Hz;//计数到后翻转 end else cnt_1Hz<=cnt_1Hz+32'd1;//计数 //2Hz reg?clk_2Hz=0; reg?[31:0]?cnt_2Hz=31'd0; always@(posedge?clk_in) if(cnt_2Hz>=32'd12500_000)begin//50MHz分频到2Hz,计数12500_000为半个周期 cnt_2Hz<=32'd0; clk_2Hz<=~clk_2Hz;//计数到后翻转 end else cnt_2Hz<=cnt_2Hz+32'd1;//计数 //3Hz reg?clk_3Hz=0; reg?[31:0]?cnt_3Hz=31'd0; always@(posedge?clk_in) if(cnt_3Hz>=32'd8333333)begin//50MHz分频到3Hz,计数8333333为半个周期 cnt_3Hz<=32'd0; clk_3Hz<=~clk_3Hz;//计数到后翻转 end else cnt_3Hz<=cnt_3Hz+32'd1;//计数 //4Hz reg?clk_4Hz=0; reg?[31:0]?cnt_4Hz=31'd0; always@(posedge?clk_in) if(cnt_4Hz>=32'd6250000)begin//50MHz分频到4Hz,计数6250000为半个周期 cnt_4Hz<=32'd0; clk_4Hz<=~clk_4Hz;//计数到后翻转 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1280
阅读全文