名称:跑马灯控制器设计Verilog代码Quartus? DE2开发板
软件:Quartus
语言:Verilog
代码功能:
研究目标:采用EDA技术,以硬件描述语言 Verilog HDL为系统逻辑描述语言,在QUARTUSIT具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建一个基于FPGA的跑马灯控制器。该控制器能控制跑马灯的变化花样、变化速度和亮度,具有暂停等功能。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?仿真图
整体仿真图
亮度控制模块
花样控制模块
4种花样
速度控制模块
部分代码展示:
//亮度控制模块 module?light_ctrl( input?clk_in,//50MHz input?rst_n,//reset input?[1:0]?led_light,//亮度 output?led_pwm//输出不同占空比信号,对应不同亮度 ); //亮度分20%,50%,80%,100% reg?[7:0]?duty_para=8'd0; always@(posedge?clk_in?or?negedge?rst_n) if(!rst_n) duty_para<=8'd0; else case(led_light)//亮度 2'b00:duty_para<=8'd20;//20% 2'b01:duty_para<=8'd50;//50% 2'b10:duty_para<=8'd80;//80% 2'b11:duty_para<=8'd100;//100% default:duty_para<=8'd20;//20% endcase reg?[31:0]?div_cnt=32'd0; reg?div_clk=0; always@(posedge?clk_in?or?negedge?rst_n) if(!rst_n)begin div_cnt<=32'd0;//复位 div_clk<=0; end else if(div_cnt>=32'd50000)begin//分频50000---250 div_cnt<=0; div_clk<=~div_clk; end else?begin div_cnt<=div_cnt+1;//计数 end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1225
阅读全文