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

下载本文档

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

文档简介

1、杜文划 912058200102南京理工大学2013 年09月EDA设计(二)课程设计报告姓 名 杜文划学 号 912058200102学院(系) 自动化学院专 业 自动化 标 题 多功能数字钟设计指导老师吴益飞南京理工大学2013 年 09 月目 录摘要及关键字····························

2、··································3一. 设计要求··············

3、3;················································3二. 总体方案设计

4、··················································

5、·········3 三.各子模块设计原理·······································

6、················ 41.分频部分································

7、3;·····························42.输入部分···················

8、83;··········································5 1.防抖模块······&

9、#183;·················································&

10、#183;···52.输入模块·············································

11、···············63.计时部分··································

12、;····························61.模60的计数器····················&

13、#183;··································62.模24的计数器·············

14、83;·········································73.校准模块·······&#

15、183;·················································&#

16、183;··74.计时模块··············································&

17、#183;·············84.显示部分···································

18、··························91.显示模块·······················

19、;····································9(1)6选1数据选择器············

20、;··································10(2)4-7译码器··············

21、······································105.闹钟部分··········

22、3;·················································

23、3;101.比较模块················································&#

24、183;··········112.选择器······································&

25、#183;······················116.报时部分··························

26、;···································13四. 硬件下载与测试·············

27、;············································151.硬件下载····

28、83;·················································

29、83;·······152.测试·········································

30、83;························153.功能扩展························&

31、#183;·····································16五.结论···········&

32、#183;·················································&

33、#183;····16参考文献············································&

34、#183;····················16 数字电子钟的设计摘要及关键字: 数字电子钟是生活中最常用的电子设备之一,其主要功能是能够显示时、分、秒实时信息,并能够方便地进行时、分、秒的初始值设置,以便时间校准。实现数字电子钟有很多方法,本课程是采用VHDL硬件语言的强大描述能力和EDA工具的结合在电子设计领域来设计一个具有多功能的数字电子钟。关键字: 数字电子钟VHDL硬件语言EDA工

35、具一 设计要求:1. 设计一个电子钟能够显示 时,分,秒;24小时循环显示。2. 电子钟有校时,校分,清零,保持,整点报时和闹钟的功能,具体如下:(1) 数字钟最大计时显示23点59分59秒 。(2) 在数字钟正常工作时可以对数字钟进行快速校时,校分,即拨动开关K7可以对时进行校正,拨动开关K6可以对分进行校正。(3) 在数字中正常工作情况下可以对其进行不断地复位,即拨动开关K5可以是时,分,秒显示回零。(4) 在数字钟正常工作时拨动开关K4可以使数字钟保持原有显示,停止计时。(5) 整点报时是要求数字钟在每小时整点到来前进行鸣叫,鸣叫频率是在59:53, 59:55, 59:57 为1kHz

36、,59:59为2kHz。(6) 当开关K8等于0就可以看到正常计数时钟界面,有 小时:分钟:秒钟。 当k8等于1 是在输入定时闹钟界面,有小时:分钟(7) K1,k2:设定闹钟;(8) K3 :开闹钟,关或停止闹钟3. 要求所有开关具有去抖动功能。利用开发工具MAX+plus II 10.0并结合硬件描述语言VHDL,采用层次化的方法进行设计,要求设计层次清晰,合理;构成整个设计的功能可以采用原理图输入或文本输入法实现。4. 通过开发工具MAX+plus II 10.0对设计电路进行功能仿真。5. 将仿真通过的逻辑电路下载到EDA试验系统,对其功能进行验证。二 总体方案设计:从设计要求可以对其

37、进行层次化设计,将所要设计的多功能数字钟分层6个模块:(1) 计时模块: 包括两个模60的计数器(计秒与计分)和一个模24的计数器(计时)。(2) 清零,保持模块: 此模块功能是可以在计时模块直接嵌入即利用计数器的清零、保持 功能就可以实现。 (3) 校准模块: 其对时、分进行校正。(4) 显示模块: 将数字钟在数码管上显示。(5) 整点报时模块: 由两部分组成,一部分选择报时时间(59:53, 59:55, 59:57,59:59),一部分选择报时频率(1kHz,2kHz)。(6) 分频模块: 电子钟的激励源要求的是稳定1Hz,而试验台提供两个信号的时钟,所以要设计一个分频器将固有的时钟变成

38、所需要的。(7) 防抖动模块:因为设计中有使用到开关,而对机械开关而言出现抖动现象 会导致系统误差甚至不能正常工作。所以在设计中要求有去抖动电路。将数字钟的各功能模块级联,生成顶层电路,实现总体设计要求,设计框图如下图所示:计时模块显示模块报时,闹钟模块清零保持校时校分分频模块 三 各子模块设计原理:1. 分频部分:因为设计中要有很多不同的频率:1Hz的提供给计时模块;2Hz供给校准用;1kHz、2kHz供给蜂鸣器报时用;试验台可以选不同的频率,我选了1hz和16khz所以要对其进行分频其将16kHz分成2Hz、1kHz、2kHz。用VHDL就可以很方便的实现分频: 仿真波形如下: clk=1

39、6Khz2.输入部分:1.防抖模块:因为机械开关的抖动现象对系统产生误差,甚至使不能正常工作,所以要适当地在开关和电路之间加入一个去抖动模块以防止机械开关所引起的不良影响。采用锁存器就可以很方便地设计去抖动电路,如图下所示。因为设计中一共有4开关所以采用两片7474,每片包括两个D锁存器,7474输出端的QN是开关信号稳定状态。2.输入模块:3.计时部分: 是一个模60和模24的计数器,具有计时、校准,保持、清零的功能。采用VHDL硬件语言编写,程序代码如下:1. 模60的计数器其仿真波形图如下:封装图为:2.模24的计数器,VHDL的程序代码如下:仿真波形图如下:封装图为:3.校准模块:在正

40、常情况下,分的输入时钟clk信号是由秒的进位输出给的,而时的输入时钟clk信号由分进位输出信号给的。当要进行校准时可以直接将2Hz的时钟信号(从分频器直接分出来)送到分或时的输入时钟clk端上,这样就可以快速的进行对电子钟的分或时校准。因此采用VHDL语言实现,程序代码如下:(1) 校时:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY jiaozhun IS PORT ( a,b,key: IN BIT; y: OUT BIT

41、 );END ENTITY jiaozhun;ARCHITECTURE behav OF jiaozhun ISBEGIN PROCESS(a,b,key) BEGIN IF key='1' THEN y<=a; ELSE y<=b; END IF; END PROCESS;END behav;其封装图为:4.计时模块如下: 4.显示部分:包过显示模块和选择显示功能1.显示模块:采用动态显示方法,其动态扫描频率为1MHz。显示模块包括一个6选1数据选择器(其从计数模块输出的6个输出选1个送出显示)和一个译码器(其对6选1数据选择器的输出信号进行译码送至数码管上显示)

42、。用VHDL硬件语言实现即程序代码如下:(1)6选1数据选择器: 仿真波形: 其封装图为: (2)4-7译码器:仿真波形:其封装图为: 显示模块:5.闹钟部分:(此模块是我们实验组分工给我的模块,我描述详细一些):用四个比较器,选择器和门电路:1. 比较器:计算两个值:设定闹钟的值和时钟的值,相等时输出1。VHDL程序: library ieee;use ieee.std_logic_1164.all;-use ieee.std_logic_arith.all;-use ieee.std_logic_unsigned.all;entity compare isport( a: in std_l

43、ogic_vector ( 3 downto 0 ); b: in std_logic_vector ( 3 downto 0 ); f: out boolean ); end;architecture comp of compare isbeginf<=(a=b); -end comp;封装模块:2.选择器:程序代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY mux2 IS PORT ( a,b,k: IN BI

44、T; y: OUT BIT );END ENTITY mux2;ARCHITECTURE behav OF mux2 ISSIGNAL tmp1,tmp2,tmp3: BIT;BEGIN tmp1<=b and k; tmp2<=a and (not k); tmp3<=tmp1 or tmp2; y<=tmp3; END behav;封装模块: 闹钟仿真电路如下:其中:impulse:给扬声器的2khz 信号 mo60rst,mo60en,mo60clk,mo24rst,mo24en,mo24clk:时钟的清零,停止信号和clock信号 alarm_set/shut:

45、 闹钟打开或关闭clock_minQH,QL,clock_hourQH,QL: 当前时间mo60QH,QL,mo24QH,QL: 闹钟时间设置 经过四个比较器,如果时钟和闹钟设定相等就全输出1 给与非门,与非门输出0给二选一选择器,如果Y等于0,选择器输出0给非门,非门输出1给第二个选择器,选择器就选了输出2khz信号给场声器仿真波形:闹钟设置为15点25分:完全正确6.报时部分:由设计要求电子钟在每小时到来前进行报时:59:53, 55:55,59:57 鸣叫频率为1kHz;59:59鸣叫频率为2kHz,从而可以很容易采用VHDL语言编写程序实现:LIBRARY IEEE;USE IEEE.

46、STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY beep ISPORT(clk_1k: IN STD_LOGIC;clk_2k: IN STD_LOGIC;q1: IN STD_LOGIC_VECTOR(3 DOWNTO 0);q2: IN STD_LOGIC_VECTOR(3 DOWNTO 0);q3: IN STD_LOGIC_VECTOR(3 DOWNTO 0);q4: IN STD_LOGIC_VECTOR(3 DOWNTO 0);beep: OUT STD_LOGIC);END beep;ARCHITECTURE behav OF beep ISSIGNAL temp: STD_LOGIC;BEGINPROCESS(q1,q2,q3,q4)BEGINIF(q4="0101" AND q3="1

温馨提示

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

评论

0/150

提交评论