EDA实训万年历.doc_第1页
EDA实训万年历.doc_第2页
EDA实训万年历.doc_第3页
EDA实训万年历.doc_第4页
EDA实训万年历.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

EDA技术与应用实训报告学 号 姓 名 指导教师: 实训题目:数字日历1.系统设计1.1 设计要求1.1.1 设计任务:设计一个数字日历电路1.1.2 技术要求:用Verilog HDL语言设计一个数字日历。数字日历能正确显示年、月、日、时、分和秒。通过开关分别控制对年、月、日或时、分、秒校对及自动切换、,并且运用按钮对年、月、日或时、分、秒校对。通过按钮对数码管全部清零。拓展功能:添加时钟闹钟功能,并通过LED管显示。1.2 方案比较:由于这次实验用到的仪器是EDA实训仪,数码管个数只有八个,因此不能同时显示年、月、日、时、分、秒。但是实训仪的LED管只有12个,因此在拓展功能时12小时做一个周期的整点记时显示。在多次的测试和修改后,得到此最好方案。1.3 方案论证1.3.1 总体思路:通过EDA课程的学习,可知运用Verilog HDL语言设计一个数字日历括计时器模块(jsq60、jsq24)、年月日模块(nyr2009)、控制模块(conr)、校时选择模块(mux_4)、显示选择模块(mux_16)和闹钟定时模块(LED1)、闹钟灯模块(nzd);然后将各个模块连接起来画成原理图再下载到实训仪上,调节开关及按钮来实现数字日历的功能。1.3.2 设计方案:总原理图如下:2各个模块程序的设计(1) 设计一个分频器进行20MHz分频得到实训所需的1Hz的频率分析:这是个20MHZ时钟的分频器,将原来EDA实训仪提供的频率为20MHZ的时钟转换成频率1HZ的时钟,然后输出到有需要的端口,触发模块起作用。(2) 分别设计一个能显示年月日和时分秒的程序校准年月日和秒分时的原理图如下:分析:当k=0时,开关j1,j2,j3校秒时分然后将信号分别送到jsq24模块的jm(校秒)、jf(校分)、js(校时)。当k=1时,开关j1,j2,j3校年月日然后将信号分别送到nyr2009模块的jr(校日)、jy(校月)、jn(校年)。计算年月日的模块如下:分析:clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy和jr分别是校年、校月、校日输入端;qn15.0、qy7.0、qr7.0分别是年、月、日的输出端。显示时分秒与年月历的模块如下:分析:当k=0时,把jsq24送来的时分秒的状态信号送到数码管显示。当k=1时,把nyr2009送来的年月日的状态信号送到数码管显示。计算时分秒的模块如下:分析: clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jm、jf和js分别是校秒、校分、校时输入端;qm7.0、qf7.0、qs7.0分别是年、月、日的输出端;cout是进位;clkcout是由clk控制的秒秒脉冲。时钟闹钟模块如下:数码管显示整点,LED灯亮相应灯。当时间与闹钟所设时间相同LED管亮。(3) 设计三个转换器和一个自动切换器计时器24的模块如下:这个模块是产生计数秒时分的;其中clkcout是由clk脉冲经过16分频器gen产生秒脉冲;cout是经过计时器后产生的24时脉冲;自动转换器模块如下:自动切换主要是为了实现8秒就切换成秒分时或是年月日的,还有控制秒分时的校准和年月日的校准。(4)闹钟灯控制模块(nzd)如下:k是闹钟信号输入端;按键X,控制闹钟灯的熄灭;clk是时钟脉冲。3制作与调试过程在这次的实训中我选择了EDA课程中讲解过的万年历的设计,在其基础上添加了整点报时的一个拓展功能,通过运用Verilog HDL语言对程序进行设计,然后运用QuartusII9.0软件对各程序进行编译,看是否能通过,如有错误可以逐条对语句进行调试,当所有模块编译成功后就下载到EDA工具实验箱进行验证。4结论运用Verilog HDL语言在QuartusII9.0软件上设计了一个数字日历,并通过实训仪正确地显示出来且实现各种功能。5实训心得体会通过这两周的EDA实训,不仅更熟练的运用Verilog HDL语言在QuartusII9.0软件上的设计方法与步骤,还在参考资料后添加了一个拓展功能完成了数字日历电路的设计。在实训过程中,设计时钟闹钟模块时,想让闹钟灯亮的久点,结果闹钟灯一直亮,不会灭了,同时,闹钟灯功能也不能用了,最后在覃琴老师的提点下,我用一个按键来控制闹钟灯的熄灭,回去和同学讨论,把添加了nzd模块程序,不仅把灯的问题给解决了,时钟闹钟功能也能进行显示。从一开始接受课程任务,和同学一起着手建立设计框图,再到网上查阅相关资料,确定电路图到最终制作成型,每一步都必须真诚付出。刚开始我是做的并不成功,不能实现闹钟功能。在多次检修之后,最终实现了课程设计作业的全部功能。将各个部分组成起来设计成为万年历定时闹钟功能。通过这次EDA实训我对数字逻辑电路也更加地了解,有了更直观的了解。特别感谢指导老师覃琴老师的悉心指点!6参考文献(1) 江国强,EDA技术与应用.北京:电子工业出版社.20107、附录:7.1仿真波形图(部分模块)7.11.cnt60模块仿真波形图7.12.contr模块仿真波形图7.13.mux-4模块仿真波形图7.14.LED1模块波形仿真图:7.15.nyr2009模块仿真波形图7.2程序清单一、拓展部分:LED1模块程序:module mux6(m,f,s,nm,nf,ns,q,q2);input7:0 nm,nf,ns,m,f,s;output reg 31:0 q2;output reg q;alwaysbeginif(m=nm)&(f=nf)&(s=ns)beginq=1;q231:24=0;q223:0=ns,nf,nm;endelse beginq=0;q231:24=0;q223:0=ns,nf,nm;endendendmodule拓展部分数码管现实模块:module mux2(k,q2,q,q1);input k;input31:0 q2;input31:0 q;output reg 31:0 q1;alwaysbeginif(k=1)q1=q2;else q1=q;endendmodule二、基本部分:1、 contr模块程序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;endcaseendendmodule2、 mux_4模块程序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;alwaysbeginif (k=0) jm,jf,js=j1,j2,j3;else jr,jy,jn=j1,j2,j3;endendmodule3、gen模块程序module gen(clk,cout);input clk;reg24:0 q;output reg cout;always (posedge clk)beginif(q20000000-1) q=q+1;else q=0;if(q=20000000-1) cout=1;else cout=0;endendmodule4、 cnt60模块程序module cnt60 (clk,clr,j,q,cout);input clk,clr,j;output reg7:0 q;output reg cout;reg en1;always (posedge clkj or negedge clr)beginif(clr) q3:0=0;else beginif(q3:09) q3:0=q3:0+1;else q3:0=0;if (q3:0=9) en1=1;else en1=0; endendalways (posedge clkj or negedge clr)beginif(clr) q7:4=0;else if(en1) beginif(q7:45) q7:4=q7:4+1;else q7:4=0;if (q7:4=5) cout=1;else cout=0; endendendmodule5、 jsq24模块程序module jsq24(clk,clr,j,q,cout);input clk,clr,j;output reg7:0 q;output reg cout;reg en1;always(posedge clkj or negedge clr)beginif(clr) q3:0=0;else beginif (q3:0=9|q=h23) q3:0=0;else q3:0=q3:0+1;if(q3:0=9|q=h23) en1=1;else en1=0;endendalways(posedge clkj or negedge clr)beginif(clr) q7:4=0;else if(en1) beginif (q=h23) q7:4=0;else q7:4=q7:4+1;if(q7:4=2) cout=1;else cout=0;endendendmodule6、 nyr2009模块程序module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr);input clrn,clk,jn,jy,jr;output reg 15:0 qn;output reg7:0qy,qr;reg 7:0qym,qrm;reg clkn,clky;reg 4:0date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn=h2000;qym=1;qrm=1;endalways (posedge (clkjr) or negedge clrn)beginif (clrn) qrm=1;else beginif (qrm=date) qrm=1;else qrm=qrm+1;if (qrm=date)clky = 1;else clky = 0;endqr7:4=qrm/10;qr3:0=qrm%10;endalways (posedge clkyjy or negedge clrn)beginif (clrn) qym=1;else beginif (qym=12) qym=1;else qym=qym+1;if (qym=12)clkn = 1;else clkn = 0;endqy7:4=qym/10;qy3:0=qym%10;endalwaysbegincase (qy)1: date=31;2:beginif (qn%4=0)&(qn/100 != 0)|(qn/400=0) date=29;else date=28; end3: date=31;4: date=30;5: date=31;6: date=30;7: date=31;8: date=31;9: date=30;10: date=31;11: date=30;12: date=31;default :date=30;endcaseendalways (posedge (clknjn) or negedge clrn )beginif (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;endendalways (posedge clkn1 or negedge clrn )beginif (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;endendalways (posedge clkn2 or negedge clrn )beginif (clrn) qn11:8=0;else begin if(qn11:8=9) qn11:8=0;else qn11:8=qn11:8+1;if (qn7:4=9) clkn3=0;else clkn3=1;endendalways (posedge clkn3 or negedge clrn )beginif (clrn) qn15:12=2;else if(qn15:12=9) qn15:12=0;else qn15:12=qn15:12+1;endendmodule7、 mux_16模块程序module mux_16(k,qm,qf

温馨提示

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

评论

0/150

提交评论