FPGA篮球记分器-Verilog

adminadmin 02-21 39 阅读 0 评论

  目录

  一、摘要

  1.1功能:

  1.2要求:

  1.3要点:

  二、各模块的总结

  2.1、功能描述

  2.2系统结构框图

  2.3I/O说明

  三、各模块详细设计

  3.1倒计时模块:

  3.2两队比分模块

  3.3 control控制及数码管模块

  四、代码设计

  4.1顶层模块

  4.2按键消抖模块

  4.3control控制模块

  4.4 24s倒计时模块

  4.5 12min倒计时模块

  4.6两个比赛队记分模块

  4.7数码管显示模块

  五、仿真验证

  5.2 basys2开发板验证  1.1功能:

  按照篮球赛赛制进行设计。须具有24秒倒计时功能,十二分钟计时功能,暂停功能,进球计分功能(1分,2分,3分)等。 1.2要求:

  比分与计时须在数码管实时显示,显示状态可通过按键或者拨码开关切换,计分可通过按键进行设计(不限制)。 1.3要点:

  顶层模块的使用(Top-Down思想),倒计时的实现,两队的记分(10进制转8421BCD码),动态数码管,按键消抖。

  功能1:24s倒计时

  (1)实现从24:00s至00:00s的倒计时,计时精度为0.01s。

  (2)暂停计时功能。

  (3)每节比赛和每个进攻回合结束,开始新的一轮24s倒计时。

  功能2:12min倒计时

  (1)实现从12:00min至00:00min的倒计时,计时精度为1s。

  (2)暂停计时功能。

  (3)每节比赛,开始新的一轮12min倒计时。

  功能3:两个比赛队记分

  (1)实现红蓝两队的计分。

  (2)进球记分功能,包含三分球,两分球和一分球。

  FPGA篮球记分器-Verilog

  输入端口:

  clk

  rst_n     //总开关

  sys_key_1//一分球按键

  sys_key_2//两分球按键

  sys_key_3//三分球按键

  key_team //切换队伍进行进球记分

  sys_key_ctrl//按键控制

  en_24s    //24s使能(复位)

  en_score //记分使能(复位)

  en_stop_n//暂停使能

  en_time   //倒计时复位

  输出端口:

  dis_sel   //位选输出

  dis_seg   //段选输出 3.1倒计时模块:

  小模块1:16位输出的控制(倒计时的主模块)

  这一部分的算法我没有使用加三移位转BCD码的方法,而是使用最小精度的时钟分频(24s倒计时最小精度为0.01s),再利用if-else语句对多种情况进行判断赋值。

  具体解释:

  if-else语句判别条件的罗列 :if(复位信号==0):else if([最高位:0]==0):else if([本位  :0]==0):else if([低位  :0]==0) (低位=(本位—4)):  else

  ([本位  :本位—4])

  各判别语句的赋值,

  ①,②     输出:  [本位  :本位—4]=初始值;

  ③    输出:[本位  :本位—4]= 4’h9

  ④    输出:[本位 :本位—4]= [本位  :本位—4]—1’b1;

  ⑤    输出:[本位 :本位—4]= [本位 :本位—4]; 3.2两队比分模块

  小模块1:16位记分输出

  首先定义两个8位的reg信号r_out和b_out,用来寄存两队的得分,输出时用assign语句将r_out和b_out拼接后赋值给16位的输出score。

  在描述两个reg信号时,例如r_out,由于牵扯到要将十进制数转化为8421BCD码,这里还是没有采用加三移位法,我利用的是将一分、两分和三分分为三种情况。

  例如三分,只需考虑低四位r_out[3:0]。

  当(r_out[3:0]<4'd7)时,不需要考虑向高四位进位,只需给第三位正常加3即可。

  当(r_out[3:0]>=4'd7)时,此时需要向高四位进位,并且根据加三后的数值大小

  判断低四位大小,此例为每次加三分,因而考虑三种情况即可。

  代码展示:

  3.3 control控制及数码管模块

  设计思想:

  在control模块中,利用计数器计数,当输入信号(key_ctrl)为1时cnt复位,使输出 (ctrl)循环计数,从而确定数码管显示哪组数据。

  在动态数码管模块中,定义两个reg信号 [15:0] dis_num, [3:0] dis_tmp,第一个用来寄存要显示的16位数据,第二个用来寄存16位数据中4位的值,而寄存哪四位由分频时钟控制,使16位数据循环输入,从而形成动态显示。 4.1顶层模块

  4.2按键消抖模块

  4.3control控制模块

  4.4 24s倒计时模块

  4.5 12min倒计时模块

  4.6两个比赛队记分模块

  4.7数码管显示模块

  5.1 tb仿真文件

  5.2 basys2开发板验证

FPGA篮球记分器-Verilog

FPGA篮球记分器-Verilog

The End 微信扫一扫

文章声明:以上内容(如有图片或视频在内)除非注明,否则均为原创文章,转载或复制请以超链接形式并注明出处。

本文作者:admin本文链接:https://www.cnemw.com/post/361.html

上一篇 下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,39人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码