可编程逻辑器件数字钟.doc

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

PAGE  PAGE 14 可编程逻辑器件及其应用 一 设计要求 用Verilog HDL设计一个多功能数字钟 基本功能描述: 时钟功能:包括时、分、秒的显示; 定时与闹钟功能:能在设定的时间发出闹铃音; 校时功能:能非常方便地对小时、分钟和秒进行手动调整以校准时间; 整点报时功能:每逢整点,产生“嘀嘀嘀嘀--嘟”,四短一长的报时音。 二 仿真环境 用Modelsim进行编译和仿真,工程文件在clocknew1文件夹中。 三 结果说明 此次设计实现了数字钟的基本功能,能够进行时分秒的计时,校准,能够整点报时,在设定的时间实现响铃功能。 此次设计对各种功能进行了分模块设计,记数模块中,对秒位,分位进行60位记数,小时模块进行24位记数;同时在记数模块中进行校准操作;报时模块里,每逢整点前的59分56秒、59分57秒、59分58秒、59分59秒,和整点时刻,发出“嘀嘀嘀??--嘟”的报时声;闹钟模块里,手动对数字钟进行定时,当数字钟的时刻与定时时刻相同时,ring=1发出响铃声。 在以上各个功能的模块基础上,设置top顶层模块,将以上功能综合起来实现。 为了验证数字钟的功能,编写测试testench模块,输入时钟#5 clk=~clk,观察各个信号输出。 四 仿真结果 图1仿真整体效果图 图2当reset键为0时,开始计数 图3 秒位计数 图4 分钟计数 图5 小时位计数 图6 整点报时功能 图7 定时响铃功能 图8 校时功能,校时使能键为1,停止计数,校时 图9 校时使能键为0,按校好的时间继续计数 五 设计代码 //顶层模块 module top ( //input clk,reset012,dssl,dssh,dsml,dsmh,dshl,dshh,dingshi, ksec,kmin,khour,cntsec,cntmin,cnthour, //output sl,sh,ml,mh,hl,hh,di,do,ring ); input clk; input reset012; input [3:0] dssl,dssh,dsml,dsmh,dshl,dshh; input ksec,kmin,khour; input [7:0]cntsec,cntmin,cnthour; input dingshi; output[3:0] sl,sh,ml,mh,hl,hh; wire [3:0] sl,sh,ml,mh,hl,hh; output di,do,ring; wire di,do,ring; wire [3:0] c,d,e,f,g,j; wire a,b; //对模块立化 second my_second (.clk(clk),.reset(reset012),.sh(d),.sl(c),.co(a),.ksec(ksec),.cntsec(cntsec)); minute my_minute (.reset1(reset012),.mh(f),.ml(e),.clk1(a),.co1(b),.kmin(kmin),.cntmin(cntmin)); hour my_hour (.reset2(reset012),.hh(j),.hl(g),.clk2(b),.khour(khour),.cnthour(cnthour)); baoshi my_baoshi (.bssl(c),.bssh(d),.bsml(e),.bsmh(f),.bshl(g),.bshh(j),.di(di),.do(do)); naozhong my_naozhong (.dssl(dssl),.dssh(dssh),.dsml(dsml),.dsmh(dsmh),.dshl(dshl),.dshh(dshh), .clksl(c),.clksh(d),.clkml(e),.clkmh(f),.clkhl(g),.clkhh(j),.dingshi(dingshi),.ring(ring)); assign sl = c; assign sh = d; assign ml = e; assign mh = f; assign hl = g; assign hh = j; endmodule //秒位计数模块 module second(clk,reset,sh,sl

文档评论(0)

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

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

1亿VIP精品文档

相关文档