




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Verilog HDL的万年历设计与总结报告题目名称: 基于Verilog HDL的万年历研究设计 报告人:_李新_ _ _ _院系/年级/专业:_ _ 指导教师:_ _ _ _ 制作日期:_ _ _基于Verilog HDL的万年历摘要基于Verilog HDL的万年历设计,主要完成的任务是使用Verilog语言,在Quartus2上完成电路设计,程序开发模拟,基于功能是能够显示/修改年月日时分秒。电路设计模块:分频、控制、时间显示调整、时分秒、年月日、显示控制、译码器。各个模块完成不同的任务,合在一起就构成了万年历电路设计。软件模拟直接在Quartus2上进行。 随着科学技术的发展,时间观念越来越重,但是老式的钟表以及日历等时间显示工具已不合时宜。对此,数字钟表的设计有了用武之地。基于Verilog的万年历设计,采用软件开发模拟,开发成本低,而且在功能设计上有了很大的灵活度。同时,该设计的精度远远超过钟表,并且不需要维修。综上所述,本设计具有设计方便、功能多样、电路简洁、成本低廉等优点。符合社会发展趋势,前景广阔。关键词:万年历,Verilog HDL,Quartus2目录摘要.1Abstract.2第一章 万年历发展介绍及Verilog HDL简介.31.1万年历的发展.31.2Verilog HDL简介4第二章 设计原理.52.1组成模块.62.2系统设计图.7第三章 各功能模块介绍8第四章 模拟仿真114.1年月日仿真124.2时分秒仿真13总结结论14参考文献15第一章 万年历的发展介绍及Verilog HDL简介1.1万年历的发展钟表、日历等的数字化大大方便了我们的日常生活,同时大大扩展了其功能,而这些功能的实现,均以钟表的数字化为基础的。因此,研究数字化钟表以及扩大其应用,有现实意义。此次设计与制作数字万年历就是为了了解数字钟的原理,从而学会制作。通过它也可以进一步学习掌握各种逻辑电路与时序电路的原理与使用方法。1.2 Verilog HDL简介Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。2.1组成模块根据一般EDA实验设备的输入/输出接口的容限,本设计采用8只七段数码管分时完成时、分、秒或年、月、日的显示。设计电路的计时器模块用于完成一天中的24小时计时;年月日模块接受计时器模块送来的“天”脉冲进行计数,得到日、月、年的显示结果;控制模块产生控制信号k,控制数码显示器显示年、月、日,还有显示时、分、秒,或是自动轮流显示;校时选择模块在k信号的控制下,选择将j1、j2和j3这3个校时按钮产生的信号是送到计时器模块的校秒、校分和校时的输入端,还是送到年月日模块的校天、校月和校年输入端;显示选择模块在k信号的控制下,选择是将计时器模块的时、分、秒状态信号,还是将年月日模块的年、月、日信号送到数码显示器显示。2.2系统设计图系统流程图功能设计图第三章 各功能模块介绍1.年月日模块设计基于Verilong HDL的年月日模块设计的源程序nyr2009.v如下:module nyr2009(clrn,clk,qn,qy,qr);input clrn,clk;output15:0 qn;output7:0 qy,qr;reg 15:0 qn;reg7:0 qy,qr;reg clkn,clky;reg7:0 date;reg clkn1,clkn2,clkn3;/初始化年脉冲/initial begin clkn1=1;clkn2=1;clkn3=1;end/初始化年.月.日时间/initial begin qn=h2000;qy=1;qr=1;end/日计数模块always (posedge clk or negedge clrn)beginif(clrn) qr=1;else beginif (qr=date) qr=1;else qr=qr+1;if(qr3:0=ha) beginqr3:0=0; qr7:4=qr7:4+1;endif(qr=date) clky=1;else clky=0;endend/月计算模块always(posedge clky or negedge clrn) begin if (clrn) qy=1;else beginif (qy=h12) qy=1;else qy=qy+1;if (qy3:0=ha) beginqy3:0=0; qy7:4=qy7:4+1;endif (qy=h12) clkn=1;else clkn=1; endend/产生每月的天数alwaysbegin case(qy)h01: date=h31;h01: begin if(qn/4=0)&( qn/100!=0)|( qn/400=0) date=h29; /整百的年份被400整除的,是闰年,其他如果不是整百的年份,直接被4整除的是闰年。 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;h011: date=h30;h12: date=h31;default: date=h30;endcaseend/年计数模块always(posedge clkn 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; endendalways(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; endendalways(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 (qn7:4=9) clkn3=0;else clkn3=1; endendalways(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其中clrn是异步清除端,低电平有效;clk是时钟输入端,上升沿有效;qn15.0、qy7.0和qr7.0分别是年、月和日的状态输出端。2.控制模块的设计基于Verilong HDL的控制模块(contr)设计的源程序contr.v如下: module contr(clk,k1,k2,k); input clk,k1,k2; output k;reg k; reg3:0 qc; reg rc;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;endcaseendendmodule在控制模块中,使用了一个16分频电路,输出rc是周期为16秒得方波,即8秒高电平、8秒低电平,用于万年历的自动倒换的显示模式。其中,clk是1秒时钟的输入端;k1和k2是控制输入端,当k1 k2=00或11时自动显示模式,控制数码显示器用8秒钟时间显示年、月、日,另外8秒钟时间显示时、分、秒;当k1 k2=01时,仅控制显示时、分、秒;当k1 k2=10时,仅显示年、月、日;k是控制输入端。3.校时选择模块的设计基于Verilong HDL的校时选择模块设计的源程序mux_4.v如下: module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3); input k, j1,j2,j3; output jm,jf,js,jr,jy,jn;reg jm,jf,js,jr,jy,jn;always (k or j1 or j2 or j3) begin if(k=0) jm,jf,js= j1,j2,j3; else jr,jy,jn= j1,j2,j3;endendmodulek是控制输入端,当k=0时,控制将校时按钮j1,j2和j3的信号分别送到计时器模块的jm,jf,js;当k=1时,将校时按钮j1,j2和j3的信号分别送到年月日模块的,jr,jy,jn。4.显示选择模块的设计基于Verilong HDL的显示选择模块设计源程序mux_16.v如下:module mux_16(k,qm,qf,qs,qr,qy,qn,q); input k; input7:0 qm,qf,qs,qr,qy; input15:0 qn; output 31:0 q;reg 31:0 q;always begin if(k=0) beginq31:24=0;q23:0=qs,qf,qm; endelse q=qn,qy,qr;endendmodule其中,k是控制输入端,当k=0时,控制将计时器模块送来的qm7:0、qf7:0和qs7:0状态信号送到数码显示器显示;当k=1时,将年月日模块送来的qr7:0、qy7:0和qn15:0状态信号送到数码显示器显示。第四章 模拟仿真4.1年月日仿真4.2时分秒仿真总结结论通过此次设计研究,最终完成了万年历的设计与制作。在设计过程中,我从各个模块的思路设计到实际程序编写,从点到面。在出现与处理问题的过程中,不断提升自己处理细节问题的能力,最终达到了预期的效果。而更重要的是通过系统设计这项项目,使我对于设计整体流程有了更加明晰的感受,对于今后的深入学习与应用奠定了基础。在今后的学习中,我将继续加强EDA理论知识和Verilog语言的熟练掌握,争取更大的突破。最后,感谢老师这学期的辛勤授课,您的敬业精神值得很多老师和学生学习,通过一学期的课程学习也是我进步很多。谢谢您唐老师!袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈芀荿薀螆肃芅蕿袈芈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 原发性骨髓纤维化护理查房
- 妊娠剧吐护理病历讨论
- 小儿白血病的护理
- 神经性膀胱的护理查房
- 企业综合部月度工作总结
- 护理工作检查反馈
- 公关行业半年工作总结
- 精神科病人输液的护理
- 管理沟通中的冲突管理
- 体温不降反升护理
- 2025中国农业科学院棉花研究所第二批招聘7人备考考试题库附答案解析
- 部编版2025-2026学年三年级上册语文期中测试情境卷A卷(含答案)
- 做更好的自己课件-2025-2026学年统编版道德与法治七年级上册
- 2023年贵州贵州贵安发展集团有限公司招聘考试真题及答案详解(夺冠)
- 移动照明车夜间施工租赁协议
- 重庆西南大学附中2025-2026学年九年级上学期开学考试语文试题
- 2025年大宗商品贸易业务流程优化计划
- 情感表达+课件+2025-2026学年人教版(2024)初中美术七年级上册
- 借名购车协议贷款协议书
- 2025年6月四川省高中学业水平合格性考试地理试题(解析版)
- 2024年北京事业编笔试题(附答案)
评论
0/150
提交评论