EDA作业篮球计时器.docVIP

  • 43
  • 0
  • 约2.58千字
  • 约 6页
  • 2017-01-06 发布于贵州
  • 举报
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)

1亿VIP精品文档

相关文档