名称:8路LED流水灯设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
8路LED流水灯设计
1、设计8路led流水灯;
2、流水灯具有4种变化模式:从左到右依次点亮变化;从右到左依次点亮变化;从两边到中间再到两边点亮变化;从左到右熄灭变化;
3、不同模式通过开关控制。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. 仿真文件
6. 仿真图
部分代码展示:
module?led_ctrl( input?clk_in,//系统时钟 input?reset_n,//低电平有效的复位信号--key0 input?[1:0]switch,//拨码开关--key1~2 output?reg[7:0]led//流水灯的输出 ); reg?[31:0]cnt0?=?32'd0; reg?[3?:0]cnt1?=?4'd0; reg?clk_1hz?=?1'b0;//分频输出1hz频率的信号 parameter?N=32'd50_000_000;//50MHz,若晶振为25M,则改为25_000_000,板子验证时用这句 //parameter?N=32'd50;//仿真时用这句,仿真为便于减小时间,计数器改小为50。 /////////////////////////////分频进程////////////////////////////// always?@(posedge?clk_in) begin if(!reset_n)begin cnt0?<=?32'd0; clk_1hz<=0; end else?if(cnt0?==?N/2-1)begin//时钟的一半减1 cnt0?<=?32'd0; clk_1hz<=~clk_1hz;//1Hz信号 end else?begin cnt0?<=?cnt0?+?32'd1; end end ////////////////////////////////////////////////////////////////// /////////////////////////////计数0~7进程////////////////////////////// always?@(posedge?clk_1hz) begin if(!reset_n) cnt1?<=?4'd0; else?if(cnt1?==?4'd7)//计数0~7 cnt1?<=?4'd0; else cnt1?<=?cnt1?+?4'd1;//计数 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=984
阅读全文