名称:篮球计分系统Verilog代码Quartus? 开发板
软件:Quartus
语言:Verilog
代码功能:
要求:
(1)向上拨动拨动开关K1后开始计分,初始分数均为00,红灯和绿灯均同时点亮,按下按键S1,则红队加1分;按下按键S2,则红队加2分;按下按键S3,则红队加3分;按下按键S4,则绿队加1分;按下按键S5,则绿队加2分;按下按键S6,则绿队加3分。向下拨动回开关K1,计分结束,此时不论按任何按键两队分数都不在改变。同时分数高的队伍灯以2HZ频率闪烁。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 顶层block图
5. 管脚图
6. 仿真图
分频模块
消抖模块
加分模块
显示模块
部分代码展示:
//分数累加模块 module?add_score( input?clk_1KHz,//1KHz input?K1,//拨动开关K1后开始计分 input?clk_2Hz,//2Hz信号 input?S1_add,//红队加1分 input?S2_add,//红队加2分 input?S3_add,//红队加3分 input?S4_add,//绿队加1分 input?S5_add,//绿队加2分 input?S6_add,//绿队加3分 output?reg?LED_red,//红队灯 output?reg?LED_green,//绿队灯 output?[7:0]?score_red,//红队分 output?[7:0]?score_green//绿队分 ); reg?[7:0]?score_red_buf=8'd0;//红队分 reg?[7:0]?score_green_buf=8'd0;//绿队分 always@(posedge?clk_1KHz) if(K1==1)//计分使能 if(S1_add) score_red_buf<=score_red_buf+1;//红队加1分 else?if(S2_add) score_red_buf<=score_red_buf+2;//红队加2分 else?if(S3_add) score_red_buf<=score_red_buf+3;//红队加3分 always@(posedge?clk_1KHz) if(K1==1)//计分使能 if(S4_add) score_green_buf<=score_green_buf+1;//绿队加1分 else?if(S5_add) score_green_buf<=score_green_buf+2;//绿队加2分 else?if(S6_add) score_green_buf<=score_green_buf+3;//绿队加3分 assign?score_red=score_red_buf; assign?score_green=score_green_buf; //LED灯控制 always@(posedge?clk_1KHz) if(K1==1)//亮 begin LED_red<=1; LED_green<=1; end else?//分数高的闪烁 if(score_red>score_green) begin LED_red<=clk_2Hz;//红灯闪烁 LED_green<=1; end else?if(score_red<score_green) begin LED_red<=1; LED_green<=clk_2Hz;//绿灯闪烁 end endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=556
阅读全文
307