EDA课程设计多功能数字钟设计

上传人:仙*** 文档编号:26847602 上传时间:2021-08-13 格式:DOC 页数:10 大小:139.53KB
返回 下载 相关 举报
EDA课程设计多功能数字钟设计_第1页
第1页 / 共10页
EDA课程设计多功能数字钟设计_第2页
第2页 / 共10页
EDA课程设计多功能数字钟设计_第3页
第3页 / 共10页
点击查看更多>>
资源描述
河南科技大学课 程 设 计 说 明 书课程名称 EDA课程设计 题 目 多功能数字钟设计 课程设计任务书课程设计名称 学生姓名 专业班级 设计题目 多功能数字钟设计 一、 课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。二、 设计内容、技术条件和要求l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。2、能利用实验系统上的按钮实现“校时”、“校分”功能;(1)按下“SA”键时,计时器迅速递增,并按24小时循环;(2)按下“SB”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;(3)按下“SC”键时,秒清零;抖动的,必须对其消抖处理。3、能利用扬声器做整点报时:(1)当计时到达5950”时开始报时,频率可为500Hz;计满23小时后回零;计满59分钟后回零。(2)到达5959”时为最后一声整点报时,整点报时的频率可定为lKHz。4定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。6、报时功能。报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。三、 时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。四、 主要参考文献(1)谭会生、瞿遂春,EDA技术综合应用实例与分析,西安电子科技大学出版社,2004(2)曹昕燕、周凤臣等,EDA技术实验与课程设计,清华大学出版社,2006指导教师签字: 2010年9月5日多功能数字钟设计五、 设计思路考虑到本次设计的多功能数字钟的结构比较复杂,故将其分为若干模块分层次设计,这样既方便仿真查错,又使得逻辑更加清晰。在各个模块都编写完成,并仿真确定功能无误后,再将其分别生成图形模块。最后通过顶层图像将各个模块连接成完整电路,下载并实现设计要求。整个电路可按功能分为四个模块,即计时模块,时间校对模块,报时模块和分频模块。六、 各模块设计原理1、计时模块()60进制计数器计时模块需要两个60进制计数器分别来充当秒计数器和分计数器。两者都是用来完成60进制计数的功能,但因为HZ时钟信号从秒计数器输入,可将两者分开设计。秒计数器cnt60_second:libraryieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt60_second isport(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 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(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; 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;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 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;else 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正常计时与校对时间的选择:二选1的多路选择器21MUX具体策略:按键输出接21MUX选择端,正常的计时间信号与校对所用的信号分别接21MUX两个输入。消除方法:D触发器,同步计数脉冲。3、报时模块此模块需要实现的功能是进行整点报时以及闹钟报警的控制。扬声器的工作原理是当对其输入不同频率信号时发出不同的声响。本次试验采用两种频率,500Hz和1000Hz。整点报时要求当达到59分50秒后连续响5声报警,每次响1秒最后1声为整点报时,使用1000Hz,其余4声使用500Hz。闹钟报警使用1000Hz。在构造体中使用IF语句的嵌套对系统运行状态进行实时分析,时、分、秒模块的输出作为本模块的输入,判断当前系统状态,若为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_logic; 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),利用计数器来进行一级或多级分频,生成所需要的各种频率信号。分频的程序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设计的兴趣,更掌握了基本的电路设计流程、方法以及技巧。具备了这些基本知识,为今后的自主学习奠定了更良好的基础。在编写程序的实践中,我得到了很多意外的收获,一些必须付诸实践才能发现的技巧,尤其是分频器的编写上,我采用了简单的方法即使多个功能顺利实现。当然,在设计中还是碰到了一些问题,比如“抖动”的消除,电子钟在下载的时候秒在50的时候会产生进位,在60的时候又产生进位,实体名、项目名等,还有在编写VHDL文件时,一些编写的错误,但这些问题都在我们的积极处理下迎刃而解,这些在实践中得来的处理问题的技巧是课堂上无法掌握的。最后感谢王老师的指导,以及一些同学的帮助,使得实验能够顺利完成!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!