基于Verilog_HDL的万年历.doc_第1页
基于Verilog_HDL的万年历.doc_第2页
基于Verilog_HDL的万年历.doc_第3页
基于Verilog_HDL的万年历.doc_第4页
基于Verilog_HDL的万年历.doc_第5页
已阅读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时分秒仿真总结结论通过此次设计研究,最终完成了万年历的设计与制作。在设计过

温馨提示

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

评论

0/150

提交评论