1 / 16
文档名称:

EDA数字时钟VerilogHDL.doc

格式:doc   大小:6,168KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

EDA数字时钟VerilogHDL.doc

上传人:非学无以广才 2020/3/2 文件大小:6.02 MB

下载得到文件列表

EDA数字时钟VerilogHDL.doc

文档介绍

文档介绍:目录一、实验任务 2实验目的 2实验要求 2二、设计思路 2硬件部分 2软件部分 3三、完成情况 6四、总结与收获 7具体分工 7五、完整程序 8一、实验任务实验目的深入了解基于EDA工具的复杂时序逻辑电路的设计。理解并熟练利用EDA工具进行综合设计。熟练掌握芯片烧录的流程及步骤。掌握VerilogHDL语言的语法规范及时序电路描述方法。掌握多个数码管动态扫描与键盘扫描的显示原理及设计方法。实验要求设计一个带闹钟功能的24小时数字钟,它包括以下几个组成部分:①显示屏,由4个七段数码管组成,用于显示目前时间(时:分)或设置的闹钟时间;②数字键‘0’~‘9’,用于输入新的时间或新的闹钟时间;③TIME(时间)键,用于确定新的时间设置;④ALARM(闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间;⑤扬声器,在目前时钟时间与闹钟时间相同时,发出蜂鸣声。基本要求(1)计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示目前时间。(2)闹钟功能:如果目前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。(3)设置新的计时器时间:用户用数字键‘0’~‘9’输入新的时间,然后按"TIME"键确认。发挥部分(1)设置新的闹钟时间:用户用数字键“0”~“9”输入新的时间,然后按“ALARM”键确认。(2)显示所设置的闹钟时间:在正常计时显示状态下,用户直接按下“ALARM”键,则已设置的闹钟时间将显示在显示屏上。二、设计思路硬件部分本次数字时钟的设计主要在NC-EDA-2000C实验箱上完成,应用的芯片为Altara公司的EP1K10TC100—3芯片。该芯片具有低内核电压、低功耗的特点。芯片内门电路高达1万门,内部使用RAM作电路结构,速度高达几百MHZ,其输出可用管脚已全部开放,位于芯片的四周,用户可以根据自己的要求和芯片本身的功能自己任意定义管脚。同时为了体现实验箱的可扩展性,在芯片的两边各有一个34脚的IDE插口,可以通过数据排线与其他应用模块相连接。除了主芯片外,主要包括三大部分:八个数码管组成的显示部分、4×4键盘构成的按键输入部分。以及其他输入或输出部分,如:"TIME"键、“ALARM”键、时钟信号、蜂鸣器等。8位7段数码管:采用2个进口共阴高红7段数码管组成,其连接管脚位选信号在数码管的左边由连接孔SEL0、SEL1、SEL2与其他模块连接。数码管显示的设计示意图如下:八位数码管显示设计示意图4×4键盘:4×4键盘主要是通过编程实现0~F的输入,也可以作为一个控制键。在其上方的连接孔R1、R2、R3、R4控制横向4位;C1、C2、C3、C4纵向4位。键盘输入设计示意图如下:4×4键盘输入设计示意图软件部分软件主要应用软件quartus,使用VerilogHDL语言来编写程序。在老师所给的keyscan的基础上加入计时部分、设置部分(时间的设置和闹钟的设置)以及闹铃部分。计时部分always@(posedgeclkl)//计时过程beginhour<=Hour;minute<=Minute; if(reset)beginhour<=0;minute<=0;second<=0;end else if(second==59) if(minute==59) if(hour==23)beginsecond<=0;minute<=0;hour<=0;end elsebeginsecond<=0;minute<=0;hour<=hour+1;end elsebeginsecond<=0;minute<=minute+1;end elsesecond<=second+1;end其中,clkl为1Hz的时钟信号,当每遇到一个时钟信号的上升沿时,秒钟就加1秒;当加到59时,分钟就加1,秒钟自动回到0重新计时;当分钟加到59时,时钟就加1,然后分钟回到0;当计时到23:59:59时,则回到00:00:00再进入计时。reset为清零信号,高电平有效。设置部分always@(posedgeclkh) beginif(w==1)//设置时间 beginHour=num1*10+num2;Minute=num3*10+num4;end elseif(p==1)//设置闹钟 beginAhour=num1*10+num2;Aminute=num3*10+num4;endend将按下的键值存在num1、num2、num3、num4中,再通过w和p即所谓的TIME(时间)键与ALARM(闹钟)键将输入的数值赋给初始时间或闹钟时间。闹铃部分always@(posedgeclkh)//闹钟响beginif((hour==Ahour)&&(minute==Aminute))ds=1;elseds=0;end当设置的闹钟时间(时:分)与目前的