篮球计分器 FPGA 设计 Verilog Quartus
名称:篮球计分器 FPGA 设计 Verilog Quartus
软件:Quartus
语言:Verilog
开发板/平台:Cyclone IV FPGA开发板
功能介绍
这是一个基于 Verilog 的双队篮球计分器,支持记录 A 队和 B 队比分,并通过数码管显示当前分数。队伍由 `switch` 输入选择:逻辑 1 选择 A 队,逻辑 0 选择 B 队;三个加分输入分别用于执行一分、两分和三分操作,适合课堂数字系统设计、FPGA 外设控制及计分逻辑演示。 顶层设计为每个加分按键配置独立的消抖模块,再将处理后的按键边沿送入比分控制模块,降低机械按键抖动对加分操作的影响。两队比分分别以 10 位信号连接至显示模块,由其产生六位数码管的位选和段选输出。 工程还包含 LED 指示模块,可结合球队选择和加分按键驱动 LED 输出。项目按功能划分为顶层连接、按键消抖、比分控制、LED 闪烁和数码管显示,便于阅读模块接口并继续扩展计分或显示逻辑。运行环境
设计语言:Verilog;开发软件:Quartus;目标平台:Cyclone IV FPGA 开发板。设计思路
篮球计分器以球队选择和加分按键为输入,分别维护 A 队、B 队的分数,并通过数码管输出两队比分。`switch` 用于选择加分队伍,`add_1`、`add_2`、`add_3` 对应一分、两分和三分操作;顶层为三个加分按键分别接入消抖模块,将按键变化整理为分数控制模块使用的边沿信号。 设计按功能拆分为按键消抖、比分控制、LED 指示和数码管显示。比分控制模块接收队伍选择及三种加分信号,输出两队分数;LED 模块根据队伍选择和加分按键驱动指示灯;显示模块将比分转换为数码管位选和段选信号。顶层 `basketball_score` 负责连接这些模块,并统一提供时钟、复位及外部输入输出接口。模块结构
- `basketball_score`:顶层模块,连接时钟、复位、队伍选择、加分按键、LED 和数码管接口。 - `key_jitter`:按键消抖,为三个加分按键分别生成边沿信号。 - `score`:根据队伍选择及一分、两分、三分控制信号更新 A、B 两队比分。 - `led_flash`:结合队伍选择和加分输入控制 LED0、LED1。 - `display`:接收两队比分,输出六位数码管位选与段选信号。开发板验证
工程包含 Cyclone IV FPGA 开发板的管脚分配配置,可用于对应开发板的管脚连接与验证。演示视频
演示视频展示篮球计分器的运行效果。仿真图/仿真说明/设计文档图片
设计文档涉及工程文件、程序编译、RTL 图、管脚分配及 Testbench 仿真,包含整体仿真和按键、分数控制、LED 闪烁、数码管显示等模块说明。













部分代码
以下展示顶层模块 basketball_score 的部分代码,完整源码请下载压缩包查看。
module basketball_score(
input clk,//时钟
input reset_n,//复位
input switch,//开关控制给A队加分或B队加分,1给A,0给B
input add_1,//控制加一分
input add_2,//控制加两分
input add_3,//控制加三分
output LED0,//LED 指示灯为逻辑高电平时,LED 指示灯点亮
output LED1, //LED 指示灯为逻辑高电平时,LED 指示灯点亮
output [5:0] bit_select,//数码管位选
output [7:0] seg_select//数码管段选
);
wire [9:0] score_A_o;//A队分数
wire [9:0] score_B_o;//B队分数
wire add_1_rise;//控制加一分
wire add_2_rise;//控制加两分
wire add_3_rise;//控制加三分
//按键消抖
key_jitter i0_key_jitter(
. clkin(clk),
. key_in(add_1),//输入
. key_negedge(add_1_rise)//消抖后按键下降沿
);
//按键消抖
key_jitter i1_key_jitter(
. clkin(clk),
. key_in(add_2),//输入
. key_negedge(add_2_rise)//消抖后按键下降沿
);
//按键消抖
key_jitter i2_key_jitter(
. clkin(clk),
. key_in(add_3),//输入
. key_negedge(add_3_rise)//消抖后按键下降沿
);
//分数控制
score i_score(
. clk(clk),//时钟
. reset(reset_n),//复位
. switch(switch),//开关控制给A队加分或B队加分,1给A,0给B
. add_1_rise(add_1_rise),//控制加一分
. add_2_rise(add_2_rise),//控制加两分
. add_3_rise(add_3_rise),//控制加三分
. score_A_o(score_A_o),//A队分数
. score_B_o(score_B_o)//B队分数
);
//led控制
led_flash i_led_flash(
. clk(clk),//时钟
. reset(reset_n),//复位
. switch(switch),//开关控制给A队加分或B队加分,1给A,0给B
. add_1(add_1),//控制加一分
. add_2(add_2),//控制加两分
. add_3(add_3),//控制加三分
. LED0(LED0),//LED 指示灯为逻辑高电平时,LED 指示灯点亮
. LED1(LED1) //LED 指示灯为逻辑高电平时,LED 指示灯点亮
);
//显示模块
display i_display(
. clk(clk),
. rst_n(reset_n),//复位
. score_A(score_A_o),//A分
. score_B(score_B_o),//B分
. bit_select(bit_select),//数码管位选
. seg_select(seg_select)//数码管段选
);
endmodule
代码文件(付费下载)
📥
付费后此处显示完整工程压缩包下载链接。
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 篮球计分器 FPGA 设计 Verilog Quartus
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 篮球计分器 FPGA 设计 Verilog Quartus