欢迎来到天天文库
浏览记录
ID:38481474
大小:6.04 MB
页数:16页
时间:2019-06-13
《eda数字时钟veriloghdl》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目录一、实验任务2实验目的2实验要求2二、设计思路2硬件部分2软件部分3三、完成情况6四、总结与收获7具体分工7五、完整程序8一、实验任务实验目的1.深入了解基于EDA工具的复杂时序逻辑电路的设计。2.理解并熟练利用EDA工具进行综合设计。3.熟练掌握芯片烧录的流程及步骤。4.掌握VerilogHDL语言的语法规范及时序电路描述方法。5.掌握多个数码管动态扫描与键盘扫描的显示原理及设计方法。实验要求设计一个带闹钟功能的24小时数字钟,它包括以下几个组成部分:①显示屏,由4个七段数码管组成,用于显示当前时间(时:分)或设置的闹钟时间;②数字键‘0’~‘9’,用于输入新的时间或新的闹钟时间;③
2、TIME(时间)键,用于确定新的时间设置;④ALARM(闹钟)键,用于确定新的闹钟时间设置,或显示已设置的闹钟时间;⑤扬声器,在当前时钟时间与闹钟时间相同时,发出蜂鸣声。基本要求(1)计时功能:这是本计时器设计的基本功能,每隔一秒计时一次,并在显示屏上显示当前时间。(2)闹钟功能:如果当前时间与设置的闹钟时间相同,则扬声器发出蜂鸣声。(3)设置新的计时器时间:用户用数字键‘0’~‘9’输入新的时间,然后按"TIME"键确认。发挥部分(1)设置新的闹钟时间:用户用数字键“0”~“9”输入新的时间,然后按“ALARM”键确认。(2)显示所设置的闹钟时间:在正常计时显示状态下,用户直接按下“AL
3、ARM”键,则已设置的闹钟时间将显示在显示屏上。二、设计思路硬件部分本次数字时钟的设计主要在NC-EDA-2000C实验箱上完成,应用的芯片为Altara公司的EP1K10TC100—3芯片。该芯片具有低内核电压、低功耗的特点。芯片内门电路高达1万门,内部使用RAM作电路结构,速度高达几百MHZ,其输出可用管脚已全部开放,位于芯片的四周,用户可以根据自己的要求和芯片本身的功能自己任意定义管脚。同时为了体现实验箱的可扩展性,在芯片的两边各有一个34脚的IDE插口,可以通过数据排线与其它应用模块相连接。除了主芯片外,主要包括三大部分:八个数码管组成的显示部分、4×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的基础上加入计时
5、部分、设置部分(时间的设置和闹钟的设置)以及闹铃部分。a)计时部分always@(posedgeclkl)//计时过程beginhour<=Hour;minute<=Minute;if(reset)beginhour<=0;minute<=0;second<=0;endelseif(second==59)if(minute==59)if(hour==23)beginsecond<=0;minute<=0;hour<=0;endelsebeginsecond<=0;minute<=0;hour<=hour+1;endelsebeginsecond<=0;minute<=minute+1;en
6、delsesecond<=second+1;end其中,clkl为1Hz的时钟信号,当每遇到一个时钟信号的上升沿时,秒钟就加1秒;当加到59时,分钟就加1,秒钟自动回到0重新计时;当分钟加到59时,时钟就加1,然后分钟回到0;当计时到23:59:59时,则回到00:00:00再进入计时。reset为清零信号,高电平有效。a)设置部分always@(posedgeclkh)beginif(w==1)//设置时间beginHour=num1*10+num2;Minute=num3*10+num4;endelseif(p==1)//设置闹钟beginAhour=num1*10+num2;Amin
7、ute=num3*10+num4;endend将按下的键值存在num1、num2、num3、num4中,再通过w和p即所谓的TIME(时间)键与ALARM(闹钟)键将输入的数值赋给初始时间或闹钟时间。b)闹铃部分always@(posedgeclkh)//闹钟响beginif((hour==Ahour)&&(minute==Aminute))ds=1;elseds=0;end当设置的闹钟时间(时:分)与当前的时间(时:分
此文档下载收益归作者所有