《EDA课程设计报告(共20页).doc》由会员分享,可在线阅读,更多相关《EDA课程设计报告(共20页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 课 程 设 计课程名称 EDA技术 课题名称 电子时钟的设计 专 业 电子技术 班 级 学 号 姓 名 指导教师 陈意军 2012 年 6 月 23 日 湖南工程学院课程设计任务书 课程名称:eda技术 题 目:多功能电子钟的设计 专业班级:电子科学与技术 学生姓名: 指导老师:陈 意 军 审 批:任务书下达期 2012年 6 月10 日设计完成日期 2012年6 月 23 日 设计内容与设计要求一 设计内容:1 设计并调试键盘扫描与数码管显示电路;2 键盘为3*4,数码管为7段8位;3 以数字形式显示键盘12个输入键的识别;4 外设置控制开关和防抖动电路;5 功能
2、扩展(自选);完成加减运算或某外部硬件对象的控制 二 设计要求:1.设计思路清晰,整体设计给出框图,提供顶层电路图;2.应用vhdl或verilog完成各次级模块设计,给出具体设计程序;3.完成设计仿真和程序下载; 4.写出设计报告 主要设计条件1 提供EDA实验室;2 提供EL实验箱和CPLD芯片3 提供ALTERA公司的quartus设计软件; 说明书格式1 课程设计封面;2 任务书;3 说明书目录;4 设计总体思路;5 单元电路设计程序;6 设计仿真;7 编程下载;8 总结与体会;9 附录;10 参考文献 进 度 安 排 月 日 日 课题电路设计。 月 日日 总体电路设计和子模块设计 月
3、 日 日 软件仿真和联线。 月 日 日 电路调试 月 日 写设计报告,打印相关图纸, 月 日 答辩; 参 考 文 献目录一 引言.1二 设计目的及总体方框图.1三 电子时钟功能.1四 电子时钟设计.24.1设计思路.24.2电子时钟各个模块的设计.24.2.1秒计时器的设计.24.2.2分计时器的设计.44.2.3时计时器的设计.54.2.4 7段译码器的设计.84.2.5 整点报时器的设计.9五 电子时钟顶层电路图.11六 系统仿真波形.11七 硬件测试及引脚的锁定.12八 设计心得与体会.13一 引言EDA技术在电子设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数
4、字时钟,它的计时周期为24小时,显示的最大时间为23时59分59秒,另外还具有校时功能和整点报时功能。总的程序由5个模块组成,分别为秒计时器、分计时器、时计时器、7段显示译码器和整点报时器。二 设计目的及总体方框图此次设计的主要目的是学会使用quartus软件,掌握用VHDL语言设计编写源程序,并要求下载到实验箱实现所实现电子时钟的各项功能。通过这次设计,让我们加深对理论知识的理解,培养理论联系实际的能力,提高分析问题和解决问题的能力总体方框图三 电子时钟功能(1)计时功能:这是电子时钟的基本功能,每隔一秒钟计时一次,并在显示屏上显示当时时间。(2)校时功能:能设置实时时间作为数字钟的当前时间
5、,具有小时、分钟、秒钟的校准时间功能。(3)整点报时功能:每逢整点,整点报时器自动报时。四 电子时钟设计4.1 设计思路该数字钟可以实现3个功能:计时功能、整点报时功能和重置时间功能,因此有3个子模块:计时、报时、重置时间。其中计时模块由3部分构成:秒计时器、分计时器和时计时器。秒计时器和分计时器都是由60进制的计数器构成的,具有清0、置数和计数功能。当清0信号为低电平时,计时器清0;当置数信号为高电平时,计时器置数;clk为脉冲信号,ci为输入信号。co为计时器的进位信号,作为下一级的输入信号。时计时器是由一个24进制的计数器构成的,具有清0、置数和计数功能。当清0信号为低电平时,计时器清0
6、;当置数信号为高电平时,计时器置数;clk为脉冲信号,ci为输入信号。7段数码显示模块的功能是在显示屏上显示当时时间。1对应的显示代码为,2对应的显示代码为,3对应的显示代码为,4对应的显示代码为,5对应的显示代码为,6对应的显示代码为,7对应的显示代码为,8对应的显示代码为,9对应的显示代码为,0对应的显示代码为。报时模块的功能是当整点时,报时器输出高电平,并且持续1分钟。4.2 电子时钟各模块的设计4.2.1 秒计时器的设计(1)秒计时器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;e
7、ntity second isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto 0); co:out std_logic; qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end second;architecture behave of second isbegin co=1when(qh=0101and ql=1001and ci=1)else0; process(clk,nreset) beg
8、in if(nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(ql=9)then ql=0000; if(qh=5)then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; end if; end if; end process;end behave;(2)秒计时器仿真波形在秒计时器的(clk)输入一个周期为(2us)的时钟信
9、号;清0端(nreset)前面一小段为低电平,后面均为高电平;置数端(load)中间一段为高电平,其余均为低电平;将(ci)端置高电平,秒重置端(d)置数值为56秒,进行仿真,产生如下波形:图1 秒计时器仿真波形图由上述波形可以清楚的看到:当清0信号(reset)无效时,秒计时器置数,从50秒开始计数,到59秒时回到0,并且从ensec输出一个高电平。(3)秒计时器原理图图2 秒计时器原理图4.2.2 分计时器的设计(1)分计时器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity
10、minute isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto 0); co:out std_logic; qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end minute;architecture behave of minute isbegin co=1when(qh=0101and ql=1001and ci=1)else0; process(clk,nreset) begin if(
11、nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(ql=9)then ql=0000; if(qh=5)then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; end if; end if; end process;end behave;(2)分计时器仿真波形在分计时器的(clk)输入一个周期为(2us)的时钟信号;清0端(
12、nreset)前面一小段为低电平,后面均为高电平;置数端(load)中间一段为高电平,其余均为低电平;将(ci)端置高电平,分重置端(d)置数值为56分,进行仿真,产生如下波形:图3 分计时器仿真波形图(3)分计时器原理图图4 分计时器原理图4.2.3 时计时器的设计(1)时计时器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hours isport(clk,ci,nreset,load:in std_logic; d:in std_logic_vector(7 downto
13、 0); qh:buffer std_logic_vector(3 downto 0); ql:buffer std_logic_vector(3 downto 0);end hours;architecture behave of hours isbegin process(clk,nreset) begin if(nreset=0)then qh=0000; ql=0000; elsif(clkevent and clk=1)then if(load=1)then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1)then if(qh=0010a
14、nd ql=0011)then qh=0000; ql=0000; elsif(ql=9)then ql=0000; if(qh=2)then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; end if; end if; end process;end behave;(2)时计时器仿真波形在时计时器的(clk)输入一个周期为(2us)的时钟信号;清0端(nreset)前面一小段为低电平,后面均为高电平;置数端(load)中间一段为高电平,其余均为低电平;将(ci)端置高电平,时重置端(d)置数值为21时,进行仿真,产生如下波形:图5
15、时计时器仿真波形图(3)时计时器原理图图6 时计时器原理图4.2.4 7段显示译码器的设计(1)7段显示译码器源程序library ieee;use ieee.std_logic_1164.all;entity decl7 is port(d:in std_logic_vector(3 downto 0); x:out std_logic_vector(6 downto 0);end decl7;architecture a of decl7 isbegin with d select x=when0000, when0001, when0010, when0011, when0100, wh
16、en0101, when0110, when0111, when1000, when1001, when others;end a;(2)7段显示译码器仿真波形设置d的值,使其分别为1、2、39,保存波形,进行仿真,其仿真波形如下:图7 7段显示译码器仿真波形图(3)7段显示译码器原理图图8 7段显示译码器原理图4.2.5 整点报时器的设计(1)整点报时器源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alarm is
17、port(nreset:in std_logic; minh:in std_logic_vector(3 downto 0); minl:in std_logic_vector(3 downto 0); alarm:out std_logic);end;architecture behave of alarm isbeginalarm=1 when (minh=0000 and minl=0000 and nreset=1)else0;end behave;(2)整点报时器仿真波形清0端(reset)前面一小段为低电平,后面均为高电平;设置min的值,保存波形图,进行仿真,产生如下波形:图9
18、整点报时器仿真波形图(3)整点报时器原理图图10 整点报时器原理图五 电子时钟顶层电路图图11 电子时钟顶层电路图六 系统仿真波形图12 系统仿真波形图七 硬件测试及引脚锁定将所设计的原理图进行引脚锁定,锁定后下载到实验箱检测。引脚锁定时采用的是模式0,将原理图上各输入输出信号分别锁定在对应的引脚。其中清零、调时信号管脚分别与按键开关相连,时钟信号clk管脚与1hz时钟相连,扬声器SPEAK管脚与扬声器驱动接口SPEAKER相连,7段译码显示管的6个管脚分别与6个LED灯相连。图13 引脚锁定图八 设计心得与体会在这次设计中我收获了很多,通过这次设计,进一步加深了对EDA的了解,让我更加熟悉使
19、用quartus软件,更好的掌握了VHDL语言,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。在刚开始编写程序时,总是会出现这样或那样的错误,在细心的检查下,终于把一个个错误和警告给解决了,这样程序编译也就通过了。在下载到实验箱上时,也遇到了整个设计中最大的困难,因为平时几乎没有过把程序下载到试验箱并检验成功,甚至连引脚锁定都不知道,该用模式几都弄不清楚,所有引脚锁定及下载到实验箱的问题都只能靠自己解决,只好认真的查阅相关资料,不懂的就向同学请教,在经过很多次的调试后,终于在自己的努力下,把程序下载到了实验箱,并且所有的功能都能实现,可以说是做得很成功。总的来
20、说,这次设计的数字钟还是比较成功的,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。参考文献1阎石 主编,数字电子技术基础(第五版),高等教育出版社,20062朱正伟主编,EDA技术及应用,清华大学出版社,20053郭照南主编电子技术与EDA技术课程设计,中南大学出版社,20104张亦华等主编,数字逻辑设计实验技术与EDA工具,北京邮电大学出版社,20035谭会生等主编,西安电子科技大学出版社,20016黄智伟等主编,电子工业出版社,2004专心-专注-专业