数字日历设计_第1页
数字日历设计_第2页
数字日历设计_第3页
数字日历设计_第4页
数字日历设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 XXXXX学院EDA技术与应用实训报告数字日历设计学 号 XX 姓 名 XX 指导教师: xx 题目:数字日历电路的设计1 概述通过EDA项目设计,使用Quartus软件进行数字日历电路的设计,能够实现最基本的日期,时间显示功能,并在此基础上进行相应的功能创新,使设计项目拥有更丰富的功能。1.1设计要求1.1.1设计任务用EDA的方法设计一个数字日历1.1.2性能指标 用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。 数字日历能够显示年、月、日、时、分和秒。 用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20080101),

2、然后在另一时间段内显示时、分、秒(如00123625),两个时间段能自动倒换。 数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。1.2总体设计基本原理及框图1.2.1基本原理首先设计要实现年月日和时分秒的显示,再设计定时和整点报时模块,以及校准模块。此外,还要使其具备星期显示功能,则要设计星期模块。最后,就是将这些底层模块连接起来实现整体功能。那么,就需要控制模块,校准模块,显示控制模块等等。1.2.2总体框图2 系统软件设计分析2.1时分秒计时器模块:分秒模块程序:module cnt

3、60(clk,clrn,j,q,cout);input clk,clrn,j;output reg7:0 q;output reg cout;always (posedge clkj or negedge clrn)begin if (clrn) q=0;else beginif (q='h59)q=0;else q=q+1;if (q3:0='ha)beginq3:0=0;q7:4=q7:4+1;endif (q='h59)cout=1;else cout=0;endendendmodule小时模块程序:module cnt24(clk,clrn,j,q,cout);

4、input clk,clrn,j;output reg 7:0 q;output reg cout;always(posedge clkj or negedge clrn)beginif(clrn)q=0;else beginif(q='h23) q=0;else q=q+1;if(q3:0='ha) beginq3:0=0;q7:4=q7:4+1;endif(q='h23) cout=1;else cout=0;endendendmodule2.2年月日模块module nyr2016(clrn,clk,jn,jy,jr,qn,qy,qr); /年月日模块 input

5、 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=

6、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)

7、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; end'h03: date='h31;'h04: date='h30;'h05: date='h31; 'h06: date='h30;'h07: date='h31;'h08: d

8、ate='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 clkn

9、1=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

10、=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; endendmodule2.3控制模块module contr(clk,k1,k2,k);input clk,k1,k2;output reg k;reg 3:0 qc;reg rc;always (posedge clk) begin qc=qc+1; if (qc<8) rc=0;

11、else rc=1; case (k1,k2) 0:k=rc; 1:k=0; 2:k=1; 3:k=rc; endcase endendmodule2.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;always begin if (k=0) jm,jf,js=j1,j2,j3; else jr,jy,jn=j1,j2,j3; endendmodule2.5星期模块module xinqishumaguan(clk,qn,qy,qr,z);input cl

12、k;input 15:0 qn;input 7:0 qy,qr;output reg 3:0 z;reg 3:0 y;always begin if (qn%4=0)&(qn%100 != 0)|(qn%400=0) begin case (qy) 'h01:y=0; /该月对应数 'h02:y=3; 'h03:y=4; 'h04:y=0; 'h05:y=2; 'h06:y=5; 'h07:y=0; 'h08:y=3; 'h09:y=6; 'h10:y=1; 'h11:y=4; 'h12:y

13、=6; endcase;end else begin case (qy) 'h01:y=0; 'h02:y=3; 'h03:y=3; 'h04:y=6; 'h05:y=1; 'h06:y=4; 'h07:y=6; 'h08:y=2; 'h09:y=5; 'h10:y=0; 'h11:y=3; 'h12:y=5; endcase;end end always if (qn%4=0)&(qn%100 != 0)|(qn%400=0) z=(qn-1+(qn/4)+(qn/400)-(qn/100

14、)%7-1+qr+y)%7;/闰年计算公式 else z=(qn+(qn/4)+(qn/400)-(qn/100)%7-1+qr+y)%7;/平年计算公式endmodule2.6报时模块module baoshi(qs,qf,fLED,qm,off);input off;input7:0 qm, qs,qf;output fLED;reg fLED;always beginif (qs='h07&&qf='h01) | (qm=0&&qf=0) /7:01和整点时彩灯亮起,蜂鸣器响 fLED=1; else fLED=0; if(off=1) f

15、LED=0; / 在任意时刻都可以关掉彩灯亮,蜂鸣器endendmodule2.7数码管显示模块module mux_xianshi_2(k,qm,qf,qs,qr,qy,qn,q,z); input k; input 7:0 qm,qf,qs,qr,qy; input 15:0 qn; input 3:0 z; output reg 31:0 q; always begin if (k=0) begin q31:28=z; q27:24=0; q23:0=qs,qf,qm;end else q=qn,qy,qr; end endmodule 2.8分频模块module fenping(clk

16、,newclk);input clk;output reg newclk;reg24:0 cnter;always (posedge clk) begin if(cnter<20000000) cnter=cnter+1; else cnter=0; if (cnter<10000000) newclk=1;else newclk=0; end endmodule3 系统测试(调试) 3.1 测试仪器与设备 装有quartus软件的计算机,EDA实验箱一台。3.2 性能指标测试系统能够完成基础功能即日期时间的计时显示功能,并能实现报时,星期的显示功能。3.2.1软件测试时分秒仿真:

17、 如仿真所示:可以进行自动时分秒计数,并且在校准时,可以有效的进数。准确的实现时分秒计数功能。年月日仿真:仿真出程序可以进行正常的年月日自动计数功能,并且在校准有效时可以进行正确的进数,实现校准功能。控制模块仿真: 如图所示:当k1,k2=0或3时,k会出现前8秒为0,后8秒为1的自动切换;当k1,k2=2时,k显示为1;当k1,k2=1时,k会显示为0。校准模块仿真:如图所示:当k=0时,显示时分秒状态,此时可以对时分秒进行校准;当k=1时,显示年月日状态,此时可以对年月日进行校准。报时模块仿真: 如图:整点0时0分0秒和7时0分0秒时LED会亮起(注:电路设计时是将蜂鸣器和LED并联的,所

18、以是一起工作的,这里只进行一个输出设计),起到整点报时的功能;在设定的闹钟7时1分时,LED工作(设计是进行1Hz的闪烁),起到闹钟功能,给off高电平时,关掉闹钟。星期模块仿真:如图为显示年月日后对应的星期,在2015年7月2日输出Z显示星期三;在2016年7月2日输出Z显示星期六。显示模块仿真: 如图:仿真同时给定年月日和时分秒(包括输入星期)输入,在k=1时只显示年月日;在k=0时只显示星期和时分秒。整个日历仿真测试: 在k1=0,k2=0和k1=1,k2=1两种状态时显示每隔8秒进行年月日和时分秒的自动切换;在k1=1,k2=0时,只显示年月日,并可以进行有效的校准;在k1=0,k2=

19、1时,只显示年月日,并可以进行有效的校准;当到达整点时蜂鸣器尖端性响起和LED会亮,当到达定时间7时1分时会进行闹铃(蜂鸣器尖端性响起和LED会闪烁);off=1时,会关掉闹铃。3.2.2硬件测试软件仿真后,查看试验箱手册进行引脚锁定: 将仿真测试好的程序通过计算机下载到试验箱,进行硬件测试:3.3 结果分析 经过程序设计,软件测试和硬件测试日历能够完全实现预定设计的功能,因此设计成功完成。4 波形发生器的设计 设计函数发生器,可以通过两个按钮进行选择输出4个波形(锯齿波、三角波、方波和正弦波)中的一个。4.1 设计原理框图 如下设计原理图,ipm rom0为锯齿波,ipm rom1为正弦波,ipm rom2为三角波,ipm rom3为方波;inst7为四选一选择模块,s1、s2为选择输入端。4.2 测试与仿真4.2.1 ModelSim仿真:如图为四选一波形选择,仿真在同一截面上:s1、s2为00时,显示锯齿波;s1、s2为01时显示三角波;s1

温馨提示

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

评论

0/150

提交评论