数字日历电路的设计.doc_第1页
数字日历电路的设计.doc_第2页
数字日历电路的设计.doc_第3页
数字日历电路的设计.doc_第4页
数字日历电路的设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

桂林电子科技大学信息科技学院EDA技术与应用实训报告学 号 姓 名 指导教师: 2012 年 6 月 22 日 题目:数字日历电路的设计1.系统设计1.1设计要求1.1.1设计任务用EDA的方法设计一个数字日历1.1.2性能指标 用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。 数字日历能够显示年、月、日、时、分、秒。 数字日历有复位的功能,有校年、月、日和校时、分、秒的功能,通过一个开关来转换时校年、月、日还是校时、分、秒。 此数字日历具有闹钟的功能,在6:01将开启闹钟,用一个LED灯表示,可以在任意时刻关闭闹钟。1.2设计思路及框图1.2.1设计思路日历主要由年月日模块和时分秒模块组成,由分频器提供脉冲,再加上一个控制模块实现控制选择校准时分秒还是校准年月日。也可以实现时分秒和年月日的八秒自由转换。再加上一个闹钟,在6:01的时候闹钟开启,并由一个开关控制,在任意时间都可以关掉闹钟。 1.2.2总体设计框图2各模块程序设计2.1时分秒计时器模块:module cnt60(clrn,clk,q,j,cont); /秒和分计时input clrn,clk,j;output reg 7:0 q;output reg cont;always (posedge clkj or negedge clrn)beginif(clrn) q=0;else beginif(q=h59) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif(q=h59) cont=1;else cont=0;endendendmodule module cnt24(clrn,clk,q,j,cont); /小时计时input clrn,clk,j;output reg 7:0 q;output reg cont;always (posedge clkj or negedge clrn)beginif(clrn) q=0;else beginif(q=h23) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif(q=h23) cont=1;else cont=0;endendendmodule 2.2年月日模块module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr); /年月日模块 input clrn,clk,jn,jy,jr; output 15:0 qn; output 7:0qy,qr; reg 15:0 qn; reg 7:0qy,qr; reg clkn,clky; reg 7:0date; reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn=h2000;qy=1;qr=1;end always (posedge (clkjr) or negedge clrn) / 日计时模块begin if (clrn) qr=1;else begin if (qr=date) qr=1; else qr=qr+1; if (qr3:0=ha) begin qr3:0=0; qr7:4=qr7:4+1;endif (qr=date)clky = 1;else clky = 0;end endalways (posedge clkyjy or negedge clrn) /月计时模块begin if (clrn) qy=1;else begin if (qy=h12) qy=1; else qy=qy+1; if (qy3:0=ha) begin qy3:0=0;qy7:4=qy7:4+1;endif (qy=h12)clkn = 1;else clkn = 0;end endalways begincase (qy)h01: date=h31;h02:begin if (qn%4=0)&(qn%100 != 0)|(qn%400=0) date=h29;else date=h28; endh03: date=h31;h04: date=h30;h05: date=h31; h06: date=h30;h07: date=h31;h08: date=h31;h09: date=h30;h10: date=h31;h11: date=h30;h12: date=h31;default :date=h30;endcase endalways (posedge (clknjn) or negedge clrn ) /年计时模块begin if (clrn) qn3:0=0; else begin if(qn3:0=9) qn3:0=0; else qn3:0=qn3:0+1; if (qn3:0=9) clkn1=0; else clkn1=1;end endalways (posedge clkn1 or negedge clrn )begin if (clrn) qn7:4=0; else begin if(qn7:4=9) qn7:4=0; else qn7:4=qn7:4+1; if (qn7:4=9) clkn2=0; else clkn2=1;end endalways (posedge clkn2 or negedge clrn )begin if (clrn) qn11:8=0; else begin if(qn11:8=9) qn11:8=0; else qn11:8=qn11:8+1; if (qn11:8=9) clkn3=0; else clkn3=1;end endalways (posedge clkn3 or negedge clrn )begin if (clrn) qn15:12=2; else if(qn15:12=9) qn15:12=0; else qn15:12=qn15:12+1; endendmodule 2.3校时模块module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3);input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;always begin if (k=0) jm,jf,js=j1,j2,j3; else jr,jy,jn=j1,j2,j3; endendmodule 2.4分频器模块同时给时分秒和闹钟送入脉冲module FENP(clk,newclk);input clk;output reg newclk;reg24:0 cnter;always (posedge clk) begin if(cnter20000000) cnter=cnter+1; else cnter=0; if (cnter10000000) newclk=1;else newclk=0; end endmodule2.5控制器模块显示年月日和显示时分秒直接的转换控制module contr(clk,k1,k2,k); input clk,k1,k2; output reg k; reg 3:0qc; regrc;always (posedge clk) begin qc=qc+1; if (qc8) rc=0; else rc=1; case (k1,k2) 0:k=rc; /八秒显示年月日八秒显示时分秒的自由转换 1:k=0; /显示并且校准时分秒 2:k=1; /显示并且校准年月日 3:k=rc;endcase endendmodule2.6闹钟模块module naozhong(qs,qf,led,zt);input zt;input7:0 qs,qf;output led;reg led;always beginif (qs=h06&qf=h01) /6:01闹钟开始闪烁 led=1; else led=0; if(zt=1) led=0; / 在任意时刻都可以关掉闹钟 endendmodule 2.7数码管显示模块module mux_16(k,qm,qf,qs,qr,qy,qn,q); inputk; input7:0qm,qf,qs,qr,qy; input15:0 qn; output reg 31:0q;always begin if (k=0) begin q31:24=0; q23:0=qs,qf,qm;end else q=qn,qy,qr; endendmodule 3 调试过程 在调试过程中出现很多问题,在时分秒里加入分频器可以实现计时,但是闹钟就不能实现1秒钟闪烁一次的功能,当给闹钟加上一个分频器的时候,时分秒模块也不能自动计时。首先认识到必须只能有一个分频器,而且还能同时给两个提供脉冲。所以就删除了时分秒里的分频器,在总的图中加入一个分频器,同时给两个提供脉冲,这样两个功能都可以同时实现。 4功能测试4.1 测试仪器与设备 电脑,EDA实训仪。4.2 性能指标测试 S0、S1控制手动切换和自动切换,当S0、S1都往上拨或都往下拨都是自动切换,SO上拨S1下拨是显示并可以校准时分秒的,反之是显示和校准年月日的。K8、K7、K6分别是校准年月日或时分秒的。K0是复位功能5 实训心得体会 通过这次EDA实训,把课堂上学习的知识又巩固了一遍,也更加熟悉了对quartusII软件的使用。这次我们小组选作数字日历这个题目,创新点在于闹钟模块,可以实现闹钟的功能。通过小组的分工合作,把大家的思路整合在一起,在一起分析程序的使用,互相学习,更加理解了程序的用法。EDA的功能很强大,去除了传统算法的复杂,是程序简单化,几个语句就可以实现想要的功能。在我们所做的日历中,分别用到计数,分频,选择器这些最基本的功能,然后加以改善和创新,实现了日历的功能。6.参考文献:江国强.EDA技术与应用(第三版).北京:电子工业出版社,2011附录附录1:仿真波形图1.分频器仿真波形图2.时分秒仿真波形图3.年月日仿真波形图4.闹钟仿真波形图附录2:程序清单:程序1module cnt60(clrn,clk,q,j,cont); /秒和分计时input clrn,clk,j;output reg 7:0 q;output reg cont;always (posedge clkj or negedge clrn)beginif(clrn) q=0;else beginif(q=h59) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif(q=h59) cont=1;else cont=0;endendendmodule 程序2module cnt24(clrn,clk,q,j,cont); /小时计时input clrn,clk,j;output reg 7:0 q;output reg cont;always (posedge clkj or negedge clrn)beginif(clrn) q=0;else beginif(q=h23) q=0;else q=q+1;if(q3:0=ha) begin q3:0=0;q7:4=q7:4+1;endif(q=h23) cont=1;else cont=0;endendendmodule 程序3module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr); /年月日模块 input clrn,clk,jn,jy,jr; output 15:0 qn; output 7:0qy,qr; reg 15:0 qn; reg 7:0qy,qr; reg clkn,clky; reg 7:0date; reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn=h2000;qy=1;qr=1;end always (posedge (clkjr) or negedge clrn) / 日计时模块begin if (clrn) qr=1;else begin if (qr=date) qr=1; else qr=qr+1; if (qr3:0=ha) begin qr3:0=0; qr7:4=qr7:4+1;endif (qr=date)clky = 1;else clky = 0;end endalways (posedge clkyjy or negedge clrn) /月计时模块begin if (clrn) qy=1;else begin if (qy=h12) qy=1; else qy=qy+1; if (qy3:0=ha) begin qy3:0=0;qy7:4=qy7:4+1;endif (qy=h12)clkn = 1;else clkn = 0;end endalways begincase (qy)h01: date=h31;h02:begin if (qn%4=0)&(qn%100 != 0)|(qn%400=0) date=h29;else date=h28; endh03: date=h31;h04: date=h30;h05: date=h31; h06: date=h30;h07: date=h31;h08: date=h31;h09: date=h30;h10: date=h31;h11: date=h30;h12: date=h31;default :date=h30;endcase endalways (posedge (clknjn) or negedge clrn ) /年计时模块begin if (clrn) qn3:0=0; else begin if(qn3:0=9) qn3:0=0; else qn3:0=qn3:0+1; if (qn3:0=9) clkn1=0; else clkn1=1;end endalways (posedge clkn1 or negedge clrn )begin if (clrn) qn7:4=0; else begin if(qn7:4=9) qn7:4=0; else qn7:4=qn7:4+1; if (qn7:4=9) clkn2=0; else clkn2=1;end endalways (posedge clkn2 or negedge clrn )begin if (clrn) qn11:8=0; else begin if(qn11:8=9) qn11:8=0; else qn11:8=qn11:8+1; if (qn11:8=9) clkn3=0; else clkn3=1;end endalways (posedge clkn3 or negedge clrn )begin if (clrn) qn15:12=2; else if(qn15:12=9) qn15:12=0; else qn15:12=qn15:12+1; endendmodule 程序4module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3); /校时模块input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;always begin if (k=0) jm,jf,js=j1,j2,j3; else jr,jy,jn=j1,j2,j3; endendmodule 程序5module FENP(clk,newclk); /分频器模块input clk;output reg newclk;reg24:0 cnter;always (posedge clk) begin if(cnter

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论