ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:407.41KB ,
资源ID:3289838      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3289838.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于VHDL数字钟的设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于VHDL数字钟的设计.docx

1、基于VHDL数字钟的设计安徽工业经济职业技术学院毕业论文(设计)题 目:基于EDA数字钟的设计系 别:电子信息技术系专 业:电子信息工程学 号:201054444班级:51044学生姓名:王忠正指导教师:王俊 二一二年 四月 八日 【摘要】数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑和时序电路。因此,我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作

2、用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法.数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。这些方法都各有其特点。我们是使用VHDL来设计的,并且用仿真器对其进行仿真。【关键词】EDA MAXplus软件 数字电子钟 VHDL目录绪论.1第1章 设计要求说明.2 1.1 简述EDA极其必要性.41.1.1 简述EDA.41.1.2 应用EDA的必要性.4 1.2 设计要求.4第2章 方案论证.4第

3、3章 各模块设计.5 3.1 秒分计时器.5 3.2 时计时器.5 3.3 星期计时器.5 3.4 报时模块.5第4章 系统设计.5第5章 调试过程.5 5.1 秒计时器.5 5.2 分计时器. .5 5.3 时计时器.5 5.4 星期计时器.5 5.5 报时模块.5第6章 结论.5第7章 参考文献.5绪论随着计算机在国内的逐渐普及,计算机已经深入到每一个行业,计算机与每个工作领域紧密地联系在了一起。使用计算机可以大大提高工作效率。电子技术作为信息化社会的重要基石,已经成为20世纪下半叶乃至21世纪发展最迅速、最活跃、最具有渗透力的技术。实现信息化得网络及关键部件不管是计算机还是通讯电子设备,

4、它们的基础都是集成电路。集成电路技术发展至今,全世界数以万亿美元的设备和科研投入,已使电子技术形成非常强大的产业能力。电子技术水平发展如此迅速,在于它具有极大的市场应用需求。科学水平发展到今天,衡量许多电子产品技术含量高低在很大程度上取决于电子技术的引入水平。然而,孤立的发展电子技术是没有出路的,他必须同各种生产实践相结合,以社会需求为动力。随着计算机新技术的发展以及电子系统设计新需求的上升,技术竞争需要的时对新器件应用的需求,集成电路专业设计人员需要的是贯穿电子设计过程中的最小花销、最强的自动化设计手段。正是在这种强烈的技术要求推动下,产生了电子设计自动化EDA(Electronic Des

5、ign Automation)技术,EDA是新崛起的现代化电子设计手段。EDA技术的关键之一是EDA工具,EDA工具是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子设计通用工具软件。1 设计要求说明1.1 简述EDA极其必要性1.1.1 简述EDA电子产品随着技术的进步,更新换代速度可谓是日新月异。不同行业层出不穷的技术需求,是的对配套电子系统或部件的功能、可靠性、集成度、成本、设计周期的要求日益提高。随着时间的推移,科学研究与技术开发行为日益市场化,而袁飞纯粹的学术行为,这要求设计工作必须在较短的时间内出色完成,技术人员敢带工作压力越来越大。显然,采用

6、传统的电子设计手段完成复杂电子系统设计越来越力不从心了,传统的电子设计与现实手段受到极大的挑战。如果在激烈的技术产品竞争中仍然沿用老的办法,很有可能在激烈的中处于被动落后的境地。例如,当设计比较复杂的电子系统时,要等到做完完全硬件实验才开始设计印制电路板,这样,设计周期必然会相应拉长,即使设计出印制电路板来,也很难保证它的电器起来全部正确,各种元件参数合理以及完善的电磁兼容性能,如果需要设计实现的数字电路部分规模较大,仍习惯的利用中、小规模数字集成芯片实现,电路的集成度和可靠性在许多应用场合会受到很大的限制,甚至根本无法满足需求。作为电路主体的器件,特别是集成电路器件功能越来越强大,集成度越来

7、越高,传统设计方式已难以胜任。EDA技术是以计算机科学和微电子技术发展为先导,汇集了计算机图形学、拓扑逻辑学、微电子工艺与结构等多种学科的现先进技术,他是在计算机工作平台产生的电子系统设计应用技术。EDA技术随着计算机、集成电路和电子系统设计的发展,经历了计算机辅助设计CAD、计算机辅助工程设计CAE和电子设计自动化EDA3个阶段。EDA技术融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动化设计。EDA软件在电子行业的应用也越来越广泛,但和发达国家相比,我国的电子设计水平仍然存在着相当大的差距,随着经济全球化,中国已走入WTO,随着加入WTO,电子行业将会受到

8、较大的冲击。但我国许多从事电子设计工作的人员对EDA软件并不熟悉,因此需要提高电子设计在电脑方面应用的水平。1.1.2 应用EDA的必要性数字电路课程设计是数字设计型试验中的重要组成部分,它要求运用电子技术课程中有关知识和实验方法,完成一些综合性较强的设计课题。由于目前在数字电路实验教学中,大部分院校仍然用中小规模的通用集成电路来实现设计功能,当设计的数字电子钟系统比较复杂,需要多个集成芯片和大量连线时。就增加了设计电路板的难度和故障调式难度,延长了设计周期,降低了学生的学习兴趣;同时,常用中小规模集成芯片的大量重复使用也大大增加了设计成本。因此,在数字电路课程设计中引入EDA技术,再用当前国

9、际先进的设计方和理念,改革传统的课程设计方法,已经成为一种趋势。在学校电子技术实验的课程中,最让实验老师感到头痛的有两个问题:一是由于电路的连接、点走元件的损坏或仪表毛病,为了查找这些问题,使得一个试验在相对短暂的时间内难以完成;二是仪表坏了要修理,元件坏了要拆换,连接导线、电缆线损坏也要调换等。这些不仅大大增加了实验的开支,同时实验室的管理也非常困难。应用EDA虚拟的电子实验平台,让学生坐在计算机旁进行各种电子线路的仿真实验与在实验室用真实的一起、惊醒电子线路实验,具有同样的感受和更具有真实的实验效果。而且还不会损坏元件,同样达到了实验的目的。可见,用EDA软件惊醒仿真电子实验的却可以达到事

10、半功倍的效果。1.2 设计要求设计并实现具有一定功能的数字小系统(数字钟)要求:1、对所有设计的小系统能够正确分析;2、基于VHDL语言描述系统的功能;3、在maxplusII环境中编译通过;4、仿真通过并得到正确的波形;5、给出相应的设计报告。2 方案论证该数字钟可以实现3个功能:计时功能、整点报时功能和重置时间功能,因此有3个子模块:计时、报时(alarm1)、重置时间(s1、m1、h1、d1)。其中计时模块有4部分构成:秒计时器(second1)、分计时器(minute1)、时计时器(hour1)和星期计时器(day1)。秒计时器(second1)是由一个60进制的计数器构成的,具有清0

11、、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;set 为置数信号,当set为0时,秒计时器置数,置s1的值。clk为驱动秒计时器的时钟,sec为秒计时器的输出,ensec为秒计时器的进位信号,作为下一级的时钟输入信号。分计时器(minute1)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;set 为置数信号,当set为0时,分计时器置数,置m1的值。 clkm为驱动分计时器工作的时钟,与ensec相连接;min为分计时器的输出;enmin为分计时器的进位信号,作为下一级的时钟输入信号。时计时

12、器(hour1)是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;set 为置数信号,当set为0时,时计时器置数,置h1的值。 clkh为驱动时计时器工作的时钟,与enmin相连接;hour为时计时器的输出;enhour为时计时器的进位信号,作为下一级的时钟输入信号。星期计时器( day1)是由一个7进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,星期计时器清0;set 为置数信号,当set为0时,星期计时器置数,置d1的值。 clkd为驱动星期计时器工作的时钟,与enhour相连

13、接;day为星期计时器的输出。报时模块(alarm1)的功能是当整点(将min作为该模块的输入信号,min=00)时,alarm输出高电平,并且持续1分钟。数字钟的工作原理图如下所示:图1 数字钟工作原理3 各模块设计3.1 秒计时器(second1)Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity second1 isPort(clk,set,reset:in std_logic; S1:in std_logic_vector

14、(7 downto 0); 置数端(秒) Sec:buffer std_logic_vector(7 downto 0); 秒输出端 Ensec:out std_logic); 秒计时器的进位,用来驱动分计时器End;Architecture a of second1 is BeginProcess(clk,reset,set,s1) Begin If reset=0 then sec=00000000; 对秒计时器清0 Elsif set=0 then sec=s1; 对秒计时器置s1的数 Elsif clkevent and clk=1 then if sec=59 then sec=00

15、000000;ensec=1; 重复计数并产生进位 else sec=sec+1;ensec=0; 以驱动下一级 end if;end if;End process;End; 3.2 分计时器(minute1)(同上)3.3 时计时器(hour1)Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity hour1 isPort(clkh,set,reset:in std_logic; h1:in std_logic_vector(7

16、downto 0); 置数端(时) hour:buffer std_logic_vector(7 downto 0); 时输出端 Enhour:out std_logic); 时计时器的进位,用来驱动星期计时器End;Architecture a of hour1 is BeginProcess(clkh,reset,set,h1) Begin If reset=0 then hour=00000000; 对时计时器清0 Elsif set=0 then hour=h1; 对时计时器置h1的数 Elsif clkhevent and clkh=1 then if hour=23 then ho

17、ur=00000000;enhour=1;重复计数 else hour=hour+1;enhour=0; 并产生进位以驱动下一级 end if; end if;End process;End; 3.4 星期计时器(day1)Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity day1 isPort(clkd,set,reset:in std_logic;d1:in std_logic_vector(2 downto 0); 置数端

18、(星期)day:buffer std_logic_vector(2 downto 0); 星期输出端end;Architecture a of day1 isBeginProcess(clkd,reset,set,d1) Begin If reset=0 then day=000; 对星期计时器清0 Elsif set=0 then day=d1; 对星期计时器置d1的数 Elsif clkdevent and clkd=1 thenIf day=6 then day=000; 重复计数 Else day=day+1;End if; End if;End process;End;3.5 报时模

19、块(alarm1)Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity alarm1 isPort(reset:in std_logic; Min:in std_logic_vector(7 downto 0);Alarm:out std_logic); 输出的报时信号End;Architecture a of alarm1 isBegin Alarm=1 when min=00000000 and reset=1 else 当分为

20、0且清0 0; -信号无效时,输出高电平并持续至分不为0end;4 系统设计将上述5个程序作为底层文件,存放在同一个文件夹中,然后按下面的图将这几个文件连接起来,并用元件例化语句编写顶层文件的程序,如下:图2 元件连接顺序Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_arith.all;Use ieee.std_logic_unsigned.all;Entity topclock isPort(clk,reset,set:in std_logic;S1,m1,h1:in std_logic_vector(7 downto

21、 0);D1: in std_logic_vector(2 downto 0);Alarm:out std_logic;Sec,min,hour:buffer std_logic_vector(7 downto 0);Day:out std_logic_vector(2 downto 0);End;Architecture one of topclock isComponent second1 秒元件的例化Port(clk,reset,set: in std_logic; S1: in std_logic_vector(7 downto 0); Sec:buffer std_logic_vec

22、tor(7 downto 0); Ensec:out std_logic); End Component; Component minute1 分元件的例化Port(clkm,reset,set: in std_logic; m1: in std_logic_vector(7 downto 0); min:buffer std_logic_vector(7 downto 0); Enmin:out std_logic); End Component; Component hour1 时元件的例化Port(clkh,reset,set: in std_logic; h1: in std_logic_vector(7 downto 0); hour:buffer std_logic_vector(7

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1