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

篮球计分系统设计Verilog代码Quartus 实验箱

08/08 09:34
342
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240Q91ZH0U6.doc

共1个文件

名称:篮球计分系统设计Verilog代码Quartus? 实验箱

软件:Quartus

语言:Verilog

代码功能:

(1)向上拨动拨动开关K1后开始计分,初始分数均为00,红灯和绿灯均同时点亮,按下按键S1,则红队加1分;按下按键S2,则红队加2分;按下按键S3,则红队加3分;按下按键S4,则绿队加1分;按下按键S5,则绿队加2分;按下按键S6,则绿队加3分。向下拨动回开关K1,计分结束,此时不论按任何按键两队分数都不在改变。同时分数高的队伍灯以2HZ频率闪烁。

(2)外部输入脉冲信号频率为1mhz;

(3)扩展要求:(a)按键消抖;

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在实验箱验证,实验箱如下,其他实验箱可以修改管脚适配:

实验箱.png

演示视频:

设计文档:

1. 工程文件

2. 程序文件

程序编译

3. 顶层block图

4. 管脚图

5. 仿真图

分频模块

控制模块

消抖模块

显示模块

部分代码展示:

//显示模块
module?display(
input?clk,//1MHz
input?K1,//向下拨动分数高的队伍灯以2HZ频率闪烁
input?clk_2Hz,//2Hz信号
input?[7:0]?score_1,//红队分
input?[7:0]?score_2,//绿队分
output?reg?LED_1,//红队灯
output?reg?LED_2,//绿队灯
output?reg?[7:0]?segment,//数码管段
output?[2:0]?seg_en//数码管位
);
reg?[15:0]?cnt=16'd0;
reg?[2:0]?en=3'd0;
always@(posedge?clk)
if(cnt>=16'd100)//计数100,分频到10K
cnt<=0;
else
cnt<=cnt+1;
always@(posedge?clk)
if(cnt>=16'd100)
en<=en+1;//en?=0~7表示8个数码管
assign?seg_en=en;
wire?[3:0]?score_1_ten;//红队分十位
wire?[3:0]?score_1_one;//红队分个位
wire?[3:0]?score_2_ten;//绿队分十位
wire?[3:0]?score_2_one;//绿队分个位
assign?score_1_ten=score_1/10;
assign?score_1_one=score_1%10;
assign?score_2_ten=score_2/10;
assign?score_2_one=score_2%10;
reg?[3:0]?dis_data;
always@(en)
case(en)//依次显示红队分十位红队分个位绿队分十位绿队分个位
3'd0:dis_data<=score_1_ten;
3'd1:dis_data<=score_1_one;
3'd2:dis_data<=score_2_ten;
3'd3:dis_data<=score_2_one;
default:dis_data<=4'd0;
endcase

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=909

  • 2-240Q91ZH0U6.doc
    下载

相关推荐