FPGA实现篮球计数器的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计(论文)任务书电气与电子工程学院电子信息工程专业2011-班一、课程设计(论文)题目篮球计分器二、课程设计(论文)工作自2014年1月6日起至2014年1月17日止。三、课程设计(论文)地点:电子测控实验室四、课程设计(论文)内容要求:1)课程设计任务:设计一个篮球计分器并要求:1)具有30秒计时、显示2)可对计时器清零、置数、启动和暂停3)30秒倒计时4)两个数码管显示两队比分5)超时报警并可解除报警2)课程设计论文编写要求(1)课程设计任务及要求(2)总体电路设计(3)模块设计---给出各个模块的详细设计思路(4)管脚绑定---列表或截图给出管脚绑定情况(5)仿真及FPGA开发板调试---给出运行仿真波形截图,分析运行结果。(6)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(7)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(8)报告按规定排版打印,要求装订平整,否则要求返工;(9)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片)EDA技术课程设计报告(10)严禁抄袭,如有发现,按不及格处理。3)课程设计评分标准:(1)学习态度:10分;(2)系统设计:20分;(3)代码调试:20分;(4)回答问题:20分;(5)论文撰写:30分。4)课程设计进度安排进度安排:本设计持续10天,其中最后一天为答辩时间。第1-2天:讲解题目,准备参考资料,检查、调试实验软硬件,进入设计环境,开始设计方案和验证方案的准备;第3-4天:完成设计与验证方案,经指导老师验收后进入模块电路设计;第5-7天:完成模块电路设计,进行代码输入,并完成代码的初步仿真;第8-9天:代码功能仿真正确,约束设计,综合、下载,实现设计目标,并指导老师验收设计;整理设计资料,撰写报告、准备答辩;第10天:验收合格后进行答辩。学生签名:2014年1月6日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)代码调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差();评阅人:职称:讲师2014年1月17日马嘉程:EDA技术课程设计报告中文摘要随着电子技术的高速发展和计算机技术的普遍应用,电子设计也越来越普遍地应用于整个电子行业中。电子设计是人们进行电子产品设计、开发和制造过程中十分关键的一步,其核心就是电子电路的设计。电子设计自动化(EDA)是在电子产品向更复杂、更高级,向数字化、集成化、微型化和低耗能方向发展过程中逐渐产生并日趋完善的电子设计方法,在这种方法中,设计过程的大部分工作(特别是底层工作)均由计算机自动完成,是电子技术发展历程中产生的一种先进的设计方法,是当今电子设计的主流。在篮球比赛中,规定了球员的持球时间不能超过30秒,否则就犯规了。本课程设计的“篮球竞赛30秒计时器”,可用于篮球比赛中,用于对球员持球时间30秒限制。一旦球员的持球时间超过了30秒,它自动的报警从而判定此球员的犯规。本课程设计是篮球竞赛30秒计时计分器。此计时器功能齐全,显示30秒倒计时功能,系统设置外部操作开关可以直接清零、启动、暂停,同时可以同过计数显示比分,应用了七段数码管来显示数值,可以方便地实现断点计时功能,当计时器递减到零时,还会发出报警信号,也可以通过按键解除报警。本设计完成的中途计时功能,实现了在许多的特定场合进行时间追踪的功能,在社会生活中也具有广泛的应用价值.EDA技术课程设计报告目录一、课程设计任务及要求..................................................................1二、需求分析......................................................................................2三、设计思路......................................................................................4四、详细设计......................................................................................7五、运行调试与分析讨论..................................................................8六、设计体会与小结........................................................................11七、参考文献....................................................................................12马嘉程:EDA技术课程设计报告第1页一、课程设计任务及要求设计任务:为检验本学期学习成果,根据本学期所学的VHDL代码内容设计一个篮球计时计分器设计要求:1、具有30s计时功能,并且能够实时显示计数结果。2、设有外部操作开关,控制计数器实现直接清零、启动以及暂停/连续工作等操作。3、计时器为30s递减计时,计时间隔为1s。4、计时器递减计时到零时,数码显示器不能灭灯,同时发出报警信号。5、能进行比分置数,能在报警信号发出时解除报警EDA技术课程设计报告二、总体电路设计1、设计的总体原理本设计由30秒计时器以及比分计分器组成,前者包括了时间置数、数码管暂停和启动以及报警及其控制的功能模块,后者由比分计数,数码管显示等功能模块。其中计时器各部分相互联系,共同协作,实现电路功能。各部分关系框图如下:整体框图2、设计内容本设计为30秒计数器,它主要分为四个部分:计数部分,显示部分控制部分和计分部分。其中计数器和控制电路是系统的主要部分。计数器完成30s计时功能,而控制电路具有直接控制计数器的启动计数、暂停/连续计数、译码显示电路的显示功能。为了满足系统的设计要求,在设计控制电路时,应正确处理各个信号之间的时序关系。在操作直接清零开关rst_n时,要求计数器回到初始状态(设为30秒),数码显示器不灭灯。初始状态可以通过zsH与zsL拨码开关置数,译码显示电路显示“30”字样;当启动开关EN为0时,计数器开始计数;为了简单起见,我们将暂停与连续的控制与开始用一个键控制。当计数器减到0时,启动报警系统,报警指示外部开关时钟脉冲报警电路计数器置数拨码译码显示比分计数马嘉程:EDA技术课程设计报告第3页灯亮进行报警。报警时如果控制报警键control为0时,报警解除。计分部分,当时钟信号来临,通过按键jishu1与jishu2控制两队比分,然后数码管显示出来。3、整体设计思路我在关于整体程序规划的时候,想到用一个进程控制倒计时,一个进程控制数码管显示,两个进程控制两个按键的比分计数,然后把计数分频加到时序电路中,主要是倒计时进程中,另外,在该进程中,实现暂停/启动的功能以及报警的输出与控制。在实体部分定义一个时钟信号clk1k,一个复位键rst_n,一个使能按键EN,两个置数zsH,zsL以及一些报警输出,数码管片选和位选输出。由于报警的输出根据情况的不同会变化,所以我最后决定定义一个中间变量bq。还有,考虑到比分计数按键会有一些抖动干扰,我在百度后加入一个去抖的代码,也定义了一些中间变量。整个程序有四个进程组成,由于进程语句本身就是并行语句,虽然会有一些毛刺现象,但整体上不会干扰很大,最后的时事也证明了这一点。当然,整个程序还可以用状态机来实现,我在网上发现,绝大多数的篮球计时器都是用状态机来实现的。状态机也有状态机的好处,至少在逻辑上实现比较清楚,但是我个人认为状态机的编程比较麻烦,所以我没有选择网上的大多数编程方式EDA技术课程设计报告三、模块设计1.倒计时的设计if(qh=0000andql=0000)then--当计数为00时,报警bq='1';elsif(ql=0000andqh/=0000)then--如果高位不为0,低位为0,那么低位变9,高位减一ql=1001;qh=qh-1;bq='0';else--否则低位减一,不报警ql=ql-1;bq='0';endif;endif;2.暂停和启动的实现在这里我使用了一个使能按键EN,当EN为0时开始倒计时,于此同时,我的这条语句是一条不完整的if语句,故当EN为1时,计时暂停,且生成锁存器,显示当前所计的那个时间。具体实现:ifEN='0'then...(这句语句应加在计数分频之后,不然数码管将只显示一个数字)endif;3.解除报警的实现我在设计程序时,让倒计时为“00”的时候有报警信号产生,那么我又设计了一个control按键,当control键按下以后,无论什么情况下都使报警信号为‘0’,这样报警就解除了。具体实现:ifcontrol='0'thenbq='0';4.显示两队的比分:马嘉程:EDA技术课程设计报告第5页在这里我独立出了两个数码管显示两队比分,通过两个按键分别对各自数码管进行加一的计数,由于一开始没有加入消抖的电路,导致一开始的加法计数太快,肉眼不能分辨,故后来加入了消抖语句:具体实现:ifjishu1='0'thenifcount1=50thencount1:=count1;--如果按键时间超过50ms,那么记为有效按键,即消抖elsecount1:=count1+1;endif;ifcount1=49thenkey1='0';elsekey1='1';endif;elsecount1:=0;endif;ifkey1='0'then--当按键有效时,计分做加法,满九归零ifb1=1001thenb1=(others='0');elseb1=b1+1;endif;endif;endif;endprocess;process(rst_n,jishu2,clk1k)--设置两队比分的进程variablecount2:integer;beginif(rst_n='0')thenb2=0000;elsif(clk1k'eventandclk1k='1')then--上升沿来临ifjishu2='0'thenifcount2=50thencount2:=count2;--如果按键时间超过50ms,那么记为有效按键,即消抖EDA技术课程设计报告elsecount2:=count2+1;endif;ifcount2=49thenkey2='0';elsekey2='1';endif;elsecount2:=0;endif;ifkey2='0'then--当按键有效时,计分做加法,满九归零ifb2=1001thenb2=(others='0');elseb2=b2+1;endif;endif;endif;马嘉程:EDA技术课程设计报告第7页1.四、管脚绑定EDA技术课程设计报告五、仿真及FPGA开发板调试1.仿真图一.倒计时当使能EN为0时,且复位ret_n为1时,所置数为30,于是从30开始倒计时,qh从3到2,于此同时ql从0到9图二、按键比分计数当一个按键按下时比分开始做加法,满九归零图三、二进制表示的倒计时与比分计数这是二进制数表示的倒计时与比分计数的过程,同样,按键按下时,比分加一,时钟上升沿来临时,倒计时一次马嘉程:EDA技术课程设计报告第9页图四、control键控制baojing信号当倒计时到“00”时,报警信号为1,但是当我按下control键时,报警信号为0,即报警被解除了图五、EN键控制暂停与

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功