- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字日历设计
XXXXX学院
《EDA技术与应用》实训报告
数字日历设计
学 号 XX
姓 名 XX
指导教师: xx
题目:数字日历电路的设计
概述
通过EDA项目设计,使用Quartus软件进行数字日历电路的设计,能够实现最基本的日期,时间显示功能,并在此基础上进行相应的功能创新,使设计项目拥有更丰富的功能。
1.1设计要求
1.1.1设计任务
用EDA的方法设计一个数字日历
1.1.2性能指标
① 用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。
② 数字日历能够显示年、月、日、时、分和秒。
③ 用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(,然后在另一时间段内显示时、分、秒(,两个时间段能自动倒换。
④ 数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。
1.2总体设计基本原理及框图
1.2.1基本原理
首先设计要实现年月日和时分秒的显示,再设计定时和整点报时模块,以及校准模块。此外,还要使其具备星期显示功能,则要设计星期模块。最后,就是将这些底层模块连接起来实现整体功能。那么,就需要控制模块,校准模块,显示控制模块等等。
1.2.2总体框图
2 系统软件设计分析
2.1时分秒计时器模块:
分秒模块程序:
module cnt60(clk,clrn,j,q,cout);
input clk,clrn,j;
output reg[7:0] q;
output reg cout;
always @(posedge clk^j or negedge clrn)
begin
if (~clrn) q=0;
else begin
if (q==h59)q=0;
else q=q+1;
if (q[3:0]==ha)begin
q[3:0]=0;q[7:4]=q[7:4]+1;end
if (q==h59)cout=1;
else cout=0;end
end
endmodule
小时模块程序:
module cnt24(clk,clrn,j,q,cout);
input clk,clrn,j;
output reg [7:0] q;
output reg cout;
always@(posedge clk^j or negedge clrn)
begin
if(~clrn)q=0;
else begin
if(q==h23) q=0;
else q=q+1;
if(q[3:0]==ha) begin
q[3:0]=0;q[7:4]=q[7:4]+1;end
if(q==h23) cout=1;
else cout=0;end
end
endmodule
2.2年月日模块
module nyr2016(clrn,clk,jn,jy,jr,qn,qy,qr); //年月日模块
input clrn,clk,jn,jy,jr;
output [15:0] qn;
output [7:0] qy,qr;
reg [15:0] qn;
reg [7:0] qy,qr;
reg clkn,clky;
reg [7: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^jr) or negedge clrn) // 日计时模块
begin
if (~clrn) qr=1;
else begin
if (qr==date) qr=1;
else qr=qr+1;
if (qr[3:0]==ha) begin
qr[3:0]=0; qr[7:4]=qr[7:4]+1;end
if (qr==date) clky = 1;
else clky = 0;end
end
always @(posedge clky^jy or negedge clrn) //月计时模块
begin
if (~clrn) qy=1;
else begin
if (qy==h12) qy=1;
else qy=qy+1;
if (qy[3:0]==ha) begin
文档评论(0)