- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数电实验数字钟报告(含程序代码).
多功能数字钟设计一、实验目的1. 掌握可编程逻辑器件的应用开发技术——设计输入、编译、仿真和器件编程;2. 熟悉一种EDA软件使用;3. 掌握Verilog设计方法;4. 掌握分模块分层次的设计方法;5. 用Verilog完成一个多功能数字钟设计。二、实验任务1. 已知条件MAX+Plus II软件FPGA实验开发装置(该装置可以提供3路时钟信号和译码显示电路)基本功能具有“秒”、“分”、“时”计时功能,小时按24小时制计时。具有校时功能,能对“分”和“小时”进行调整2. 扩展功能仿广播电台正点报时。在59分51秒、53秒、55秒、57秒发出低音512Hz信号,在59分59秒时发出一次高音1024Hz信号,音响持续1秒钟,在1024Hz音响结束时刻为整点。 定时控制,其时间自定;3. 选做内容任意时刻闹钟自动报整点时数小时计数器改为12翻1数字钟设计分析-功能框图设计编译 设计输入module top_clock (Second,ap,CP,nCR,EN,Adj_Min,Adj_Hour,ctrlbell,sethrkey,setminkey,alarm,_1khz,_500hz,rhr,rmin); input CP,nCR,EN,Adj_Min,Adj_Hour,ctrlbell,_1khz,_500hz,sethrkey,setminkey; output[7:0] rhr,rmin,Second; output alarm; wire[7:0] set_hr,set_min,Hour,Minute; wire alarm_clock,alarm_r,alarm_r1; wire _1khz,_500hz,CP; output ap; reg[7:0] rhr,rmin,Second; supply1 Vdd; wire MinL_EN,MinH_EN,Hour_EN,Ap; wire hrh_equ,hrl_equ,minh_equ,minl_equ; wire time_equ; //Hour:Minute:Second counter counter10 U1(Second[3:0],nCR,EN,CP); counter6 U2(Second[7:4],nCR,(Second[3:0]==4h9),CP); assign MinL_EN=Adj_Min?Vdd:(Second==8h59); assign MinH_EN=(Adj_Min(Minute[3:0]==4h9))||(Minute[3:0]==4h9)(Second==8h59); counter10 U3(Minute[3:0],nCR,MinL_EN,CP); counter6 U4(Minute[7:4],nCR,MinH_EN,CP); assign Hour_EN=Adj_Hour?Vdd:((Minute==8h59)(Second==8h59)); counter24 U5(Hour[7:4],Hour[3:0],nCR,Hour_EN,CP,Ap);//若闹钟调整使能端开启,数码管显示闹铃设置时间,反之显示时钟时间。 /*always @ (setminkey or sethrkey)case({setminkey,sethrkey})2b11:begin rmin[7:0]=set_min[7:0];rhr[7:0]=set_hr[7:0]; end2b10:begin rmin[7:0]=set_min[7:0];rhr[7:0]=Hour[7:0];end2b01:begin rmin[7:0]=Minute[7:0];rhr[7:0]=set_hr[7:0];end2b00:begin rmin[7:0]=Minute[7:0];rhr[7:0]=Hour[7:0];end endcase*/ //选择类型1always @(posedge CP) if(setminkey) rmin[7:0]=set_min[7:0]; else rmin[7:0]=Minute[7:0]; always @(posedge CP) if (sethrkey) rhr[7:0]=set_hr[7:0]; else rhr[7:0]=Hour[7:0];//或者选择类型2counter10 UC0(set_min[3:0],Vdd,setminkey,CP); counter6 UC1(set_min[7:4],Vdd,(set_min[3:0]==4h9),CP);counter24 SU2(set_hr[7:4],set_hr[3:0],Vdd,sethrkey,CP,ap);//comparate the set time
文档评论(0)