电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

用verilog-hdl多功能数字钟

9页
  • 卖家[上传人]:F****n
  • 文档编号:100278766
  • 上传时间:2019-09-23
  • 文档格式:DOC
  • 文档大小:729KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、Verilog HDL实验报告基于Verilog HDL语言的多功能数字钟设计一、试验目的设计一个有如下功能的数字钟:()计时功能:包括时、分、秒。()定时与闹钟功能:能在所设定的时间发出铃音。()校时功能:对小时、分钟和秒钟进行手动校时。()整点报时功能:每到整点能够发出“嘀嘀嘀嘀嘟”四短一长的报时。二、试验原理 多功能数字钟端口示意图数字钟设有五个输入端,分别为时钟输入(CLK)、模式(MODE)、产生声音的时钟信号(CLK_1K)、切换(TURN)和调时(CHANGE)键。输出共七个,其中HOUR7.0、MIN7.0和SEC7.0采用BCD计数方式,分别驱动2个数码管。硬件电路原理图如下:三、试验内容1. 代码/*信号定义: clk: 标准时钟信号,其频率为4Hz; clk_1k:产生闹铃声、报时音的时钟信号,其频率为1024Hz; mode:功能控制信号;为0:计时功能; 为1:闹钟功能; 为2:手动校时功能; turn:接按键,在手动校时功能时,选择是调整小时还是分钟; 若长时间按住改建,还可使秒信号清零,用于精确调时; change: 接按键,手动调整时,每按一次,计数器加

      2、1; 如果长按,则连续快速加1,用于快速调时和定时; hour,min,sec:此三信号分别输出并显示时、分、秒信号, 皆采用BCD码计数,分别驱动6个数码管显示时间; alert:输出到扬声器的信号,用于产生闹铃音和报时音; 闹铃音为持续20秒的急促的“嘀嘀嘀”音,若按住“change”键, 则可屏蔽该音;整点报时音为“嘀嘀嘀嘀嘟”四短一长音; LD_alert:接发光二极管,指示是否设置了闹钟功能; LD_hour:接发光二极管,指示当前调整的是小时信号; LD_min:接发光二极管,指示当前调整的是分钟信号*/module clock(clk,clk_1k,mode,change,turn,alert,hour,min,sec,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output7:0 hour,min,sec;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,n

      3、um1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;always (posedge clk) begin clk_2Hz=clk_2Hz; if(sound=3) begin sound=0; ear=1; end /ear信号用于产生或屏蔽声音 else begin sound=sound+1; ear=0; endendalways (posedge clk_2Hz) /由4Hz的输入时钟产生1Hz的时基信号 clk_1Hz=clk_1Hz;always (posedge mode) /mode信号控制系统在三种功能间转换 begin if(m=2) m=0; else m=m+1; endalways (posedge turn) fm=fm;alw

      4、ays /产生count1,count2,counta,countb四个信号 begin case(m) 2:begin if(fm) begin count1=change; LD_min,LD_hour=2; end else begin counta=change; LD_min,LD_hour=1; end count2,countb=0; end 1:begin if(fm) begin count2=change; LD_min,LD_hour=2; end else begin countb=change; LD_min,LD_hour=1; end count1,counta=2b00; end default:count1,count2,counta,countb,LD_min,LD_hour=0; endcaseendalways (negedge clk) /如果长时间按下“change”键,则生成“num1”信号用于连续快速加1 if(count2) begin if(loop2=3) num2=1; else begin loop2=loop2+1; num2

      5、=0;end end else begin loop2=0; num2=0; endalways (negedge clk) /产生num2信号 if(count1) begin if(loop3=3) num3=1; else begin loop3=loop3+1; num3=0; end end else begin loop3=0; num3=0; endalways (negedge clk) if(counta) begin if(loop4=3) num4=1; else begin loop4=loop4+1; num4=0; end end else begin loop4=0; num4=0; endassign ct1=(num3&clk)|(!num3&m_clk); /ct1用于计时、校时中的分钟计数assign ct2=(num1&clk)|(!num1&count2); /ct2用于在定时状态下调整分钟信号assign cta=(num4&clk)|(!num4&h_clk); /cta用于计时、校时中的小时计数assign ctb=(num2&clk)|

      6、(!num2&countb); /ctb用于在定时状态下调整小时信号always (posedge clk_1Hz) /秒计时和秒调整进程 if(!(sec18h59)|turn&(!m) begin sec1=0;if(!(turn&(!m) minclk=1; end /按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时 else begin if(sec13:0=4b1001) begin sec13:0=4b0000; sec17:4=sec17:4+1; end else sec13:0=sec13:0+1; minclk=0; endassign m_clk=minclk|count1;always (posedge ct1) /分计时和分调整进程 begin if(min1=8h59) begin min1=0; hclk=1; end else begin if(min13:0=9) begin min13:0=0; min17:4=min17:4+1; end else min13:0=min13:0+1; hclk=0; end endassign

      7、h_clk=hclk|counta;always (posedge cta) /小时计时和小时调整进程 if(hour1=8h23) hour1=0; else if(hour13:0=9) begin hour17:0=hour17:4+1; hour13:0=0; end else hour13:0=hour13:0+1;always (posedge ct2) /闹钟定时功能中的分钟调节进程 if(amin=8h59) amin=0; else if(amin3:0=9) begin amin3:0=0; amin7:4=amin7:4+1; end else amin3:0=amin3:0+1;always (posedge ctb) /闹钟定时功能中的小时调节进程 if(ahour=8h23) ahour=0; else if(ahour3:0=9) begin ahour3:0=0; ahour7:4=ahour7:4+1; end else ahour3:0=ahour3:0+1;always /闹铃功能 if(min1=amin)&(hour1=ahour)&(amin

      8、|ahour)&(!change) /若按住“change”键不放,可屏蔽闹铃音 if(sec18h20) alert1=1; /控制闹铃的时间长短 else alert1=0; else alert1=0;always /时、分、秒的现实控制 case(m) 3b00: begin hour=hour1; min=min1; sec=sec1; end /计时状态下的时、分、秒显示 3b01: begin hour=ahour; min=amin; sec=8hzz; end /定时状态下的时、分、秒显示 3b10: begin hour=hour1; min=min1; sec8h54)|(!(min1|sec1) if(sec18h54) alert2=ear&clk_1k; /产生短音 else alert2=!ear&clk_1k; /产生长音 else alert2=0; endendmodule2. 仿真图四、小结及体会为了做多功能数字钟,我借了多本关于Verilog HDL的程序设计书。在前几次试验中,因为课程还没有讲完,所以书上的好多代码还不能看懂,只是能猜到大概意思,再根据试验结果来判断代码的意思。本次试验让我学到了如何分频、用一个键来进行模式选择、if/else的用法、case的用法、秒信号清零等知识。并且对Quarters有了进一步的掌握,熟悉使用了VHDL、Verilog HDL、生成电路图、仿真波形、连接实验箱、下载程序等。矮化砧嫁接的苹果树树冠体积小于乔化砧嫁接的苹果树树冠体积,矮化砧苹果树单株产量低于乔化砧苹果树,所以,栽植矮化苹果树必须根据不同的矮化砧木和不同类型的短枝型品种适当加大栽培密度

      《用verilog-hdl多功能数字钟》由会员F****n分享,可在线阅读,更多相关《用verilog-hdl多功能数字钟》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.