• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

流水灯设计Verilog代码Quartus仿真

09/22 11:12
518
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-241029200614X1.doc

共1个文件

名称:流水灯设计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

  • 2-241029200614X1.doc
    下载

相关推荐