网站大量收购闲置独家精品文档,联系QQ:2885784924

基于CPLD的Verilog秒表设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于CPLD的Verilog秒表设计

郑州航空工业管理学院 EDA课程设计报告 题 目 基于CPLD的Verilog秒表设计 姓 名 学 号 指导教师 二О一 一 年 月 日 一.设计任务 设计一个秒表,要求精度达到0.1秒。有一个开始计时、一个停止计时、一个复位按键。晶振为12MHz有源晶振,采用CPLD器件为ALTERA的EPM7064AELC44-10N,采用四位数码管显示。 设计功能: 1、四位数码管显示999.9秒。全部采用十进制,满十进一。 2、精度为0.1秒。 3、开始按键和停止按键在一起,按一次开始再按停止。 4、复位按键进行清零。 二.设计方案 秒表设计主要分为两部分:程序部分和硬件部分。 在硬件方面主要用到JTAG接口、数码管、EPM7064AELC44-10N芯片、电阻、按键、三极管、电源、有源晶振、44口的芯片插槽等部分组成! 具体电路图及显示效果图片见下页。 电路板的具体管脚连接关系如下: seg0 seg1 seg2 seg3 seg4 seg5 seg6 (小数点seg7没有用到) 24 25 26 27 28 29 31 时钟GCLK1 43 dig0 dig1 dig2 dig3 34 36 37 39 key0 key1 key2 14 16 17 三.设计程序 自顶而下,一体化程序设计。秒表程序主要分为四部分:0.1秒信号产生部分,按键消抖处理部分,数码管动态扫描显示部分,计时处理部分。其中0.1秒信号产生部分将12MHz的有源时钟信号分频成为10Hz的0.1秒计时信号;按键消抖处理部分将将琴键开关转换为乒乓开关,使开关按下去以后就可以松手,不用长时间的按住不放;数码管动态扫描显示部分,通过计算二进制数和在实验箱上实验大概在12~11位二进制时动态扫描为1ms左右,使数码管显示明显完整清新,不会出现闪烁现象;计时处理部分,开始加入清零功能,是不论开始暂停都可以被清零功能清楚,秒计数部分采用满十进一的形式,即总计999.9秒。 module miaobiao(clk,key,dig,seg); //模块名miaobiao input clk; //输入时钟 input[1:0] key; //输入按键 output[3:0] dig; //数码管选择输出引脚 output[7:0] seg; //数码管段输出引脚 reg[7:0] seg_r; //定义数码管输出寄存器 reg[3:0] dig_r; //定义数码管选择输出寄存器 reg[3:0] disp_dat; //定义显示数据寄存器 reg[24:0]count; //定义计数寄存器 reg[23:0]hour; //定义现在时刻寄存器 reg sec,keyen; //定义标志位 reg[1:0]dout1,dout2,dout3; //寄存器 wire[1:0]key_done; //按键消抖输出 assign dig = dig_r; //输出数码管选择 assign seg = seg_r; //输出数码管译码结果 //秒信号产生部分 always @(posedge clk) //定义clk上升沿触发 begin count = count + 1b1; if(count == 25d) //0.05S到了吗? begin count = 25d0; //计数器清零 sec = ~sec; //置位秒标志 end end //按键消抖处理部分 assign key_done = (dout1 | dout2 | dout3); //按键消抖输出 always @(posedge count[17]) begin dout1 = key; dout2 = dout1; dout3 = dout2; end always @(negedge key_done[0]) begin keyen = ~keyen; //将琴键开关

文档评论(0)

2017meng + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档