1、级学生EDA课程设计 EDA课程设计报告书课题名称 多功能数字钟设计姓 名王兴俊学 号 院 系物理与电信工程系专 业电子信息工程指引教师周来秀讲师 6月13日 一、 设计任务及规定:设计任务:运用Quartus II软件设计一种多功能数字钟设计规定:所设计数字钟是基于现实基本上多功能数字钟,基本上能实现普通多功能数字钟功能,涉及翻页显示时间和日期,调节时间及日期等等,运用Quartus II强大编程功能以及完整仿真系统进行仿真设计,通过仿真设计校正达到设计规定 指引教师签名: 年 月 日 二、指引教师评语:指引教师签名: 年 月 日 三、成绩验收盖章 年 月 日 多功能数字钟设计王兴俊(湖南都
2、市学院物理与电信工程系电子信息工程专业,湖南益阳,41300)1设计目 EDA是电子设计自动化缩写,在20世纪如年代初从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程概念发展而来。老式意义上或者狭义上EDA技术是指可编程技术,是以计算机为工具,融合了应用电子技术、计算机技术、智能化技术最新成果而开发出电子EDA通用软件包,设计者在EDA软件平台上,用硬件描述语言VHDL完毕设计文献,然后由计算机自动地完毕逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目的芯片适配编译、逻辑映射和编程下载等工作。运用EDA技术进行电子系统设计,具备如下几种特性:用软件方式设计硬件
3、;用软件方式设计系统到硬件系统转换是由关于开发软件自动完毕;设计过程中可用关于软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一种芯片上,体积小、功耗低、可靠性高。因而,EDA技术是当代电子设计发展趋。运用EDA设计电子产品已经是势在必得了。2设计重要内容和规定 a.数字钟可以显示年、月、天、小时、分钟、秒。在数字钟正常工作时可以 对数字钟进行迅速校正,即拨动开关可对其进行校正,在数字钟正常工作 状况下,可以对其进行不断电复位,以使时、分、秒显示回零。 b.对数字钟采用层次化办法进行设计,规定设计层次清晰、合理,构成整个 设计功能模块既可采用原理图输入法实现,也可采用文本输入法实现
4、。 c.对设计电路进行功能仿真。 d.将仿真通过逻辑电路下载到EDA实验系统,对其功能进行验证。3 整体设计方案基本设计方案:多功能数字钟具备时间显示和日历显示功能,而时间模块和日历模块有诸多相似地方,如果再进行细分,则她们都着类似模块。因此采用模块设计将大大简化多功能数字钟程序设计。 图3.1数字钟整体设计方框图4 硬件电路设计4.1分频器模块设计 图4.1 分频器模块 由于实验箱上晶振为20MHz,对于秒表计时和进行数码管动态扫描来说,频率都太大了,因而要将20MHz进行分频解决,本次设计将提成1KHz和1Hz两个频率。4.2计数器模块设计 图4.2 计数器模块 在数字钟设计中,计数器模块
5、是最常用和最为通用,在本次设计中用到了模为24,60,99,12和31五个计数器。由于她们都是大同小异,因此这里只列出了模为24计数器(即小时计数器)4.3动态扫描模块设计 图 4.3 动态显示模块 由于本次课程设计有多组数据要显示,显示方式为数码管动态显示。比之于静态显示,动态显示有着不可代替长处:占用数据线少,功耗小等特点。4.4开关选取模块设计 图4.4开关选取模块 由于本次课程设计要实现两个功能:时间显示和日历显示,通过开关KEY来切换。4.5译码器模块设计 图4.5 译码器模块 要想将时间或日历在数码管上显示出来,译码器模块必不可少,本次课程设计使用事共阴数码管。5 软件设计 5.1
6、分频器模块设计源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FREQ IS PORT( CLK :IN STD_LOGIC; -时钟输入CLK1KHZ,CLK1HZ :BUFFER STD_LOGIC);END FREQ;ARCHITECTURE BEHAVE OF FREQ IS SIGNAL CLK1MHZ :STD_LOGIC; -中转量 SIGNAL Q:STD_LOGIC_VECTOR(4 DOWNTO 0)
7、;SIGNAL Q1:STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL Q2:STD_LOGIC_VECTOR(9 DOWNTO 0);SIGNAL DIR_FLAG :STD_LOGIC; -方向标志 BEGIN PROCESS(CLK) -把20MHZ频率变为1MHZBEGIN IF(CLKEVENT AND CLK=1)THEN IF(Q=10011)THEN Q=00000;CLK1MHZ=1;ELSE Q=Q+1;CLK1MHZ=0;END IF;END IF;END PROCESS;PROCESS(CLK1MHZ) IS -把1MHZ频率变为1KHZBEGIN
8、 IF(CLK1MHZEVENT AND CLK1MHZ=1)THEN IF(Q1=)THEN Q1=;CLK1KHZ=1;ELSE Q1=Q1+1;CLK1KHZ=0;END IF;END IF;END PROCESS;PROCESS(CLK1KHZ) IS -把1KHZ频率变为1HZBEGIN IF(CLK1KHZEVENT AND CLK1KHZ=1)THEN IF(Q2=)THEN Q2=;CLK1HZ=1;ELSE Q2=Q2+1;CLK1HZ=0;END IF;END IF;END PROCESS;END BEHAVE;5.2计数器模块设计程序 LIBRARY IEEE; USE
9、IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HOUR IS -实体,定义输入和输出PORT(CLK,EN:IN STD_LOGIC; -输入时钟/高电平有效使能信号CO :OUT STD_LOGIC; H1,H0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -时高位/低位END HOUR;ARCHITECTURE HOUR_ARC OF HOUR IS -构造体BEGINPROCESS(CLK)VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0)
10、; -记数BEGINIF CLKEVENT AND CLK=1 THEN -上升沿触发IF EN=1 THEN -同步“使能”为1IF CNT1=0010 AND CNT0=0011 THENCNT1:=0000; -高位/低位同步为0时CNT0:=0000;CO=1;ELSIF CNT01001 THEN -低位不大于9时,低位记数累加CNT0:=CNT0+1;CO =0;ELSECO =0;CNT0:=0000;CNT1:=CNT1+1; -高位记数累加END IF;END IF;END IF;H1=CNT1;H0=CNT0;END PROCESS;END HOUR_ARC;5.3动态扫描
11、模块设计程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SELTIME IS PORT( CLK:IN STD_LOGIC; SEC1,SEC0,MIN1,MIN0,H1,H0:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DAOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END SELTIME;AR
12、CHITECTURE FUN OF SELTIME IS SIGNAL COUNT:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN SEL=111) THEN COUNT=000; ELSE COUNTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUTDAOUT=SEC0; END CASE; END PROCESS;END FUN;5.4开关选取模块设计程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SWITCH IS -实体,定义输入
13、和输出 PORT(SECOND,DAY:IN STD_LOGIC_VECTOR(3 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);SELS,SELD:IN STD_LOGIC_VECTOR(2 DOWNTO 0);SELOUT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);KEY:IN STD_LOGIC);END SWITCH;ARCHITECTURE BEHAVE OF SWITCH IS -构造体BEGINPROCESS(KEY)BEGINIF (KEY =1)THEN DOUT= SECOND;SELOUT = SE
14、LS;ELSEDOUT= DAY;SELOUT QQQQQQQQQQQ”“”“”“”完毕节点选取,点击OK完毕节点添加。选取仿真时间:视电路实际规定拟定仿真时间长短。在当前主菜单“Edit”下拉菜单中选中“End Time”,弹出结束时间对话框,在提示窗“Time”中输入仿真结束时间,即可修改仿真时间。本次设计仿真时间设立为1ms,用同样办法设立网格大小,本次设计仿真设立为200ns。对关于初值进行设立,设立完毕后保存文献后进行波形仿真直到本实验电路仿真成果报告中无错误、无警告。最后仿真效果如图6.2所示,图6.1为电路原理图。 图6.1多功能数字钟电路原理图 图6.2数字钟仿真成果7 使用阐
15、明 本人设计数字钟电路重要由译码显示屏、“年”,“月”,“日”,“时”,“分“秒”计数器等构成,其中clk为晶振(频率为20M)输入端,clrsecond为秒清零开关,setmimute为分钟调节开关,sethour为小时调节开关,setday为日调节开关,setmonth为月调节开关,setyear为年调节开关,key为日历显示和时间显示切换开关。dout6.0为数码管段选输出端,selout2.0为数码位选输出端。8 设计总结对于本次多功能数字钟设计,我感触颇多。通过这次课程设计使我懂得了理论与实际相结合是很重要,只有理论知识是远远不够,我学到诸多诸多东西,同步不但可以巩固此前所学过知识,
16、并且学到了诸多在课本上所没有学到过知识。在实验中,通过查阅数字逻辑设计实验与EDA技术、VHDL程序实例等有关资料,不但对这种语言更加理解,也提高了自己实际动手能力和独立思考能力。在设计过程中遇到了诸多问题,同步在设计过程中发现了自己局限性之处,对所学过知识理解得不够深刻,掌握得不够牢固,对程序中浮现错误如何修改,如何生成元件还不是很熟为了这次课程设计,相称于把此前所学过知识重新温习了一遍。在这两个星期学习中,通过自己学习和与同窗讨论,学会了如何来设计一种电路和元件有了深刻理解,并巩固了对Quartus软件应用,也终于觉得平时所学知识有了实用价值,达到了理论与实际相结合目,不但学到了不少知识,并且锻炼了自己能力,使自己对后来路有了更加清晰结识,同步,对将来有了更多信心,也感谢我指引教师对我指引。参照文献1延明,张义华.数字逻辑设计实验M.北京:北京邮电大学出版社,:50-65.2康华光.电子技术基本M.北京:高等教诲出版社,:70-86.3潘松.EDA技术与VHDLM.北京:清华大学出版社,:20-33.4夏路易.基于EDA技术电子技术课程设计D.北京:北京航空航天大学,.5潘松,王国栋.VHDL实用教程M.成都:电子科技大学出版社,:34-40.6龙在云,黄星,武斌.EDA技术发展及应用J.河北建筑工程学院学报,21(01):4-6.