加载中…
正文 字体大小:

基于至简设计法实现的篮球倒计时案例

(2017-03-21 15:04:49)
标签:

fpga

明德扬

至简设计法

篮球

倒计时案例

分类: 明德扬---至简设计法

一、   功能描述

本工程包含了两个按键和4位数码管显示,共同实现一个篮球24秒倒计时、并具有暂停和重新计数复位的功能。具体功能如下:

1.        数码管显示秒十位、秒个位、0.1秒和0.01秒。

2.        上电后,数码管显示2399,表示时间是23.99秒。

3.        按下按键1,进入倒计时状态,进行倒计时,一直计到0000后停止。

4.        在倒计时状态时,再次按下按键1,则暂停计时;再按下按键1,则继续倒计时。

5.        在任何时刻,按下按键2,则复位显示为2399

二、    平台效果图

1.Altera核心板效果图

基于至简设计法实现的篮球倒计时案例

基于至简设计法实现的篮球倒计时案例

2.Xilinx核心板效果图

基于至简设计法实现的篮球倒计时案例

基于至简设计法实现的篮球倒计时案例

三、    实现过程

首先根据所需要的功能,列出工程顶层的输入输出信号列表。

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

系统复位信号,低电平有效

key_vld

I

2

独立按键

segment

O

8

数码管段选

seg_sel

O

8

数码管位选

 

我们可以把工程划分成三个模块,分别是倒计时模块、BCD译码模块和数码管显示模块。

 

1.倒计时模块

      倒计时模块实现的是24s倒计时功能,其输出两组计数信号cnt_scnt_ms。例如当时间为23.99时,cnt_s的值为23cnt_ms的值为99;当时间为08.12时,cnt_s的值为8cnt_ms的值为12

模块还实现了暂停和重开始功能,按下按键1开始倒计时,再次按下则暂停,再次按下则开始,无论何时按下按键2,恢复到23.99

本模块的信号列表如下:

 

信号名

I/O

位宽

说明

clk

I

1

系统工作时钟50M

rst_n

I

1

系统复位信号,低电平有效

cnt_s

O

8

秒计数器

cnt_ms

O

8

毫秒计数器

key_vld

I

2

两个独立按键

din_vld

O

1

输出数据有效指示信号

 

2.BCD译码模块

由于倒计时模块输出的是2进制的cnt_scnt_ms,但数码管是个位和十位分别显示的。例如当cnt_s值为10时,也就是8’b00001010,而送给数码管的个位值为4’b0000,十位值为4’b0001。这个转换过程也就是BCD译码,也就是本模块要实现的功能。

此处介绍二进制转BCD码的硬件实现,采用左移加3的算法,具体描述如下:(此处以8-bit 二进制码为例)

1、左移要转换的二进制码1 

2、左移之后,BCD码分别置于百位、十位、个位 

3、如果移位后所在的BCD码列大于或等于5,则对该值加3

4、继续左移的过程直至全部移位完成

 

举例:将十六进制码0xFF转换成BCD

基于至简设计法实现的篮球倒计时案例

 

本模块的信号列表如下:

信号名

I/O

位宽

说明

rst_n

I

1

系统复位信号,低电平有效

clk

I

1

系统工作时钟50M

din

I

32

输入要译码的数据

din_vld

I

1

输入数据有效指示信号

dout

O

12

输出的BCD数据,共12比特,每4比特一组,分别表示百、十、个位的值

dout_vld

O

1

输出数据有效指示信号

 

由于秒和毫秒都要译码,所以要例化两个BCD译码模块。

 

 

3.数码管显示模块

数码管显示模模块功能是将二进制数码,转成BCD数码管显示,其功能相对比较简单,不再啰嗦。

本模块信号列表

信号名

I/O

位宽

说明

rst_n

I

1

系统复位信号,低电平有效

clk

I

1

系统工作时钟50M

din

I

32

每个数码管的时间数据

seg_sel

O

8

数码管位选

segment

O

8

数码管段选

 

代码资料下载http://pan.baidu.com/s/1mix5rc8

0

阅读 评论 收藏 转载 喜欢 打印举报
已投稿到:
  • 评论加载中,请稍候...
发评论

       

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有