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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

EDA数字时钟的设计资料Word格式文档下载.docx

1、近年来,集成电路和计算机应用得到了高速发展,现代电子设计技术已迈入一个崭新的阶段,具体表现在:(1)电子器件及其技术的发展将更多地趋向于为EDA服务;(2)硬件电路与软件设计过程已高度渗透;(3)电子设计技术将归结为更加标准、规范的EDA工具和硬件描述语言VHDL的运用;(4)数字系统的芯片化实现手段已成主流。因此利用计算机和大规模复杂可编程逻辑器件进行现代电子系统设计已成为电子工程类技术人员必不可少的基本技能之一。1.1课题的背景、目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,加深对硬件电路结构的理解。通过学习的VHDL语言结合电子电路的设计知识理论联系实际

2、,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用EDA技术的基本理论和方法,理论联系实际,提高IC设计能力,提高分析、解决EDA技术实际问题的独立工作能力。通过课程设计深入理解EDA技术和VHDL语言自顶向下设计的原理,达到课程设计的目标。1.2 设计的内容利用VHDL设计数字钟显示电路的各个模块,并使用EDA工具对各模块进行仿真验证。数字钟显示电路的设计分为下面几个模块:秒计数模块、分计数模块、小时计数模块.。完成以后把各个模块整合后,显示相应的输出状态。2 EDA、VHDL简介2.1 EDA技术 EDA是电子设计自动化(Electroni

3、c Design Automation)缩写,EDA是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件

4、结构用一定的方式联系起来。2.2 硬件描述语言VHDL VHDL的简介 VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高

5、的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL语言的特点1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。2.VHDL元件的设计与工艺u无关,与工艺独立,方便工艺转换。3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。4.

6、可以进行从系统级到逻辑级的描述,即混合描述。5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。 VHDL的设计流程1.设计规范的定义明确这个系统有哪些设计要求,和你要想到达的目标。2.采用VHDL进行设计描述这部分包括设计规划和程序的编写。设计规划主要包括设计方式的选择及是否进行模块划分。设计方式一般包括直接设计,自顶向下和自底向下设计,这个和其他软件语言差不多。最重要还是模块划分。3.VHDL程序仿真4.综合、优化和布局布线综合指的是将设计描述转化成底层电路的表示形式,其结果是一个网表或者是一组逻辑方程;优化,这个主要是为了提高程序的执行效率及减少资源的利用;布局布

7、线,指的是将逻辑关系转化成电路连接的方式。5.仿真这个与VHDL程序仿真不同,这个不仅是对逻辑方面的验证,还要进行时序功能验证。6.器件编程3 数字钟设计3.1数字钟的工作原理 数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有校时功能和校分功能。因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

8、将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。采用6个数码管显示。工作原理图如图3.1所示。图3.1 数字钟的工作原理图3.2数字钟模块功能说明自顶向下分解图顶层模块图(1) Clk为1hz信号输入 (5)h6.0,,h16.0为小时数据输出(2) Reset为清零输入 (6)m6.0, m16.0为分钟数据输出(3) Setmin为手动调分 (7

9、)s6.0, s16.0为秒数据输出(4) Sethour为手动调时秒模块图(1) Clk为1hz信号输入(2) Reset为清零输入(3) Setmin为手动调分(4) cmin为分进位信号(5) dout6.0为数据输出 分模块图(1) Clk1为1hz信号输入(3) Sethour为手动调时(4) Clk为进位脉冲(5) dout6.0为数据输出(6) chour为时进位脉冲时模块图(1) Clk为进位脉冲(3) dout5.0为数据输出 译码器模块(1)BCD码输入(2)七段共阴码输出3.3晶体振荡器 晶体振荡电路是构成数字式时钟的核心,它保证了时钟走时准确及稳定。晶体振荡器它的作用是

10、产生时间标准信号。数字钟的精度主要取决于时间标准信号的频率及其稳定度。因此,一般采用石英晶体振荡器经过分频得到这一信号。晶体振荡器电路给数字钟提供一个频率稳定准确的4MHz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。如图3.2所示晶体振荡电路框图。 图3.2 晶体振荡电路3.4分频器分频器电路将4M的高频方波信号经4M次分频后得到1Hz的方波信号供秒计数器进行计数。分频器实际上也就是计数器。本次设计是运用VHDL语言设计的分频器进行分频,分频电路可提供1HZ 的方波为为后级电路输送一秒脉冲信号。4 系统仿真4.1秒计数器电路仿真图秒

11、表计数器电路仿真图如图4.1:将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲,仿真结果正确。 图4.1 秒计数器电路仿真图4.2分计数器电路仿真图分计数器电路仿真图如图4.3:Reset为清零控制端,sethour为时进位脉冲信号,仿真结果正确。图4.3 分计数器电路仿真图4.3 小时计数器电路仿真图时计数器电路仿真图如图4.2:Reset为清零控制端,仿真结果正确。图4.2 小时计数器电路仿真图4.4译码驱动电路仿真图译码驱动电路仿真图如图4.4:输入BCD码,输出为共阴极数码管显示码,仿真结果正确。结束语

12、通过两星期的努力,最后完成了我的设计任务数字钟的设计。通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性所在。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。课程设计中要求要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电

13、路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件(C语言)顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。致 谢感谢谭敏老师在本学期EDA技术实用教程课程上的指导和帮助! 参考文献1 黄继业 EDA技术实用教程 北京:科学出版社 20062 宋万杰 CPLD技术及其应用 西安:西安电子科技大学出版社 2000年3 王金明 数字系统设计与Verilog HDL 北京

14、:北京电子工业出版社 2002年附 件1.秒计数器模块的VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,setmin:STD_LOGIC; cmin:OUT STD_LOGIC; daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 DOW

15、NTO 0);SIGNAL enmin_1,enmin_2: -enmin_1为59秒时的进位信号 BEGIN -enmin_2由clk调制后的手动调分脉冲信号串 daout=count; enmin_2=(setmin and clk); -setmin为手动调分控制信号,高电平有效 cmin=(enmin_1 or enmin_2); -enmin为向分进位信号 PROCESS(clk,reset,setmin) BEGIN IF(reset=1)THEN count=0000000; -若reset为0,则异步清零 ELSIF(clk event and clk=)then -否则,若c

16、lk上升沿到 IF(count(3 downto 0)=1001)then -若个位计时恰好到即9 IF(count16#60#)then -又若count小于16#60#,即60H IF(count=1011001)then -又若已到59D enmin_1=count-则置进位为1及count复0 ELSE -未到59D count=count+7; -则加7,而+7=+1+6,即作加6校正 END IF; ELSE -若count不小于16#60#(即count等于或大于16#60#) -count复0 -END IF(count16#60#) ELSIF(count16#60#)the

17、n -若个位计数未到则转此句再判=count+1; -若count16#60#则count加1 0after 100 ns; -没有发生进位 ELSE -否则,若count不小于16#60# -则count复0 -END IF(count(3 DOWNTO 0)=) -END IF(reset=END PROCESS;END fun;2.分计数器模块的VHDL源程序:ENTITY minute IS PORT(clk,clk1, reset,sethour:IN STD_LOGIC; chour:END ENTITY minute ;ARCHITECTURE fun OF minute IS

18、SIGNAL count :STD_LOGIC_VECTOR (6 DOWNTO 0); SIGNAL enhour_1, enhour_2: STD_LOGIC; -enmin_1为59分时的进位信号 BEGIN -enmin_2由clk调制后的手动调时脉冲信号串 enhour_2=(sethour and clk1); -sethour为手动调时控制信号,高电平有效 chour= (enhour_1 or enhour_2); PROCESS(clk,reset,sethour) BEGIN ) THEN -若reset为0,则异步清零 ELSIF(clk)THEN -否则,若clk上升沿

19、到 IF(count (3 DOWNTO 0) =)THEN-若个位计时恰好到 IF(count 16#60#) THEN -又若count小于16#60#,即60 ) THEN-又若已到59D enhour_1 -则置进位为1 ELSE -若count未到59D,则加7,即作 -使前面的16#60#的个位转变为8421BCD的容量 ELSE-count复0(有此句,则对无效状态电路可自启动) ELSIF (count 16#60#) THEN16#60#则count加1 after 100 ns; -没有发生进位 -否则,若count不小于16#60# count复0 END process

20、;3.小时计数器模块的VHDL源程序:use IEEE.STD_LOGIC_1164.ALL;ENTITY hour IS PORT(clk,reset:out STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY hour;ARCHITECTURE fun OF hour ISSTD_LOGIC_VECTOR(5 DOWNTO 0); PROCESS(clk,reset)000000 -若reset=0,则异步清零 IF(count(3 DOWNTO 0)=)THEN -若个位计时恰好到16#23#)THEN -23进制 -若到23D则 else -复0 ELSIF (count LED7Snull; end case; end PROCESS ; END fun ;5 顶层模块原理图

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

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