EDA作业篮球计时器

上传人:206****923 文档编号:41773209 上传时间:2018-05-31 格式:DOC 页数:5 大小:193.50KB
返回 下载 相关 举报
EDA作业篮球计时器_第1页
第1页 / 共5页
EDA作业篮球计时器_第2页
第2页 / 共5页
EDA作业篮球计时器_第3页
第3页 / 共5页
EDA作业篮球计时器_第4页
第4页 / 共5页
EDA作业篮球计时器_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《EDA作业篮球计时器》由会员分享,可在线阅读,更多相关《EDA作业篮球计时器(5页珍藏版)》请在金锄头文库上搜索。

1、 EDA 技术课程作业习题二 篮球 24 秒可控计时器设计 姓名:徐晨阳 学号:2012301080040习题要求:用 Verilog HDL 语言设计篮球 24 秒可控计时器 功能说明:1.具有 24 秒计时、显示功能;2.设置外部按键,完成清零、暂停、恢复控制;3.24 秒倒计时,时间间隔为 1s; 4.时间到后发出报警信号,并在 3s 后解除。1、设计思路 根据对篮球规则的了解,每队每回合的进攻时间为 24 秒,一旦进攻时间超出 24 秒, 便会自动报警从而判定犯规。在每回合内若有犯规出现,则比赛时间暂停,重新发球后 继续倒计时。一个回合结束后时间自动回到 24 秒。因此该 24 秒计时

2、器应包括以下模块: 脉冲发生、递减计数、报警电路、控制开关、显示电路,从而控制完成计数器的置数、连 续计数、复位、暂停/继续、实时显示、报警等功能。2、设计方案用 Quertus实现该功能用两种方案。方案一是利用 VHDL 语言编写各个模块,然后将 所有模块连接进行仿真及测试;方案二是利用已有的芯片构成相应模块,后组合连接仿真。 尽管方案在设计中有一定的简便性且不用编写复杂的程序,但跟据作业要求及自己掌握的 知识,选择前者。具体设计方案如下: 1.秒脉冲发生部分:clk_in 为 10Hz 时钟信号,经十分频后得到 1Hz 的 clk_out 的输出计时脉 冲。 2.24 秒递减计时部分:以分

3、频后得到的 clk_out 为脉冲信号控制计时,间隔为 1 秒,计数器 减 1。 3.外部操作控制部分:以 rst_为复位信号,低电平有效,当输入为低时,直接复位;以 clr_ 控制清零,为低时直接清零;以 pause 为暂停信号,当 pause 为 1 时,计时器暂停计时, 当为 0 时,恢复计时。 4.倒计时显示部分:使用数码管显示,用 qh、ql 分别控制数码管的高位输出和低位输出, ql 逐次递减,当减为 0 时,qh 减 1,直至都减为 0。 5.报警部分:当计数器减为 0 时(显示为 00) ,报警信号 warn 置 1,发出报警信号。延时 3 秒,后置 0,解除报警信号。总体框图

4、如下:3、实验代码及注释module zy2(clk_in,rst_,clr,pause,clk_out,warn,qh,ql,); input rst_,pause,clr; /输入输出变量声明 input clk_in; output warn; output clk_out; output 3:0 qh,ql; reg 3:0 qh,ql; /定义 reg 变量 reg clk_out,warn; reg3:0 count,delay; /count 为分频器中的计数变量,delay 为 3 秒延时控制变量always(posedge clk_in) /上升沿触发 if(count9)

5、/十分频 count=count+1; else count=4d0;always(posedge clk_in) if(!count)clk_out=clk_out; else; always (posedge clk_out or negedge clr or negedge rst_) if(!rst_|!clr) delay=4b0; /对延时参数 delay 进行控制 else if(ql=0 else delay=0;always (posedge clk_out or negedge clr or negedge rst_) if(!rst_|!clr) warn=0; else

6、 if(qh=0 else warn=0;always (posedge clk_out or negedge clr or negedge rst_) if(!rst_) /rst_为 0,复位 begin qh=2; /显示 24 ql=4; end else if(!clr) /clr 为 0,清零,显示 00 begin qh=0; ql=0; end else if(pause) /pause 为 1,暂停 begin ql=ql; /显示数字不变 qh=qh; end else if(!pause) /pause 为 0,继续计时 beginif(ql=0)qh=qh-1;ende

7、lse if(ql!=0)beginql=ql-1;qh=qh;end else;end endmodule4、时序仿真验证功能为了更方便的观察仿真结果、验证计时器功能,在时序仿真时将十分频电路改为二分频电 路。1.clr 清零功能2.rst_复位功能3.pause 暂停/继续功能4.warn 报警功能经分析,仿真结果正确,该 24 秒计时器符合要求。5、总结1.编程总是出现错误,经排查发现同一个 reg 变量在多个 always 语句下进行操作就会出现 这种错误。 2.一开始对分频模块进行设计时 是在 always (posedge clk_int or negedge clr or negedge rst_)下编写的,后来仿真时发现改变 clr、rst_也会对分频后的波形 clk_out 造成影响,而根据结构图,分频电路是独立的,应该 只收 clk_in 控制,于是将 always 语句改为 always (posedge clk_int ) ,仿真后结果正确。 3.对该篮球计时器进行设计前,应对篮球规则有一定的了解,从而更准确的实现其功能。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号