EDA综合设计性实验数字钟Word格式.docx
- 文档编号:16384939
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:16
- 大小:411.31KB
EDA综合设计性实验数字钟Word格式.docx
《EDA综合设计性实验数字钟Word格式.docx》由会员分享,可在线阅读,更多相关《EDA综合设计性实验数字钟Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
利用前面实验所学知识,设计一数字钟并在GW48实验箱上实现。
具体要求如下:
1.计时可选十二进制计时和二十四进制计时;
2.可手动校时,能分别进行时、分的校正;
3.带闹钟功能,当计时计到闹铃时间时,发光二极管点亮,闹铃时间为1分,可用按键提前终止闹铃;
4.带秒表功能;
(选做)
5.带日历显示,可显示月、日等。
五重点问题:
如何设计并实现下列技术指标的数字钟:
1、能够用数码管显示当前时间的时、分、秒(时采用24小时制);
2、能够通过按键调整时钟的时、分;
3、能够设定闹铃时间。
闹铃时间到,有声音提示;
4、闹铃时间与当前时间要共用数码管的方式显示,并能用按键来切换。
六参考文献:
[1]潘松,黄继业,潘明.EDA技术实用教程——VerilogHDL版(第五版).北京:
科学出版社,2013.11
实验原始数据记录表
实验项目数字钟指导教师
姓名Jason.P班别学号
学院物理与电子工程学院专业电子信息科学与技术
实验进行时间2016年6月6日第十五周一,15:
20时至17:
20时;
实验地点电子楼317室室温26度湿度65%天气晴
原始数据记录(自行设计记录表格):
小时计数模块:
源代码:
modulecnt_24(CLK,RST,EN,COUT,DOUT);
inputCLK,EN,RST;
output[7:
0]DOUT;
outputCOUT;
reg[7:
0]A;
regCOUT;
assignDOUT[3:
0]=A%10;
assignDOUT[7:
4]=A/10;
always@(posedgeCLKornegedgeRST)begin
if(!
RST)A=0;
elseif(EN)begin
COUT=0;
if(A<
23)A=A+1;
elsebeginA=0;
COUT=1;
end
end
endmodule
波形分析:
当EN和RST信号均为高电平时,计数器正常工作。
当计满24次时,COUT输出一个进位高电平信号。
分、秒计数模块:
modulecnt_60(CLK,RST,EN,COUT,DOUT);
59)A=A+1;
仿真波形分析:
当计满60次时,COUT输出一个进位高电平信号。
比较器模块:
modulecheck(a,b,cout);
input[7:
0]a,b;
outputcout;
regcout;
always@(a,b)
begin
if(a==b)
cout=1;
else
cout=0;
end
当输入a和b相等时,cout输出高电平。
2选1选择器模块:
modulemux21(a,b,s,y);
inputa,b,s;
outputy;
assigny={s?
b:
a};
输入a置为高电平,b为低电平;
当s为高电平时,输出y为b的值;
反之则为a的值。
9选3选择器模块:
modulemux168(a,b,c,d,e,f,g,h,i,k,l,m,display);
0]a,b,c,d,e,f,g,h,i;
input[1:
0]display;
0]k,l,m;
reg[7:
always@(*)
if(display==2'
b00)
begink=a;
l=b;
m=c;
end
elseif(display==2'
b01)
begink=d;
l=e;
b11)
l=g;
m=f;
b10)
begink=h;
l=i;
display共四种状态:
00,01,11,10;
输入a->
i分别赋值1-9,在不同的display状态下,输出k,l,m将对应不同的值。
状态机模块:
modulestatus(clk_key,led,hc,mc,ah,am,sm,ss,dy,dr,display);
inputclk_key;
output[3:
0]led;
outputhc,mc,ah,am,sm,ss,dy,dr;
output[1:
reg[3:
parameter[3:
0]s0=0,s1=1,s2=2,s3=3,s4=4,s5=5,s6=6,s7=7,s8=8;
reg[3:
0]next_state;
reghc,mc,ah,am,sm,ss,dy,dr;
reg[3:
0]cs;
reg[1:
always@(cs)begin
case(cs)
s0:
beginnext_state=s1;
hc=0;
mc=0;
ah=0;
am=0;
sm=0;
ss=0;
dy=0;
dr=0;
display=2'
b00;
s1:
beginnext_state=s2;
hc=1;
s2:
beginnext_state=s3;
mc=1;
s3:
beginnext_state=s4;
ah=1;
b01;
s4:
beginnext_state=s5;
am=1;
s5:
beginnext_state=s6;
sm=1;
b11;
s6:
beginnext_state=s7;
ss=1;
s7:
beginnext_state=s8;
dy=1;
b10;
s8:
beginnext_state=s0;
dr=1;
endcase;
always@(posedgeclk_key)begin
cs<
=next_state;
led[3:
0]=cs;
led输出到数码管8显示,显示所处的状态s;
在4种不同的display状态下,hc(时钟),mc(分钟),ah(闹钟时钟),am(闹钟分钟),sm(定时器分钟),ss(定时器秒钟),dy(日历月份),dr(日)有不同的对应值。
月计数模块:
moduledata12(CLK,RST,EN,DOUT,hsend);
output[3:
0]hsend;
assignhsend[3:
0]=A;
always@(*)
begin
if(A<
=9)
beginDOUT[3:
DOUT[7:
4]=0;
elseif(A==10)
0]=0;
4]=1;
elseif(A==11)
0]=1;
elseif(A==12)
0]=2;
always@(posedgeCLKornegedgeRST)begin
RST)A=1;
=11)A=A+1;
elseA=1;
当EN和RST信号均为高电平时,月计数器正常工作,从1计数到12(每一个CLK上升沿到来时计数加一),并以此方式不断循环。
电路设计草图
顶层电路原理图设计
key1选择模式,key2产生计数脉冲,CLK为运行时钟,CLK2为蜂鸣器时钟。
如上图所示:
先系统复位一次使其工作在状态s0(时钟正常计数模式),此时按下key2将不产生任何影响,并且在Press(按键8控制)为高电平情况下,speaker工作,只要置Press为低电平,speaker立即停止蜂鸣。
按下key1,在CLK上升沿到来时,系统进入s1状态(设置时钟hc)在仿真中,我设置产生两次key2计数脉冲,即设置时钟为2点钟;
再按下key1,在CLK上升沿到来时,系统进入s2状态(设置分钟mc),我设置产生两次计数脉冲(key2),此时完成了时间的手动设置(2:
02)。
第三次按下
key1,在CLK上升沿到来时,系统进入s3状态(设置闹钟时钟ah),原理同上,设为2点钟,同理将闹钟分钟am设为3,即闹钟时间为2:
03。
完成上述设置后,连续按下5次key1使系统进入s0状态(由于一开始预留了定时器及日历功能,故状态s5和s6是设置定时器,s7和s8是设置日历,但上述两个附加功能最后一直没能测试成功,所以进行数字钟波形仿真时跳过了这几个状态)。
系统进入
s0状态后,数字钟正常工作(在每个CLK时钟上升沿到来时计数加一)。
我们设置闹钟时间为
2:
03,当数字钟到了这一时刻,speaker开始工作,置Press为低电平即可关掉蜂鸣器。
闹钟将持续一分钟。
注:
此表格必须附在《实验报告》内一并交给任课老师。
指导教师对学生情况记录:
《综合设计性实验》实验报告
实验名称:
数字钟
摘要:
数字时钟是一种用数字电路技术实现时、分、秒计时的装置。
本设计采用VHDL语言及原理图方式设计出的数字时钟具有手动校时,闹钟等功能。
通过把整个设计分为多个模块依次来实现,减少了众多重复性步骤,合理化了设计过程,使得设计更加省时、快捷,提高了设计效率。
二实验要求:
三实验仪器:
1、安装了QuartusII软件的计算机一台;
2、GW48实验箱一套。
四实验步骤:
1、根据题目要求,参考GW48使用说明书,选取适当的模式来实现。
2、依据题目要求功能,设计顶层总体结构图。
3、使用VerilogHDL语言来实现顶层结构中各个模块的功能,并创建顶层文件可调用的图形元件,如:
24、60进制计数器,数据选择器等模块。
4、创建顶层GDF文档,并将各模块连接。
5、根据题目要求,以及第一步所选模式,并查表,定义引脚。
6、编译并下载到目标芯片中。
7、利用实验箱验证所设计的数字钟功能。
五数据处理及实验结果表示:
1、引脚锁定:
2、时钟源的选择:
CLK:
1.00Hz,CLK2:
1024Hz
3、下载程序到目标机上进行硬件测试的结果:
系统复位
选择模式5;
数码管6和5显示时钟,数码管4和3显示分钟,数码管2和1显示秒钟;
数码管8显示此时工作的状态;
键1(key1)控制状态;
键2(key2)产生计数脉冲;
键3:
RST(复位);
键4:
EN(工作使能)。
六实验结果分析:
通过各模块以及整体电路的波形仿真测试(详见实验原始数据记录表)和最后的实物检验均符合设计要求。
在CLK(秒)时钟的作用下,电路正常走时,而且闹钟也能正常工作。
七实验心得:
经过两次的数字钟实验,不仅巩固了以前所学的知识,而且还学到了很多书本上不曾介绍过的内容,锻炼了自己的动手能力,为今后的实践打下坚实的基础!
通过本次课程设计,使我进一步加深对EDA以及QuartusII软件的基本操作的了解,使我对以应用软件的方法来设计硬件系统有了更加浓厚的兴趣。
此外,我还懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合,从实践中得出结论,才能真正提高自己的动手实践和独立思考的能力。
在设计过程中,我发现许多EDA的知识还没有充分的掌握,遇到困难也是在所难免的,同时也发现了自己的不足之处:
学习知识表面化,没有深入了解它们的原理,还不能脱离书本独立设计出各功能模块。
总的来说,这次设计的数字钟电路还是比较成功的。
尽管在设计中遇到了各种问题,但在老师的指导、同学的帮助和自己不断的思考,修改,测试下,将拦路石一一攻破,觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的。
最后,对给予我帮助的所有同学和指导老师再次表示忠心的感谢!
八参考文献:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 综合 设计 实验 数字
![提示](https://static.bdocx.com/images/bang_tan.gif)