数字系统设计实例(精品)PPT培训课件.pptVIP

数字系统设计实例(精品)PPT培训课件.ppt

  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文档。上传文档
查看更多
数字系统设计实例(精品)PPT培训课件

7.4.3 Verilog-HDL程序 module clock(clk_1 Hz, clk_1 kHz, func_key, key1, key2, mode, hour, minute, second, alarm); input clk_1 Hz ; //1Hz时钟,供数字钟使用 input clk_1 kHz ; //1 kHz时钟, 分成500 Hz供闹钟和整点报时使用, 分频100 Hz供跑表使用 input func_key ; //功能键, 1表示数字钟, 2表示跑表, 3表示调时, 4表示设置闹钟,5表示日 //期设置 input key1 ; //功能1时显示闹钟时间, 功能2时暂停, 功能3、4时调小时, 功能5时调 //月份 input key2 ; //功能1时显示日期, 功能2时清零, 功能3、4时调分, 功能5时调日 output [3:0] mode; //功能号指示 output [7:0] hour ; //功能1、3和4时显示小时, 功能2时显示分钟, 功能5时显示月份 output [7:0] minute; //功能1、3和4时显示分钟, 功能2时显示秒, 功能5时显示日期 output [7:0] second; //功能1时显示秒, 功能2时显示1/100秒, 其余时固定显示0 output alarm ; //连至扬声器, 整点报时及闹钟 reg[3:0] mode; //功能号指示(1~5) reg[7:0] hour,minute,second; reg[2:0] divide; //1 kHz信号10分频得100 Hz, 先5分频,再2分频 reg clk_100 Hz; //100 Hz供跑表用 reg clk_500 Hz; //500 Hz供准点报时时用 reg temp1,temp2,temp3; wire funckey,adjust_key1,adjust_key2; always@(posedge clk_1 kHz) begin clk_500 Hz=~clk_500 Hz; //由1 kHz分频得500 Hz时钟信号,整点报时使用 temp1=func_key; temp2=key1; temp3=key2; if(divide==3b101) //由1 kHz分频得到100 Hz信号,用作跑表的时钟 begin divide=0;clk_100 Hz=~clk_100 Hz; end else divide=divide+1; end assign funckey=func_key^temp1; //将func_key(乒乓开关)转换为琴键开关 assign adjust_key1=key1^temp2; //将key1(乒乓开关)转换为琴键开关 assign adjust_key2=key2^temp3; //将key2(乒乓开关)转换为琴键开关 always@(posedge funckey) begin if(mode[2]mode[0]) mode[2]=0; //功能号在1~5之间变化 else mode=mode+1; end //功能1与功能3:数字钟及时间设置, 功能3以外其他功能将不影响数字钟的运行 reg[5:0] h1; //功能1(数字钟)的时、分、秒 reg[6:0] m1,s1; wire clk_1; //数字钟时为1 Hz时钟, 时间设置时为按调整键产生的脉冲 assignclk_1=(clk_1 Hzmode!=3)||(mode==3(adjust_key1||adjust_key2)); always@(posedge clk_1) begin if(mode!=3) //数字钟 begin //23:59:59时变为00:00:00 if(h1[5]h1[1]h1[0]m1[6]m1[4]m1[3]m1[0]s1[6]s1[4]s1[3]s1[0]) {h1,m1,s1}=0; else if(h1[3]h1[0]m1[6]m1[4]m1[3]m1[0]s1[6]s1[4]s1[3]s1[0]) begin //*9:59:59时小时加7,分、秒变为0 h1=h1+7;m1=0;s1=0; end else if(m1[6]m1[4]m1[3]m1[0]s1[6]s1[4]s1[3]s1[0]) begi

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档