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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数字电子钟.docx

1、数字电子钟目 录1引言 12 EDA技术介绍 23 VHDL介绍 34 QuartusII软件简介 44.1软件介绍 44.2界面介绍 54.2.1代码输入界面 54.2.2功能仿真界面 54.2.3波形仿真界面 65系统总体设计 75.1设计思路 75.2 系统设计总体框图 76 各模块详细设计 86.1计时模块 86.1.1 60进制计数器的设计 86.1.2 24进制计数器 106.2调时模块设计 116.3报时模块设计 136.4动态显示模块设计 146.5顶层模块设计 177硬件测试 188总结 19参考文献 201引言电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械

2、钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能

3、多、携带方便等优点,因此在许多电子设备中被广泛使用。随着电子设计自动化(EDA)的发展,电子系统的设计技术和设计工具发生了深刻的变化。利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。AHDL语言是目前主流的硬件描述语言之一,它具有很强的电路描述和建模能力,且有与具体硬件电路无关和与设计平台无关的特性,在语言易读性和层次化结构设计方面表现出强大的生命力和应用潜力。本设计是采用VHDL来实现的简易钟。它能显示时间和报时还能进行调表。且具体要求如下:(1)设计一个能进行时、分、秒计时数字钟。(2)能对时、分和秒进行手动调节以校准时间。(3)具有整点报时功能,通过选择此功能,能在整

4、点时间发出报时声音。(4)系统具有整体复位功能。(5)进阶设计:报时声响为四低一高,最后一响正好为整点。2 EDA技术介绍EDA(电子线路设计自动化)是以计算机为工作平台、以硬件描述语(AHDL)为设计语言、以可编程器件(CPLD/FPGA)为实验载体、以ASIC/SOC芯片为目标器件、进行必要的元件建模和系统仿真的电子产品自动化设计过程。EDA源于计算机辅助设计,计算机辅助制造、计算机辅助测试和计算机辅助工程。利用EDA工具,电子设计师从概念、算法、协议开始设计电子系统,从电路设计,性能分析直到PCB版图生成的全过程均可在计算机上自动完成。EDA代表了当今电子设计技术的最新发展方向,其基本特

5、征是设计人员以计算机为工具,按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,利用先进的开发工具自动完成逻辑编译、化简、分割、综合、优化、布局布线、仿真及特定目标芯片的适配编译和编程下载,这被称为数字逻辑电路的高层次设计方法。作为现代电子系统设计的主导技术,EDA具有几个明显特征。(1)用软件设计的方法来设计硬件硬件系统的转换是由有关的开发软件自动完成的,设计输入可以是原理图或AHDL语言,通过软件设计方式的测试,实现对特定功能硬件电路的设计,而硬件设计的修改工作也如同修改软件程序一样快捷方便,设计的整个过程几乎不涉及任何硬件,可操作性、产品互换性强。

6、(2)基于芯片的设计方法EDA设计方法又称为基于芯片的设计方法,集成化程度更高,可实现片上系统集成,进行更加复杂的电路芯片化设计和专用集成电路设计,使产品体积小、功耗低、可靠性高;可在系统编程或现场编程,使器件编程、重构、修改简单便利,可实现在线升级;可进行各种仿真,开发周期短,设计成本低,设计灵活性高。(3)自动化程度高EDA技术根据设计输入文件,将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成,自动生成目标系统,使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果,设计自动化程度高,减轻了设计人员的工作量,开发效率高。(4)自

7、动进行产品直面设计EDA技术根据设计输入文件(HDL或电路原理图),自动地进行逻辑编译、化简、综合、仿真、优化、布局、布线、适配以及下载编程以生成目标系统,即将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成。3 VHDL介绍VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。VHDL翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被

8、用来设计ASIC。主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL具有以下特点。(1)与其他的硬件描述语言相比,VHDL具有更强的

9、行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描

10、述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。4 QuartusII软件简介4.1软件介绍Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快、界

11、面统一、功能集中、易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Quartus II提供了完全集成且与电路结构无关的开

12、发包环境,具有数字逻辑设计的全部特性,包括:(1)可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;(2)芯片(电路)平面布局连线编辑;(3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;(4)功能强大的逻辑综合工具;(5)完备的电路功能仿真与时序逻辑仿真工具;(6)定时时序分析与关键路径延时分析;(7)可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;(8)支持软件源文件的添加和创建,并将它们链接起来生成编程文件;(9)使用组合编译方式可一次完成整体设计流程;(10

13、)自动定位编译错误;(11)高效的期间编程与验证工具;(12)可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;(13)能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。4.2界面介绍4.2.1代码输入界面代码输入界面如图4-1所示。图4-1 代码输入界面4.2.2功能仿真界面功能仿真界面如图4-2所示。图4-2 功能仿真界面4.2.3波形仿真界面波形仿真界面如图4-3、4-4所示。图4-3 波形赋值界面图4-4 波形仿真界面5系统总体设计5.1设计思路电子钟的时钟信号的分、秒都是60进制的计数信号,小时则为24进制的计数信号。由此,可以设置4个模块,

14、分别为秒模块、分模块和小时模块。另外,由于电子时钟还要有复位和校准功能,因此还要调时模块。而这些功能可以通过计数器的相关功能来实现,首先开关打开后,秒模块开始计时,每当计满一个周期后会向下一个分模块产生进位信号,同时向秒模块发出重置信号,分模块也开始计时。当分模块计满一个周期后,同样向小时模块产生进位信号并向本模块发出重置信号,以此来实现24小时的计时功能。在调时模块的设计方面,可以将其穿插至各个计时模块中。例如,可以利用控制计时模块的时钟脉冲的有无来实现整个时钟的暂停功能;而复位功能的设计,可以用控制信号控制各个模块的重置功能即可实现。因此,本设计包括以下几个模块:动态显示模块、计时模块、报

15、时模块、调时模块。5.2 系统设计总体框图系统设计框图如图5-1所示。图5-1 系统设计框图6各模块详细设计6.1计时模块6.1.1 60进制计数器的设计(1)设计原理如下。60进制计数器的设计思想是将输入进来的脉冲进行计数,每来一个上升沿记一次数,当计到60是清零并且进位端输出1,否则输出0。输出用两个四位二进制数来输出。(2)60 进制的VHDL 代码如下。library ieee;use ieee.std_logic_1164.all;entity miao is port(clk,rst:in std_logic; m1,m2:out std_logic_vector(3 downto

16、 0); cin:out std_logic);end miao;architecture bhv of miao isbeginprocess(clk,rst)variable temp1:integer range 0 to 10;variable temp2:integer range 0 to 6;beginif rst=1 then temp1:=0;temp2:=0;elsif clkevent and clk=1 thentemp1:=temp1+1;if temp1=10 thentemp1:=0;temp2:=temp2+1;if temp2=6 thentemp2:=0;c

17、in=1;else cinm1m1m1m1m1m1m1m1m1m1null; end case;case temp2 is when 0=m2m2m2m2m2m2null; end case; end process; end bhv; 当来60个上升沿的时候就会清零。(3)60进制计数器的原件例化如图6-1所示。图6-1 60进制计数器原件例化6.1.2 24进制计数器(1)设计原理如下。24进制计数器的设计思想是将输入进来的脉冲进行计数,每来一个上升沿记一次数,当计到24是清零。(2)24 进制的VHDL 代码如下。library ieee;use ieee.std_logic_1164.

18、all;entity shi is port(clk,rst:in std_logic; h1,h2:out std_logic_vector(3 downto 0);end shi;architecture bhv of shi isbeginprocess(clk,rst)variable temp1:integer range 0 to 10;variable temp2:integer range 0 to 2;beginif rst=1 then temp1:=0;temp2:=0;elsif clkevent and clk=1 thentemp1:=temp1+1;if temp

19、1=10 thentemp1:=0;temp2:=temp2+1;elsif temp2=2 and temp1=4 thentemp2:=0;temp1:=0;end if;end if;case temp1 is when 0=h1h1h1h1h1h1h1h1h1h1null; end case;case temp2 is when 0=h2h2h2null; end case; end process; end bhv; 时钟信号clk每出现一个上升沿,低位就加1,如果低位加到10低位清零高位加1,如果低位为4并且高位为2则低位高位全部清零。(3)24进制计数器的原件例化如图6-2所示。

20、图6-2 24进制计数器的原件例化6.2调时模块设计(1)调时模块的设计原理如下。调时模块只需要调节时分秒这三个量,因此调时程序就是一个三选一的程序。(2)调时程序的VHDL代码。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tiaoshi isport(k1,k2:in std_logic; c1,c2,c3:in std_logic; out1,out2,out3:out std_logic);end tiaoshi;architecture bhv of tiaoshi is

21、beginprocess(k1)variable moshi :integer range 0 to 4;beginif k1=1 then moshi:=moshi+1; if moshi=4 then moshi:=0; end if; end if; case moshi is when 0=out1=c1;out2=c2;out3out1=k2;out2=1;out3out1=1;out2=k2;out3out1=1;out2=1;out3null;end case;end process;end bhv;当k1不按的时候ou1=c1 out2=c2 out3=c3 当k2按一下时 o

22、ut1=k2 k2 按2下时out2=k2 k1按3下时 out3=c3;(3)调时程序的原件例化如图6-3所示。图6-3 调时程序的原件例化6.3报时模块设计(1)报时模块程序设计原理如下。蜂鸣器的发声为输入波形不一样,其发声的高低也不一样。通过这个控制当为整点的时候发高音,整点之前3秒发低音,其他时间不发声音。(2)报时模块的VHDL代码。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity baoshi isport(clk:

23、in std_logic;-高频率的脉冲信号 m1,m2,f1,f2,h1,h2:in std_logic_vector(3 downto 0); alarm:out std_logic);end baoshi;architecture bhv of baoshi issignal a:std_logic;beginprocess(clk)variable cnt:integer range 0 to 10000; variable c:std_logic;beginif clkevent and clk=1 thenif cnt10000 thencnt:=cnt+1;else cnt:=0

24、;c:=not c;end if;end if;a=c;end process;process(f1,f2,m1,m2)beginif f1=0000 and f2=0000 and m1=0000 and m2=0000 thenalarm=1;elsif f1=1001 and f2=0101 and m1=0110 and m2=0101 thenalarm=a;elsif f1=1001 and f2=0101 and m1=0111 and m2=0101 thenalarm=a;elsif f1=1001 and f2=0101 and m1=1000 and m2=0101 th

25、enalarm=a;elsif f1=1001 and f2=0101 and m1=1001 and m2=0101 thenalarm=a;elsealarm=0;end if;end process;end bhv;(3)报时模块的原件例化如图6-4所示。图6-4 报时模块的原件例化6.4动态显示模块设计(1)动态显示的原理如下。动态显示的原理为运用了人眼的视觉停留效果。扫描的速度足够快人眼根本就分辨不出来了,其实数码管是一个一个显示的。 (2)动态显示的VHDL代码。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_

26、arith.all;use ieee.std_logic_unsigned.all;entity xianshi1 isport (c1,c2,c3: in std_logic_vector(3 downto 0); Clk : in std_logic; rst : in std_logic; led_out1: out std_logic_vector(7 downto 0); led_bit1: out std_logic_vector(3 downto 0); end xianshi1 ;architecture bhv of xianshi1 issignal dongtai : std_logic_vector(5 downto 0 );signal data :std_logic_vector(3 downto 0);signal m_bit : std_logic_vector(3 downto 0);beginprocess(clk,rst) beginif(rst=1)then dongtai=000000;elsif(clkevent and clk=1)thendongtai m_bit m_bit m_bit m_bit m_bit data data data data data led_out1 = 11111100

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

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