EDA作业篮球计时器.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EDA作业篮球计时器EDA作业篮球计时器

EDA技术课程作业——习题二 篮球24秒可控计时器设计 姓名:徐晨阳 学号:2012301080040 习题要求:用Verilog HDL语言设计篮球24秒可控计时器 功能说明:1.具有24秒计时、显示功能; 2.设置外部按键,完成清零、暂停、恢复控制; 3.24秒倒计时,时间间隔为1s; 4.时间到后发出报警信号,并在3s后解除。 设计思路 根据对篮球规则的了解,每队每回合的进攻时间为24秒,一旦进攻时间超出24秒,便会自动报警从而判定犯规。 在每回合内若有犯规出现,则比赛时间暂停,重新发球后继续倒计时。一个回合结束后时间自动回到24秒。因此该24秒计时器应包括以下模块:脉冲发生、递减计数、报警电路、控制开关、显示电路,从而控制完成计数器的置数、连续计数、复位、暂停/继续、实时显示、报警等功能。 设计方案 用QuertusⅡ实现该功能用两种方案。方案一是利用VHDL语言编写各个模块,然后将所有模块连接进行仿真及测试;方案二是利用已有的芯片构成相应模块,后组合连接仿真。尽管方案在设计中有一定的简便性且不用编写复杂的程序,但跟据作业要求及自己掌握的知识,选择前者。 具体设计方案如下: 秒脉冲发生部分:clk_in 为10Hz时钟信号,经十分频后得到1Hz的clk_out的输出计时脉冲。 24秒递减计时部分:以分频后得到的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,解除报警信号。 总体框图如下: 实验代码及注释 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; reg[3:0] count,delay; //count为分频器中的计数变量,delay为3秒延时控制变量 always@(posedge clk_in) //上升沿触发 if(count9) //十分频 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==0qh==0)) delay=delay+1; else delay=0; always @(posedge clk_out or negedge clr or negedge rst_) if(!rst_||!clr) warn=0; else if((qh==0ql==0)(delay3)) //当倒计时为00,报警3秒,后解除 warn=1; 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,继续计时 begin if((ql==0)(qh!=0

文档评论(0)

skewguj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档