EDA课程设计多功能数字钟设计_第1页
EDA课程设计多功能数字钟设计_第2页
EDA课程设计多功能数字钟设计_第3页
EDA课程设计多功能数字钟设计_第4页
EDA课程设计多功能数字钟设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河南科技大学课 程 设 计 说 明 书课程名称 eda课程设计 题 目 多功能数字钟设计 课程设计任务书课程设计名称 学生姓名 专业班级 设计题目 多功能数字钟设计 一、 课程设计目的1、综合运用eda技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉eda技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。二、 设计内容、技术条件和要求l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、

2、60分钟的计数器显示。2、能利用实验系统上的按钮实现“校时”、“校分”功能;(1)按下“sa”键时,计时器迅速递增,并按24小时循环;(2)按下“sb”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;(3)按下“sc”键时,秒清零;抖动的,必须对其消抖处理。3、能利用扬声器做整点报时:(1)当计时到达5950”时开始报时,频率可为500hz;计满23小时后回零;计满59分钟后回零。(2)到达5959”时为最后一声整点报时,整点报时的频率可定为lkhz。4定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。6、报时功能。报时功能用功能仿真的仿真验证,可通过观察有关

3、波形确认电路设计是否正确。三、 时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。四、 主要参考文献(1)谭会生、瞿遂春,eda技术综合应用实例与分析,西安电子科技大学出版社,2004(2)曹昕燕、周凤臣等,eda技术实验与课程设计,清华大学出版社,2006指导教师签字: 2010年9月5日多功能数字钟设计五、 设计思路考虑到本次设计的多功能数字钟的结构比较复杂,故将其分为若干模块分层次设计,这样既方便仿真查错,又使得逻辑更加清晰。在各个模块都编写完成,并仿真

4、确定功能无误后,再将其分别生成图形模块。最后通过顶层图像将各个模块连接成完整电路,下载并实现设计要求。整个电路可按功能分为四个模块,即计时模块,时间校对模块,报时模块和分频模块。六、 各模块设计原理1、计时模块()60进制计数器计时模块需要两个60进制计数器分别来充当秒计数器和分计数器。两者都是用来完成60进制计数的功能,但因为hz时钟信号从秒计数器输入,可将两者分开设计。秒计数器cnt60_second:libraryieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_second isp

5、ort(clk,clr:in std_logic; s1,s0:out std_logic_vector(3 downto 0); co:out std_logic);end cnt60_second;architecture behav of cnt60_second isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clr=0 then cnt0:=0000;cnt1:=0000;elsif clkevent and clk=1 then if cnt1=0101 and cnt0=1000

6、 then co=1; cnt0:=1001;elsif cnt01001 then cnt0:=cnt0+1;else cnt0:=0000; if cnt10101 then cnt1:=cnt1+1;else cnt1:=0000; co=0;end if;end if;end if;s1=cnt1;s0=cnt0;end process;end behav;分计数器cnt60_minute:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_minute isport

7、(en,clk:in std_logic; min1,min0:out std_logic_vector(3 downto 0); co:out std_logic);end cnt60_minute;architecture behav of cnt60_minute isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clkevent and clk=1 thenif en=1 then if cnt1=0101 and cnt0=1000 then co=1; cnt0:=1001; els

8、if cnt01001 then cnt0:=cnt0+1;else cnt0:=0000; if cnt10101 then cnt1:=cnt1+1;else cnt1:=0000; co=0;end if;end if;end if;end if;min1=cnt1;min0=cnt0;end process;end behav;()24进制计数器时计数器cnt24_hour:libraryieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt24_hour isport(en,clk:in

9、std_logic; h1,h0:out std_logic_vector(3 downto 0);end cnt24_hour;architecture behav of cnt24_hour isbeginprocess(clk)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clkevent and clk=1 thenif en=1 then if cnt1=0010 and cnt0=0011 then cnt0:=0000; cnt1:=0000; elsif cnt01001 then cnt0:=cnt0+1;el

10、se cnt0:=0000; cnt1:=cnt1+1; end if;end if;end if;h1=cnt1;h0=cnt0;end process;end behav;2、时间校对模块实现校对时间时,要使计数器快速递增,按键校对时间时,将一个频率较高的计数脉冲信号作用于计数器,屏蔽正常计时的计数脉冲信号。按下校时键,时位迅速递增,满23清0,按下校分键,分位迅速递增,满59清0,但此时不产生进位,按清0键,秒清0。选用脉冲按键sa、sb、sc。60进制计数器60进制计数器24进制计数器1hzmuxmux消抖消抖校对信号校分校时分频校时脉冲 计数器2路选择器计时脉冲消抖sa正常计时与校对

11、时间的选择:二选1的多路选择器21mux具体策略:按键输出接21mux选择端,正常的计时间信号与校对所用的信号分别接21mux两个输入。消除方法:d触发器,同步计数脉冲。3、报时模块此模块需要实现的功能是进行整点报时以及闹钟报警的控制。扬声器的工作原理是当对其输入不同频率信号时发出不同的声响。本次试验采用两种频率,500hz和1000hz。整点报时要求当达到59分50秒后连续响5声报警,每次响1秒最后1声为整点报时,使用1000hz,其余4声使用500hz。闹钟报警使用1000hz。在构造体中使用if语句的嵌套对系统运行状态进行实时分析,时、分、秒模块的输出作为本模块的输入,判断当前系统状态,

12、若为59分时继续判断秒的,若为50秒时开始进行报时。闹钟报警应该是在最外层的if嵌套中,因为此种情况一旦发生必须优先考虑,只需将dff4的输出与现在系统的时间进行比较即可,两者相等时触发1分钟的闹铃电路。报时程序baoshi:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity baoshi isport(m1,m0:in std_logic_vector(3 downto 0); s1,s0:in std_logic_vector(3 downto 0); sig1k:out std_l

13、ogic; sig500:out std_logic);end baoshi;architecture one of baoshi is begin sig500=1when(m1=0101 and m0=1001 and s1=0101 and (s0=0000 or s0=0010 or s0=0100 or s0=0110 or s0=1000)else0; sig1k=1when(m1=0000 and m0=0000 and s1=0000 and s0=0000)else0;end one;4、分频模块通过一个标准的时钟脉冲产生一个基准频率(cp=1khz),利用计数器来进行一级或

14、多级分频,生成所需要的各种频率信号。分频的程序fenpin:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity fenpin isport(cp:in std_logic; clk:buffer std_logic_vector(9 downto 0); hz512,hz256,hz64,hz4,hz1:out std_logic);end fenpin;architecture one of fenpin is begin process(cp) begin if cpevent and cp=1then if clk=1111111111then clk=0000000000; else clk=clk+1; end if; end if; end process;hz512=clk(0);hz256=clk(1);hz64=clk(3);hz4=clk(7);hz1=clk(9);end one;七、 顶层框图八、 心得体会经过两周eda课程设计的学习,使我受益匪浅。这不仅增强了我对eda设计的兴趣,更掌握了基本的电路设计流程、方法以及技巧。具备了这些基本知识,为今后的自主学习奠定了更良好的基础。在编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论