基于eda的多功能数字钟设计

合集下载

用EDA技术设计多功能数字钟

用EDA技术设计多功能数字钟

用EDA技术设计多功能数字钟摘要近年来,随着电子技术和通信技术的飞速发展,要求设计研究方面运用电子设计自动化(Electronic Design Automation,简称EDA)工具进行开发。

在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。

本设计为通过EDA仿真软件MAX+PLUSII设计一个多功能数字钟,并下载到硬件中实现。

本系统的设计电路由计时电路、动态显示电路、闹钟电路、控制电路、显示电路等部分组成。

本系统采用动态显示的原理在数码管上显示12小时计时的时刻,具有清零、保持、校时、报时的功能,并在此基础上增加了闹铃、秒表、12小时制计时、A/P显示等功能。

在设计过程中,将各部分均模块化,各模块间相互独立,又相互联系。

本实验吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。

本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。

关键词数字钟、计数器、多功能、动态显示、原理图、仿真、模块化AbstractRecently, with the rapid development of electronic and communication technology, it is required to use Electronic Design Automation (EDA) as a tool in designing systems. EDA derives from the concepts of Computer Aided Design, Computer Aided Manufacture, Computer Aided Test and Computer Aided Engineering in the 1990s. Designers use Hardware Describe Language to accomplish designing files on the platform of software. Then, computer will finish the work of logical compiling, simplification, division, synthesis, optimizing, layout, tracking and simulating automatically, and it can also accomplish the work of proper compiling, logical projecting and downloading of the target chip. As a result, it evidently improves the efficiency and reliability of the circuit design, and it also lighten designer’s workload.This experiment has designed a multifunctional digital clock via using the MAX+PLUSII, and the basic and extended performances and functions are successfully realized in the hardware. This system includes time circuit, alarm circuit, dynamic display circuit, control circuit, display circuit. In the system, the segment display can display time in the 24-hour format, it includes such functions as clear, hold, check the time and so on. We can also add alarm, stopwatch, 12-hour format display and other functions on that basic. In the designing process, many parts are modularized, they are not only independent but also related. Many functions are finished by the software. So it simples the circuit and enhances the stability of the system. Not only all the basic and extended performances and functions are successfully realized, but also accomplish some innovation functions.KeywordsDigital clock, arithmometer, multifunctional, dynamic display,schematic diagram, simulate, modularization目录摘要 1ABSTRACT 11、前言62、EDA技术的介绍及发展 73、总体方案设计 93.1 设计内容 93.2 方案比较 (9)3.3 方案论证 (10)3.4 方案选择 104、多功能数字中的设计 124.1 课题要求 124.2 课题分析 12 4.3 功能实现 134.3.1 秒计时模块 144.3.2 分计时模块 164.3.3 小时计时模块 17 4.3.4 校时校分模块 194.3.5 整点报时模块 194.3.6 时段控制模块 204.3.7 连接各模块 214.4 下载过程 234.5 总结报告 265、设计总结 285.1 设计小结 28 5.2 设计收获 285.3 设计改进 286、致谢 287、参考文献 301、前言本课题研究的背景和目的:二十一世纪是信息化高速发展的世纪,产业的信息化离不开硬件芯片的支持。

eda多功能数字钟实验报告

eda多功能数字钟实验报告

eda多功能数字钟实验报告
《EDA多功能数字钟实验报告》
摘要:
本实验通过对EDA多功能数字钟的组装和测试,探索了数字钟的功能和性能。

实验结果表明,EDA多功能数字钟具有精准的时间显示、多种闹铃设置、温度
和湿度监测等功能,是一款实用且性能稳定的数字钟产品。

引言:
数字钟作为现代生活中不可或缺的家居用品,其功能和性能一直备受关注。


次实验选择了EDA多功能数字钟作为研究对象,旨在通过对其组装和测试,深
入了解数字钟的各项功能和性能指标。

实验方法:
1. 组装数字钟:按照产品说明书,将数字钟的各个部件进行组装,并确保连接
牢固。

2. 功能测试:测试数字钟的时间显示、闹铃设置、温度和湿度监测等功能。

3. 性能测试:对数字钟的时间精准度、闹铃响铃声音、温度和湿度监测准确度
等进行测试。

实验结果:
1. 时间显示:数字钟的时间显示精准,误差在1秒以内。

2. 闹铃设置:数字钟支持多组闹铃设置,响铃声音清晰、音量适中。

3. 温度和湿度监测:数字钟的温湿度监测准确度高,与实际环境温湿度相符合。

讨论:
通过本次实验,我们发现EDA多功能数字钟具有精准的时间显示、多种闹铃设
置、温度和湿度监测等功能,性能稳定,符合用户对数字钟的基本需求。

同时,数字钟的组装和操作也相对简单,适合家庭使用。

结论:
EDA多功能数字钟是一款实用且性能稳定的数字钟产品,能够满足用户对数字
钟的基本需求。

在未来的生活中,数字钟将继续扮演重要的角色,为人们的生
活提供便利。

致谢:
感谢实验中提供支持和帮助的老师和同学们。

EDA课程设计数字闹钟

EDA课程设计数字闹钟

EDA课程设计数字闹钟一、教学目标本课程旨在通过数字闹钟的设计与实现,让学生掌握EDA(电子设计自动化)的基本原理和方法,培养学生的实践能力和创新精神。

具体目标如下:知识目标:使学生了解数字闹钟的原理和结构,理解时钟芯片的工作原理,掌握EDA工具的使用方法。

技能目标:培养学生使用EDA工具进行数字电路设计的能力,提升学生的编程和调试技能,训练学生的团队协作和沟通能力。

情感态度价值观目标:培养学生对电子科技的兴趣和热情,增强学生解决实际问题的信心和勇气,培养学生负责任的工作态度和良好的团队合作精神。

二、教学内容本课程的教学内容主要包括数字闹钟的原理与设计、时钟芯片的工作原理、EDA工具的使用等。

1.数字闹钟的原理与设计:介绍数字闹钟的工作原理,包括时钟发生器、分频器、计数器等基本组成部分,以及如何实现闹钟功能。

2.时钟芯片的工作原理:讲解时钟芯片的内部结构和工作原理,使学生了解时钟芯片在数字电路中的应用。

3.EDA工具的使用:介绍常用的EDA工具,如Cadence、Altera等,讲解如何使用这些工具进行数字电路设计。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。

1.讲授法:通过讲解数字闹钟的原理、时钟芯片的工作原理以及EDA工具的使用方法,使学生掌握相关知识。

2.案例分析法:分析实际案例,让学生了解数字闹钟设计的过程和注意事项。

3.实验法:让学生动手实践,使用EDA工具设计数字闹钟,提高学生的实践能力。

四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:选择合适的教材,如《数字电路与EDA技术》等,为学生提供理论支持。

2.多媒体资料:制作课件、视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。

3.实验设备:准备实验设备,如计算机、EDA工具软件、开发板等,为学生提供实践平台。

4.网络资源:利用网络资源,为学生提供更多的学习资料和实践案例,拓宽学生的视野。

基于EDA的数字时钟课程设计报告

基于EDA的数字时钟课程设计报告

EDA课程设计报告目录一、设计内容简介 (2)二、设计要求 (2)基本要求 (2)提高部分要求 (3)三、方案论证(整体电路设计原理) (3)四、各个模块设计原理 (4)4.1 分频电路模块设计 (5)4.2 秒计时器模块设计 (7)4.3 分计时器模块设计 (9)4.4 小时计时器模块设计 (11)4.5 报时模块设计 (13)五、实验中遇到问题及解决方法 (20)六、结论 (20)七、实验心得 (21)八、参考文献 (22)一、设计内容简介设计一个数字钟,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。

我设计的电路在具有基本功能的基础上,增加了下列功能:改变分频比、不同整点不同报时等;二、设计要求基本要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、K2是系统的校分开关;5、K3是系统的校时开关;提高部分要求1、使时钟具有整点报时功能(当时钟计到59’50”时开始报时,四个不同整点发出不同声音);2、分频比可变;三、方案论证(整体电路设计原理)本实验在实现实验基本功能的基础上,加入了整点报时等功能;图1为实验功能方框图:图1 实验方框图数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为4KHZ,通过分频获得所需脉冲频率(1Hz,1KHz,500Hz)。

为产生秒位,设计一个模60计数器,对1HZ的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模60计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。

整个数字计时器的计数部分共包括六位:时十位、时个位、分十位、分个位、秒十位和秒个位。

显示功能是通过数选器、译码器、码转换器和7段显示管实现的。

EDA实验多功能数字钟课程设计报告

EDA实验多功能数字钟课程设计报告

. . -.课程设计报告设计题目:EDA实现多功能数字钟. . -.课程设计 任务书题目 EDA 实验多功能数字钟 任务与要求一、实验任务:用FPGA 器件和EDA 技术实现多功能数字钟的设计 条件:1、MAX+Plus 软件2、FPGA 实验开发装置根本功能:1、以数字形式显示时、分、秒的时间; 2、小时计数器为24进制; 3、分、秒计数器为60进制。

二、小时计数器为24进制原理图如下:…………………………装………………………………订对该图进展编译及波形仿真如下:分析及结论:小时计数器是24进制用当下面的74161到9时等下个脉冲来是向上面一个74161进位使的上面的74161记数。

但是等到上面的计到2时下面的将不能超过4所以等上面的计到2,下面的计到4时就将两个74161共同预置。

从而实现00—24分的记数功能。

仿真波形显示里23小时到00分的循环的过程仿真到位。

对上述仿真波形图进展打包工作,将24进制图建立成模块:三、分计数器为60进制原理图如下:对该图进展编译及波形仿真如下:分析及结论:分计数器是60进制的。

当下面的74161到9时等下个脉冲来是向上面一个74161进位使的上面的74161计数,到5时将两个74161共同预置。

从而实现00—59秒的记数功能。

Cp60S为向分的进位信号上跳沿有效。

仿真波形显示里59秒到00秒的循环的过程,仿真到位。

对上述仿真波形图进展打包工作,将60进制图建立成模块:四、秒计数器为60进制原理图如下:对该图进展编译及波形仿真如下分析及结论:秒计数器是60进制的。

当下面的74161到9时等下个脉冲来是向上面一个74161进位使的上面的74161计数,到5时将两个74161共同预置。

从而实现00—59秒的记数功能。

Cp60S为向分的进位信号上跳沿有效。

仿真波形显示里59秒到00秒的循环的过程,仿真到位。

对上述仿真波形图进展打包工作,将60进制图建立成模块:五、多功能数字钟的主体局部原理图如下:仿真波形图如下:六、下载1、添加译码模块后的原理图对上述图形进展编译及波形图如下2、选用器件3、分配引脚号4、对器件进展下载下载模块的原理图如下七、心得体会:充分体会到了合作的重要性,在协同中觉察自己的缺乏,认真听取同伴的意见。

eda课程设计——多功能数字钟

eda课程设计——多功能数字钟

课程设计说明书课程名称EDA课程设计题目多功能数字钟课程设计任务书设计题目多功能数字钟设计一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。

二、设计内容、技术条件和要求l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。

2、能利用实验系统上的按钮实现“校时”、“校分”功能;(1)按下“SA”键时,计时器迅速递增,并按24小时循环;(2)按下“SB”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;(3)按下“SC”键时,秒清零;抖动的,必须对其消抖处理。

3、能利用扬声器做整点报时:(1)当计时到达59’50”时开始报时,频率可为500Hz;计满23小时后回零;计满59分钟后回零。

(2)到达59’59”时为最后一声整点报时,整点报时的频率可定为lKHz。

4定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。

6、报时功能。

报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。

三、时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。

2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。

四、主要参考文献(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004(2)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006指导教师签字:2010年9月5日引言:人类社会已进入到高度发达的信息化社会。

信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。

EDA电子钟多功能数字时钟课程设计(含代码)[优秀]

EDA电子钟多功能数字时钟课程设计(含代码)[优秀]

多功能数字时钟设计说明:1.系统顶层框图:各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最基本的数字钟,其计数输出送7段译码电路由数码管显示.2.基准频率分频器可分频出标准的1HZ频率信号,用于秒计数的时钟信号;分频出4HZ频率信号,用于校时、校分的快速递增信号;分频出64HZ频率信号,用于对按动“校时”,“校分”按键的消除抖动.2.多功能数字钟结构框图:一、系统功能概述已完成功能1.完成时/分/秒的依次显示并正确计数,利用六位数码管显示;2.时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时,通过扬声器发出高低报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;5.闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃.有静音模式.待改进功能:1. 系统没有万年历功能,正在思考设计方法.2. 应添加秒表功能.二、系统组成以及系统各部分的设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零.VHDL的RTL描述如下:----cnt_h.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_h isport(en,clk,clr:in std_logic;dout:out std_logic_vector(7 downto 0);c:out std_logic);end cnt_h;architecture rtl of cnt_h issignal t:std_logic_vector(7 downto 0);beginprocess(en,clk,clr)variable t:std_logic_vector(7 downto 0);beginif en='1' then --异步使能if clk 'event and clk='1' thent:=t+1;if t(3 downto 0)=X"A" then --个位等于10则十位加1t(7 downto 4):=t(7 downto 4)+1;t(3 downto 0):=X"0"; --个位清零end if;if t>X"23" then --大于23清零t:=X"00";end if;end if;if clr='1' then --异步清零t:=X"00";end if;end if;dout<=t;end process;end rtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求.时计数模块框图如下2.分及秒计数模块分及秒计数模块也是一个2位10进制计数器,记数到59清零.VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end cnt_s;architecture rtl of cnt_s isbeginprocess(en,clk,clr)beginif en='1' thenif clr='1' then --异步清零dout<=X"00";elsif clk 'event and clk='1' thenif dout(3 downto 0)<9 thendout(3 downto 0)<=dout(3 downto 0)+1;c<='0';elsif dout(7 downto 4)<5 thendout(3 downto 0)<=X"0";dout(7 downto 4)<=dout(7 downto 4)+1;elsedout<=X"00";c<='1';end if;end if;else dout<="ZZZZZZZZ";end if;end process;end rtl;分和秒计数器模块仿真波形如下从仿真波形可知,当计数到59时,下一个时钟上升沿到来时就清零了,并且产生进位信号,符合设计要求.分和秒计数模块框图如下3.按键消抖动模块按键消抖动有很多方案,这里选择的是计数消抖,即只当有效电平到来后开始计数,当计数值大于一定值后再输出该有效电平,否则不输出,从而达到消抖目的. VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;entity haoin isport(din,clk:in std_logic;dout:out std_logic); end haoin;architecture rtl of haoin isbeginprocess(din)variable t: integer range 0 to 63:=0;beginif din='1' thenif clk 'event and clk='1'thent:=t+1;if t>10 thendout<='1';t:=t-1;else dout<='0';end if;end if;else dout<='0';t:=0;end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ring isport(clk: in std_logic;clk500: in std_logic;clk1k:in std_logic;beep:out std_logic);end ring;architecture rtl of ring isbeginprocess(clk)variable t: std_logic;variable n: integer range 0 to 15:=0;beginif clk 'event and clk='1' thent:=not t;n:=n+1;end if;if t='1' and n<11 thenbeep<=clk500;elsif n=11 thenbeep<=clk1k;else beep<='Z';end if;end process;end rtl;library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity clock isport(SA: in std_logic;SB: in std_logic;SC: in std_logic;SD: in std_logic;clk1: in std_logic;dout: buffer std_logic_vector(23 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0);beep: out std_logic--led:out std_logic_vector(3 downto 0));end entity clock;architecture rtl of clock isco米ponent cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end co米ponent;co米ponent cnt_h isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0));end co米ponent;--co米ponent seg米ain is--port(clk,reset_n:in std_logic;--datain:in std_logic_vector(15 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0));--end co米ponent;--co米ponent ring is--port( en: in std_logic;-- clk: in std_logic;--clk500: in std_logic;--clk1k:in std_logic;--beep:out std_logic);--end co米ponent;co米ponent haoin isport(din,clk:in std_logic;dout:out std_logic);end co米ponent;co米ponent naoling isport (h,米:in std_logic_vector(7 downto 0);clk4hzh,clk4hz米:in std_logic;sys_en,sys_rst:in std_logic;h_o,米_o: out std_logic_vector(7 downto 0);beep:out std_logic);end co米ponent;signal reg_h:std_logic_vector(7 downto 0);signal reg_米:std_logic_vector(7 downto 0);signal reg_s:std_logic_vector(7 downto 0);signal reg_米_s:std_logic_vector(7 downto 0):=X"59"; signal reg_米_米:std_logic_vector(7 downto 0):=X"59";signal reg_米_h:std_logic_vector(7 downto 0):=X"59";signal clk_h:std_logic;signal clk_米:std_logic;signal clk_s:std_logic;signal c_s :std_logic;signal c_米:std_logic;signal c_h :std_logic;signal sys_clk1:std_logic;signal sys_clk4:std_logic;signal sys_clk64:std_logic;signal sys_clk500:std_logic;signal sys_clk1k:std_logic;signal clki:integer:=750000;signal sys_rst:std_logic:='0';signal sys_en:std_logic:='1';signal clk_ring,米h:std_logic;signal SAc,SBc,SCc,SDc:std_logic;signal en_r:std_logic;signal NL_reg_h,NL_reg_米:std_logic_vector(7 downto 0);signal NL_ring:std_logic;signal sys_clk4_NL_h,sys_clk4_NL_米:std_logic;beginh:cnt_h port 米ap(en=>sys_en,clk=>clk_h,clr=>sys_rst,dout=>reg_h);米:cnt_s port 米ap(en=>sys_en,clk=>clk_米,clr=>sys_rst,dout=>reg_米,c=>c_米);s:cnt_s port 米ap(en=>sys_en,clk=>sys_clk1,clr=>SCc,dout=>reg_s,c=>c_s);--sled:seg米ain port 米ap(clk=>clk1,reset_n=>SCc,seg_data=>seg_data,seg_co 米=>seg_co米,datain=>dout(15 downto 0));--ring0:ring port 米ap(en=>en_r,clk=>clk_ring,clk500=>sys_clk500,clk1k=>sys_clk1k,beep=>beep); haoin1:haoin port 米ap( SA,sys_clk64,SAc);haoin2:haoin port 米ap( SB,sys_clk64,SBc);haoin3:haoin port 米ap( SC,sys_clk64,SCc);haoin4:haoin port 米ap( SD,sys_clk64,SDc);NL:naoling port 米ap(beep=>NL_ring,h=>reg_h,米=>reg_米,clk4hzh=>sys_clk4_NL_h,clk4hz米=>sys_clk4_NL_米,sys_en=>sys_en,sys_rst=>sys_rst,h_o=>NL_reg_h,米_o=>NL_reg_米);beep<=clk_ring and 米h;--led<=reg_s(3 downto 0);p_sys_clk:process(clk1)variable t1,t4,t64,t500,t1k:integer range 0 to 50000000;beginif clk1 'event and clk1='1' thent1:=t1+1;t4:=t4+1;t64:=t64+1;t500:=t500+1;t1k:=t1k+1;if t1=clki/2 thent1:=0;sys_clk1<=not sys_clk1;end if;if t4=clki/8 thent4:=0;sys_clk4<=not sys_clk4;end if;if t64=clki/128 thent64:=0;sys_clk64<=not sys_clk64;end if;if t500=clki/1000 thent500:=0;sys_clk500<=not sys_clk500;end if;if t1k=clki/2000 thent1k:=0;sys_clk1k<=not sys_clk1k;end if;end if;end process p_sys_clk;p_c:process(SAc,SBc,SCc,SDc)beginif SAc='1' and SDc='0' thenclk_h<=sys_clk4;elseclk_h<=c_米;end if;if SAc='1' and SDc='1' thensys_clk4_NL_h<=sys_clk4;elsesys_clk4_NL_h<='0';end if;if SBc='1' and SDc='0'thenclk_米<=sys_clk4;elseclk_米<=c_s;end if;if SBc='1' and SDc='1'thensys_clk4_NL_米<=sys_clk4;elsesys_clk4_NL_米<='0';end if;if SDc='0' thendout(7 downto 0)<=reg_s;dout(15 downto 8)<=reg_米;dout(23 downto 16)<=reg_h;elsedout(7 downto 0)<="ZZZZZZZZ";dout(15 downto 8)<=NL_reg_米;dout(23 downto 16)<=NL_reg_h;end if;end process p_c;P_ring:process(reg_米,reg_s,sys_clk1k)variable clk_ring_t:std_logic;variable t:std_logic_vector(3 downto 0);beginif reg_米=X"59" and (reg_s=X"50" or reg_s=X"52" or reg_s=X"54" or reg_s=X"56" or reg_s=X"58") thenclk_ring_t:=sys_clk500;elsif reg_米=X"00" and reg_s=X"00" thenclk_ring_t:=sys_clk1k;else clk_ring_t:='Z';end if;if NL_ring='1' thenclk_ring_t:=sys_clk1k;end if;if sys_clk1k 'event and sys_clk1k='1' thent:=t+1;end if;if t>1 then 米h<='1';end if;clk_ring<=clk_ring_t;end process p_ring;end rtl;。

EDA设计-多功能数字钟

EDA设计-多功能数字钟

设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。

具体实现方法为:首先利用一个模48和两个模1000的计数器将原始的48MHZ转换成数字计时器所需的1HZ。

然后利用1HZ作为时钟,用两个模60和一个模24计数器形成基本数字钟。

快速校时和校分只需利用适当的与门和或门添加到相应计时模块的时钟即可。

至于整点报时,利用相应的判别条件,再连入相应的的频率,最后送到蜂鸣器端口即可完成功能。

对于附加功能闹钟和星期。

闹钟的具体功能为可设置时间,可先清零后再重新设置,到点后以1KHZ鸣叫10秒,期间可关掉闹钟。

具体实现方法为:将开关K5作为闹钟的小时设定,开关K6作为闹钟的分钟设定,均作为计数器的时钟。

当这两个开关上下一次,小时和分钟均增加1。

然后再将闹钟的时间与数字钟的时间相比较,当两者完全相同时,蜂鸣器响起。

对于星期的设置比较简单,只需在数字钟小时模块后添加一个模8计数器,并在显示模块添加星期的相应输出即可。

对于实验调试所需注意的是:要对开关进行消颤,利用D触发器,且添加的频率不能太大。

关键字:分频、计数器、D触发器AbstractDesign a digital timer, which has the timing function counting from 00:00:00 to23:59:59, and can also maintain time 、clear time、rapidly adjust the minutes 、rapidly adjust the hours and timekeeping. The realizing specific methods are as follows .First, use a mold 48 and two mode 1000 counters to turn the original 48 MHz into a digital timer required 1HZ. Second , take the 1HZ as the clock to the basic digital clock formation of two mold 60 and a modulo 24 counters . Use the appropriate AND and OR gates added to the appropriate timing module can realize rapidly adjusting the minutes . As for timekeeping , using the corresponding discriminant conditions, connecting them with the corresponding frequency, and sending to the buzzer port can complete the function.Additional features include alarm clock and counting days of the week. The alarm clock can set the time, can be first cleared and then reseted, can sound for 10 seconds, and in the period can turn off the alarm. The specific method is: take K5 as the switch setting hour and take K6 as the switch setting minute, both as counters’ clock. Once these two switches up and down, hour and minute are both increase 1. Then compare the alarm time with the time of the digital clock . When they are the same, the buzzer start sounding . Setting the week is relatively simple, just adding a modulo 8 counter behind digital clock hour module and adding the corresponding output to the display module.For the debug experiments , use the D flip-flop to eliminate chatter and the frequency added can not be too much.Keywords:frequency converteion、counter、D flip-flop一.设计要求 (3)二.方案论证 (4)三.各子模块设计原理 (6)3.1 脉冲发生电路 (6)3.2 计时电路 (8)3.3 译码显示电路 (11)3.4整点报时电路 (12)3.5保持电路 (13)3.6清零电路 (14)3.7校分、校时电路 (14)3.8闹钟电路 (15)3.9星期电路 (20)四.下载调试 (20)五.结论 (21)六.实验感想 (21)参考文献 (24)附录 (24)多功能数字钟一、设计要求设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。

eda多功能数字时钟课程设计

eda多功能数字时钟课程设计

eda多功能数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本原理,掌握EDA工具的使用方法,并运用相关电路知识设计多功能数字时钟。

2. 学生能够运用所学知识,分析并解释数字时钟电路中各个部分的功能及其相互关系。

3. 学生了解数字时钟在实际生活中的应用,理解其重要性。

技能目标:1. 学生能够运用EDA工具进行电路设计,具备实际操作能力。

2. 学生通过动手实践,培养解决实际问题的能力,提高创新意识和团队协作能力。

3. 学生能够运用所学知识,对数字时钟电路进行调试和优化。

情感态度价值观目标:1. 学生在学习过程中,培养对电子技术的兴趣,激发创新精神。

2. 学生通过团队合作,学会尊重他人,培养良好的沟通能力和团队精神。

3. 学生认识到科技发展对社会进步的重要性,树立正确的价值观。

课程性质:本课程为实践性较强的课程,结合理论教学,注重培养学生的动手能力和实际操作技能。

学生特点:学生具备一定的电子技术基础知识,对实践操作有较高的兴趣。

教学要求:教师需结合理论教学,指导学生进行实践操作,注重启发式教学,引导学生主动探究,提高学生的综合能力。

在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。

通过课程学习,使学生能够将所学知识应用于实际生活中,提高学生的创新意识和实践能力。

二、教学内容本课程教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本工作原理,包括时钟信号、计数器、显示驱动等组成部分。

2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等。

3. 电路设计与实现:指导学生运用EDA工具设计多功能数字时钟电路,包括时钟信号电路、分频器、计数器、显示驱动和按键控制等模块。

4. 电路调试与优化:教授学生如何对设计的数字时钟电路进行调试,找出问题并进行优化。

教学内容与教材关联性如下:1. 《电子技术基础》中关于数字电路的基础知识,为理解数字时钟原理提供理论支持。

EDA课程设计——多功能数字钟课程设计报告剖析

EDA课程设计——多功能数字钟课程设计报告剖析

多功能数字电子钟一、设计要求1、具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。

2、设计精度要求为1S。

二.系统功能描述1 . 系统输入:系统状态及校时、定时转换的控制信号为k、mode、set;时钟信号clk,采用1024Hz;系统复位信号为reset。

输入信号均由按键产生。

系统输出:LED显示输出,蜂鸣器声音信号输出。

多功能数字钟系统功能的具体描述如下:2. 计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。

3. 校时:在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k 键”又恢复到正常计时显示状态。

1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。

2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。

3)“秒”复零状态:在“秒复零”状态下,显示“秒”的数码管复零。

4. 整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512Hz的低音,在“59”分钟的第“59”秒发频率为1024Hz的高音,结束时为整点。

5. 显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。

闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。

6. 闹钟定时设置:在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。

1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz的频率递增计数。

2)闹钟:“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管以1Hz的频率递增计数。

三、控制器的MDS图及多功能数字系统结构逻辑框图1、控制器的MDS图S0:显示计时时间s1:调计时的时s2:调计时的分s3:调计时的秒S4:显示闹铃时间s5:调闹铃的时s6:调闹铃的分s7:调闹铃的秒2、多功能数字系统结构逻辑框图四、各功能模块设计说明及源程序1、控制器:设计说明:根据外部的输入控制信号,完成各个状态之间的转换,并在相应状态输出相应的控制信号,从而对整个系统的工作进行控制。

基于eda的多功能数字钟设计

基于eda的多功能数字钟设计

目录一.设计说明 (1)I.功能说明 (1)II.功能简介 (1)二.总体方案分析 (3)三.各子模块设计原理 (3)I.脉冲分频模块 (3)II.时钟计时模块(包含校定和清零功能) (4)III.显示控制电路 (7)IV.显示模块和计时模块结合 (11)V.整点报时模块 (11)VI.闹钟模块 (13)四.调试与仿真 (17)I.脉冲发生模块 (17)II.计时电路 (18)III.仿真 (18)五.收获与体会 (19)六.附录 (20)一.设计说明I.功能说明:设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校时间,每逢整点,产生报时音报时。

系统框图如图1-1所示:图1-1 多功能数字钟系统框图II.功能简介此设计问题可分为主控电路、计数器模块和扫描显示三大部,主控电路中各种特殊功能的实现设计问题的关键。

用两个电平信号A、B进行模式选择,AB=00为模式0,系统为计时状态;AB=01为模式1,系统为手动校时状态;AB=10为模式2,系统为闹钟设置状态。

设置一个cd信号,当cd=00时,表示在手动校对时,选择调整时部分;当cd=01时,表示在手动校对时,选择调整分钟部分;。

当cd=10时,表示在手动校对时,选择调整秒部分设置一个change信号,在手动校时或闹钟设置模式下,每按一次,计数器加1。

设置一个reset信号,当reset=0时,整个系统复位;当reset=1时,系统进行计时或其他特殊功能操作。

设置一个闹钟设置信号reset1,当reset1=1时,对闹钟进行设置,当reset1=0时,关闭闹钟信号。

设置一个E信号,当E=0时,表示在手动校对时,选择调整时部分;当E=1时,表示在手动校对时,选择调整分钟部分设置状态显示信号(连发光二极管):LD_alert指示是否设置了闹铃功能;LD_h指示当前调整的是小时信号;LD_m指示当前调整的是分钟信号。

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

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

目录一、实验任务 (1)二、关键词 (1)三、内容摘要 (1)四、数字钟电路系统组成框图 (2)五、各个功能模块的实现 (3)(1)小时计时 (3)(2)分钟计时 (3)(3)秒钟计时 (4)(4)校时校分 (5)(5)整点报时 (6)(6)时段控制 (6)六、数字钟的顶层文件 (7)七、下载 (8)(1)添加译码模块后的原理图 (8)(2)选用芯片 (8)(3)分配引脚号 (9)(4)器件下载 (9)(5)效果显示 (9)八、遇到的问题及解决办法 (12)九、《课程设计》中设计项目完成最终结论 (13)十、结束语 (13)十一、附录 (14)一、实验任务:用FPGA器件和EDA技术实现多功能数字钟的设计已知条件:1、QuartusП软件2、FPGA实验开发装置基本功能:1、以数字形式显示时、分、秒的时间;2、小时计数器为24进制;3、分、秒计数器为60进制。

拓展功能:1、校时、校分(有两个使能端构成,分别为校时、校分功能,同时按无效)2、仿电台报时(每个小时的59分51、53、55、57、59分别以四长声一短声进行报时)3、时段控制(让信号显示灯在晚上19点至早上5点灭。

之后亮)二、关键词小时、分钟计时模块、顶层文件、整点报时、时段控制、下载模块三、内容摘要1、设计要求:(1)小时计数器为8421BCD码24制;分和秒计数器为8421BCD 码60进制计数器;(2)拓展功能:①校正“时”和“分”;②整点报时;③时段控制。

2、硬件描述语言设计(Verilog HDL语言)方法在QuartusП软件系统平台上建立数字电子钟电路的顶层文件并完成编译和仿真。

3、输入变量:时钟CPS,直接清零RD;输出变量:小时计时H[7..4]、H[3..0]为8421BCD码输出,其时钟为CPH;之后的分计时、秒计时均为8421BCD码输出,其时钟为CPS等。

4、在顶层文件中,由若干低层模块“打包”组成整个多功能数字钟,分别对各模块作设计及仿真,最后级联各模块,统调、仿真及下载,从而实现各项功能。

EDA多功能数字电子钟

EDA多功能数字电子钟

EDA实验报告Clock设计姓名:专业:电子信息科学与技术班级:10级1 班学号:1001050903信息科学与工程学院电子信息系2012 年7 月3 日一、实验目的通过本次实验设计,提高学生Verilog语言编写能力,加深对Quartus ΙΙ、modelsim等仿真软件的了解并进一步熟悉和使用。

二、实验要求1.设计一个时钟,具有显示时、分的功能;2.时钟有暂停、复位等功能。

三、实验内容1.clock程序代码module clock(clk,seg,reset,cin,ocom,count);output[3:0] ocom;output[7:0] seg;output count;input cin,clk,reset;reg [7:0] out_s;reg[7:0] out_min;reg[7:0] seg;reg[3:0] ocom;reg[3:0] display;reg clk_m,clk_n;reg[1:0] select;reg count;integer count_clk,count_cp;always @(posedge clk)if (count_cp == 50000)begincount_cp = 0;clk_n = ~clk_n;endelsecount_cp = count_cp + 1;always @(posedge clk)if (count_clk == 25000000)begincount_clk = 0;clk_m = ~clk_m;endelsecount_clk = count_clk + 1;always @(posedge clk_n)select=select + 1;always @(select)begincase(select)2'b00 : begin ocom[3:0]=4'b1110;display = out_s[3:0]; end2'b01 : begin ocom[3:0]=4'b1101;display = out_s[7:4]; end2'b10 : begin ocom[3:0]=4'b1011;display = out_min[3:0]; end2'b11 : begin ocom[3:0]=4'b0111;display = out_min[7:4]; end endcaseendalways @(posedge clk_m)beginif(!reset)out_s <= 0;else if(cin)beginif(out_s[3:0]==9)beginout_s[3:0] <= 0;if(out_s[7:4]==5)out_s[7:4] <= 0;elseout_s[7:4] <= out_s[7:4]+1;endelseout_s[3:0] <= out_s[3:0]+1;endendalways @(out_s)if ((out_s == 8'h59) & cin)count = 1;else#1 count = 0;always @(posedge clk_m)beginif(!reset)out_min <= 0;else if(count)if(out_min[3:0]==9)beginout_min[3:0] <= 0;if(out_min[7:4]==5)out_min[7:4] <= 0;elseout_min[7:4] <= out_min[7:4]+1;endelseout_min[3:0] = out_min[3:0] + 1;endalways @(display)begincase(display)4'b0000 : seg[7:0]=8'b10010000;4'b0001 : seg[7:0]=8'b10011111;4'b0010 : seg[7:0]=8'b01011000;4'b0011 : seg[7:0]=8'b00011001;4'b0100 : seg[7:0]=8'b00010111;4'b0101 : seg[7:0]=8'b00110001;4'b0110 : seg[7:0]=8'b00110000;4'b0111 : seg[7:0]=8'b10011101;4'b1000 : seg[7:0]=8'b00010000;4'b1001 : seg[7:0]=8'b00010001;default : seg[7:0]=8'b11111111;endcaseendendmodule2.测试代码`timescale 1ns/1nsmodule clock_test;wire [3:0] ocom;wire [7:0] seg;wire count;reg cin,clk,reset;always #10 clk=~clk;initialbeginclk=0;cin=1;reset=0;#42reset=1;#100000 $stop;endclock m(.ocom(ocom),.seg(seg),.count(count),.cin(cin),.clk(clk),.reset(reset)); endmodule3.引脚绑定4.程序下载1.Quartus编译2.modelsim仿真五.实验总结这次课程设计让同学们懂得了Verilog语言的重要性,没有好的理论基础就不可能有实践的正确性。

EDA 多功能数字钟实验报告

EDA 多功能数字钟实验报告

EDAⅡ多功能数字钟目录内容摘要 (3)一.引言 (4)二、实验要求 (4)三、方案论证 (5)四、整体电路功能综述 (6)五、各模块设计1、分频器模块 (8)2、计时模块 (9)3、闹铃模块 (12)4、上下午切换模块 (13)5、显示模块 (14)6、整点报时模块 (15)7、秒表模块 (15)8、动态显示模块 (16)9、倒计时模块 (18)10、开关防抖动 (19)11、开关复用控制 (20)六、实验中的问题及解决方法 (21)中文摘要本实验利用QuartusII软件,结合所学的数字电路的知识设计一个24时多功能数字钟,具有正常时、分、秒计时,动态显示,清零、快速校分、整点报时、闹钟、秒表、倒计时功能。

论文分析了整个电路的工作原理,还分别说明了各子模块的设计原理和调试、仿真、编程下载的过程,并对最终结果进行总结,最后提出了在实验过程中出现的问题和解决的方案,以及后续设计思想。

通过实验掌握了一些逻辑组合器件的基本功能和用法,同时体会到了利用软件设计电路的方便快捷,避免了硬件布线的繁琐,提高了效率,在为以后设计更复杂的电路打下了良好基础。

关键词数字钟闹钟秒表倒计时外文摘要Title DIGITAL CLOCK DESIGN PROPOSAlAbstractUsing the QuartusII, we design a digital clock of 24 hours with learning electric circuit knowledge. The circuit can keep the time, reset, adjust the minute and hour, ring the time in the round number time , alarm clock , stopwatch and countdown. The paper has analyzed the principle of all work and explained the designing principle of different parts separately. By debugging, simulating, compiling, programming, I put forward a matter and give a settling plan.I know about the basic functions and using method of some electric pieces in this experiment. At the same time, I realized the convenience of making use of the software to carry on the electric circuit, which is fast and let us have a good foundation for design a more complex system, avoided the hardware cloth line tedious, and raised the efficiency.Keywords digital clock, alarm clock,stopwatch,count down一、引言传统硬件电路在设计存在连线麻烦,出错率高且不易修改,很难控制成本的缺点。

基于eda数字时钟设计课程设计论文本科论文

基于eda数字时钟设计课程设计论文本科论文

西安建筑科技大学课程设计(论文)任务书专业班级:学生姓名:指导教师(签名):一、课程设计(论文)题目数字时钟设计二、本次课程设计(论文)应达到的目的培养自己逻辑设计能力和采用EDA方法进行设计的思想。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)1.设计一个具有时,分,秒,计数显示功能并以24小时循环计时和清零,调节小时、分钟功能及整点报时功能,整点报时的同时LED灯花样显示的数字时钟。

2. 完成全部流程:设计规范文档、模块设计、代码输入、功能仿真、约束与综合、布局布线、时序仿真、下载验证等。

四、应收集的资料及主要参考文献[1]潘松.EDA技术与VHDL(第4版).北京:清华大学出版社,2013.80~86.[2]阎石.数字电子技术基础. 北京:高等教育出版社,1998.46~54.[3]谭会生.EDA技术及应用.西安:西安电子科技大学出版社,2001.187~196.[4]潘松,王国栋.基于EDA技术CPLD/FPGA应用前景.北京:清华大学出版社,1993.35~74.[5]邢建平,曾繁泰.VHDL程序设计教程.北京:清华大学出版社,2005.38~47.五、审核批准意见教研室主任(签字)摘要日常生活中数字时钟非常常见,而数字时钟设计的实现方法有很多种,比如可以用单片机实现,也可以通过画电路控制原理图实现。

但是本次课程设计利用EAD技术实现,利用QuartusII软件设计一个数字时钟,进行电路设计和仿真调试,实现了计时,校时,清零,显示和整点报时等多种基本功能,并下载到实验仪器进行调试和验证。

在本次课程设计的过程中,根据设计要求和所要达到的目的,利用QuartusⅡ软件成功仿真出了数字时钟的各个信号状态的波形,并且在得到仿真波形的同时给出了分析结果。

关键词:数字时钟,VHDL,QuartusⅡ,仿真波形AbstractDigital clock in daily life is very common, and the realization of digital clock design method has many kinds, such as can be achieved with a single chip, can also be achieved by drawing circuit control schematic. But the curriculum design using ead technology design, using Quartus II software to design a digital clock, and debug the circuit design and simulation, has realized the time, school, school, clear, keep and the whole point timekeeping and other basic functions, and download to experiment instrument testing and verification. In the curriculum design process, according to the design requirements and to achieve the purpose of, using Quartus II software simulation waveforms of the digital clock of each state of the signal lamp, and get waveform simulation and analysis result is given.Keywords:Digital clock, VHDL, Quartus II, simulation waveforms目录一.绪论 (1)二.数字时钟设计原理 (2)2.1 QuartusⅡ软件介绍 (2)2.2 数字时钟设计原理 (2)三.设计要求和目的 (3)3.1 设计要求 (3)3.2 设计目的 (3)四.电路设计方案分析 (4)4.1 数字时钟总体设计状态图 (4)4.2 数字时钟总设计电路图 (5)4.3 方案论证分析 (5)4.4 子模块电路设计原理 (5)4.4.1 时、分、秒计数显示电路原理 (6)4.4.2 数码管扫描片选驱动模块 (11)4.4.3 整点报时驱动电路 (14)4.4.4 按键抖动消除电路模块 (16)五. 综合仿真测试过程及结果 (18)5.1 全程综合与编译 (18)5.2 仿真测试 (18)5.3 仿真波形图 (19)六. 总结 (22)参考文献 (23)一.绪论人类社会已进入到高度发达的信息化社会。

本科毕业设计论文--eda课程设计报告多功能数字钟设计

本科毕业设计论文--eda课程设计报告多功能数字钟设计

湖北大学物电学院EDA课程设计报告(论文)题目:多功能数字钟设计专业班级: 14微电子科学与工程*名:**时间:2016年12月20日指导教师:万美琳卢仕完成日期:2015年12月20日多功能数字钟设计任务书1.设计目的与要求了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解2.设计内容1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开;2,能用按键调时调分;3,能整点报时,到达整点时,蜂鸣器响一秒;4,拓展功能:秒表,闹钟,闹钟可调3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。

4.答辩在规定时间内,完成叙述并回答问题。

目录(四号仿宋_GB2312加粗居中)(空一行)1 引言 (1)2 总体设计方案 (1)2.1 设计思路 (1)2.2总体设计框图 (2)3设计原理分析 (3)3.1分频器 (4)3.2计时器和时间调节 (4)3.3秒表模块 (5)3.4状态机模块 (6)3.5数码管显示模块 (7)3.6顶层模块 (8)3.7管脚绑定和顶层原理图 (9)4 总结与体会 (11)多功能电子表摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能关键词:Verilog语言,多功能数字钟,数码管显示;1 引言QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。

利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然2 总体设计方案2.1 设计思路根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。

数字系统设计—基于EDA技术的多功能数字钟

数字系统设计—基于EDA技术的多功能数字钟

题目:数字系统设计基于EDA技术的多功能数字钟数字系统设计—基于EDA技术的多功能数字钟目录第 1 章EDA技术与数字系统设计 (2)1.1 引言 (2)1.2 EDA技术及其发展 (2)1.2.1 EDA简介 (2)1.2.2 EDA的设计流程 (3)1.2.3 EDA技术的应用 (3)1.2.4 EDA技术的发展前景 (4)1.3 常用的EDA开发工具 (5)1.3.1 集成的CPLD/FPGA开发工具 (6)1.3.2 HDL逻辑综合软件 (7)1.3.3 HDL仿真软件 (8)第 2 章多功能数字中的设计 (13)2.1 课题要求 (13)2.2 课题分析 (13)2.3 功能实现 (14)2.3.1 秒计时模块 (15)2.3.2 分计时模块 (17)2.3.3 小时计时模块 (18)2.3.4 校时校分模块 (20)2.3.5 整点报时模块 (21)2.3.6 时段控制模块 (22)2.3.7 连接各模块 (22)2.4 下载模块 (24)2.5 总结报告 (27)参考文献 (28)第一章EDA技术与数字系统设计1.1引言计算机技术和微电子工艺的发展,使得现代数字系统的设计和应用进入了新的阶段。

EDA技术在数字系统设计中的作用越来越重要,FPGA器件的更新换代也非常快,新的工具和新的设计方法不断推出,可编程逻辑器件不断增加新的模块,功能越来越强,硬件设计语言也顺应形势,推出新的标准,更加好用,更加便捷。

从应用领域来看,EDA技术已经渗透到各行各业,如上文所说,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA有应用。

另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。

如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装璜及各类效果图,汽车和飞机的模型、电影特技等领域。

1.2 EDA技术及其发展EDA是电子设计自动化(Electronic Design Automation)的缩写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一.设计说明 (1)I.功能说明 (1)II.功能简介 (1)二.总体方案分析 (3)三.各子模块设计原理 (3)I.脉冲分频模块 (3)II.时钟计时模块(包含校定和清零功能) (4)III.显示控制电路 (7)IV.显示模块和计时模块结合 (11)V.整点报时模块 (11)VI.闹钟模块 (13)四.调试与仿真 (17)I.脉冲发生模块 (17)II.计时电路 (18)III.仿真 (18)五.收获与体会 (19)六.附录 (20)一.设计说明I.功能说明:设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校时间,每逢整点,产生报时音报时。

系统框图如图1-1所示:图1-1 多功能数字钟系统框图II.功能简介此设计问题可分为主控电路、计数器模块和扫描显示三大部,主控电路中各种特殊功能的实现设计问题的关键。

用两个电平信号A、B进行模式选择,AB=00为模式0,系统为计时状态;AB=01为模式1,系统为手动校时状态;AB=10为模式2,系统为闹钟设置状态。

设置一个cd信号,当cd=00时,表示在手动校对时,选择调整时部分;当cd=01时,表示在手动校对时,选择调整分钟部分;。

当cd=10时,表示在手动校对时,选择调整秒部分设置一个change信号,在手动校时或闹钟设置模式下,每按一次,计数器加1。

设置一个reset信号,当reset=0时,整个系统复位;当reset=1时,系统进行计时或其他特殊功能操作。

设置一个闹钟设置信号reset1,当reset1=1时,对闹钟进行设置,当reset1=0时,关闭闹钟信号。

设置一个E信号,当E=0时,表示在手动校对时,选择调整时部分;当E=1时,表示在手动校对时,选择调整分钟部分设置状态显示信号(连发光二极管):LD_alert指示是否设置了闹铃功能;LD_h指示当前调整的是小时信号;LD_m指示当前调整的是分钟信号。

当闹钟功能设置后(LD_alert=1),系统应启动一个比较电路,当计时与预设闹铃时间相等时,启动闹铃声,直到关闭闹铃信号有效。

整点报时部分由分和秒计时同时为0(或60)启动,与闹铃共用一个扬声器驱动信号out。

系统计时时钟为clk=1Hz,选择另一时钟clk_lk=1kHz作为产生闹铃声、报时音的时钟信号。

主控电路状态表如表1-1所示。

硬件系统示意图如图1-2所示。

表 1-1 数字钟主控电路状态表图1-2 数字钟硬件系统示意图二.总体方案分析:整个电路有三大主体电路:1. 控制电路,2.脉冲电路,3,功能电路时钟电路首先要有输入脉冲,由于平台提供了脉冲发生器,就省去了脉冲发生器的设计,这里我们只需要设计一个分频器,得到我们需要的频率。

时钟的计时范围是00:00:00---23:59:59,所以我们需要设计模六十和模二十四的计数器组成时钟计时电路。

为了显示当前时钟时间,我们需要一个显示电路。

校分、校时、清零电路只需要输入一些控制信号给时钟计时电路即可,当然这些控制信号是由开关提供的。

要实现整点报时功能,一个报时控制电路是必不可少的。

这是只含基本功能的时钟电路所包含的子电路。

为了实现我们加入的闹钟功能,我们需要一个闹钟时间设定电路;闹钟时间保持电路;比较电路;蜂鸣器控制电路;闹表时间显示电路。

因为我们只含有一个数码显示器,一般状态下显示的是时钟,所以我们需要一个显示模式切换电路。

三.各子模块设计原理I.脉冲分频模块平台提供给我们的是48Mhz的脉冲,由于电路的需要,我们要把48Mhz的脉冲分频得到1Khz(蜂鸣器、动态显示)、1hz(时钟计数)的脉冲。

分频器的总电路图:图7II.时钟计时模块数字钟的计时电路包括秒位、分位、时位三部分。

其中秒位与分位均为60进制计时,时位为24进制计时。

这样我们只需设计模60和模24两种计数器即可。

秒向分进位,分向时进位,这样把两个模60和一个模24计数器级联就可以得到时钟的计时电路。

a.模60计数器电路图:图9为了防止冒险我们采用同步的方法设计计数器(1、同步时钟;2、同步置数)。

把进位信号送入使能端ENT(高电平有效),当第一片计数到1001(9)时,ENT端变成高电平,但74160是上升沿触发的,此时clk无上升沿第二片不计数,当CLK的上升沿到来,第一片回到0000状态,第二片计数器的值增加1。

第一片要设计为模10计数器,第二片要设计成模6计数器,因为74160本身就是模10计数器,所以第一片不要加别的控制电路。

第二片我们把Qc、Qa与非起来送入同步置数端LDN,当第二片的计数值为0101(5)时,LDN端低电平,但74160是同步置数的而且是上升沿有效,此时无上升沿不置数,当CLK的上升沿到来第一片会到0000状态,第二片置数为0000,这样计数器就实现了00000000----01011001的计数范围。

与外部的联系我们设置了6个端口,一个输出端(进位信号),五个输入端(保持、清零、脉冲切换、脉冲一、脉冲二),下面对6个端口一一分析:①保持:我们把开关接到ENP 端正常状态开关低电平,信号经过非门变成高电平,送入ENP(高电平有效)端,当开关变成高电平时,ENP端变成低电平,使能端无效此时停止计数,从而达到保持的目的。

②、清零:与保持端相似。

③脉冲1、脉冲2、脉冲切换开关:当脉冲切换开关为低电平时CLK2与其与后为低电平,其非与CLK1与后还是CLK1,两个与门的结果或起来为CLK1,当脉冲切换开关为高电平时,同样的分析此时选中CLK2 ④进位端:把Q1a、Q1d、Q2c、Q2a与非后当做进位信号,及计数值为01011001(59)时进位。

为什么选用非信号在总时钟电路时在分析。

b.模24计数器电路图:图11其基本思路与模60相差无几,差别只是在置数时不同,第一片在0—20连个阶段不要置数自己回0,但计到23时要置为0,需要外部控制电路。

所以我们要把Q1b、Qa1、Q2b (00100011—23)与非起来,把此信号作为置数信号。

封装后如下:图 12c.时钟计数电路(包含控制电路)图 13计数电路:脉冲由分频器提供,外部的总电路采用的是异步计数法(但达到了同步的效果),把进位信号连接起来。

秒位芯片CLC1接1HZ脉冲CLC2不接,分位芯片CLC1接秒位的进位信号脉冲CLC2接2HZ脉冲---用于校分,时位芯片CLC1接分位的进位信号脉冲CLC2接2HZ脉冲----用于校时。

由于进位信号是经过非后送出的,所以未到进位数值时为高电平,当达到进位制时低电平。

当秒位为0—58时,SCI为高,当秒位为59时,SCI为低,此时出现下降沿,分的计数器不计数,当秒位由59—变为0时,SCI又变为高电平,出现上升沿,触发分位的计数器,分位计数器加1,从而达到与同步计数方法相同的效果,而且不会出现冒险,这也就是为什么把原来的进位信号非后再送出的原因,分向秒进位分析方法相同。

控制电路:总共有三个外接开关---清零、校分、校时。

由于校分和校时切换的是脉冲开关的颤抖可能被芯片误认为是计数脉冲,从而造成不稳定,所以在这两个开关上加了防抖动装置(D触发器)。

图 14时钟端接的是2HZ 脉冲,D 触发器的功能是输入端是什么输出端便是什么,但需要上升沿去触发,没有上升沿即使输入端改变输出端也不变,当按下开关时发生颤抖(很短暂)这时无上升沿,输出端不改变,当开关稳定后而且上升沿也到来了输出端改变。

为了达到消颤的目的同时又不造成开关的延时这里我们引入的脉冲是2HZ 。

清零:把开关直接接到三个计数器芯片的清零端即可。

校分:开关值接到分位的K,为了达到校分时其他的保持这里还要把开关的值接到其他两个芯片的保持信号输入端。

校时:同校分的原理一样。

由于秒位在校分和校时时都要保持,所以要把两个保持信号或其来。

III .显示控制电路结构图:图15电路图:图16电路原理:本电路完成的是动态显示,动态显示不同于以往的静态显示,所谓静态显示,即每一个数码管由单独的七段显示译码器驱动,如要显示N位数,必需用N个七段显示译码器。

和静态显示不同,动态显示使用数据选择器的分时复用功能,将任意多位数码管的显示驱动,由一个七段显示译码器来完成。

这样即节省了器件,又提高了效率。

主体是一个24选4的数据选择器,路选信号是由一个模8计数器提供的,这样在一个周期里空余两个路选信号,由于用的是动态原理,信号停留时间很短一个周期1/1000秒,这样人眼根本看不出。

24选4的输出送到7447段译码器,以便在数码管上显示相应数值。

模8计数器的输出同时送到位选控制电路,由一个74138译码器构成,以便在任意时间只有一个位有效,这样在任意的一个时间段里由7447提供段显信号,74138提供位显信号,从而达到动态显示的目的。

这里只有24选4芯片是自己设计的,其他的软件都提供了。

a.24选4数据选择器的设计这里我们是自己依据实验参考书里的mux数据选择器的VHDL语句编写的。

语句如下:library ieee;use ieee.std_logic_1164.all;//声明库entity MUX24 is port(SL1,SL2,SL3,SL4:in std_logic;SH1,SH2,SH3,SH4:in std_logic;ML1,ML2,ML3,ML4:in std_logic;MH1,MH2,MH3,MH4:in std_logic;HL1,HL2,HL3,HL4:in std_logic;HH1,HH2,HH3,HH4:in std_logic;A1,A2,A3 :in std_logic;D1,D2,D3,D4 :out std_logic);//定义输入输出端口end MUX24;architecture P of MUX24 isSIGNAL SL:std_logic_vector(3 downto 0);SIGNAL SH:std_logic_vector(3 downto 0);SIGNAL ML:std_logic_vector(3 downto 0);SIGNAL MH:std_logic_vector(3 downto 0);SIGNAL HL:std_logic_vector(3 downto 0);SIGNAL HH:std_logic_vector(3 downto 0);SIGNAL D:std_logic_vector(3 downto 0);SIGNAL SEL:std_logic_vector(2 downto 0);//定义数组范围 beginSL<=SL1&SL2&SL3&SL4;SH<=SH1&SH2&SH3&SH4;ML<=ML1&ML2&ML3&ML4;MH<=MH1&MH2&MH3&MH4;HL<=HL1&HL2&HL3&HL4;HH<=HH1&HH2&HH3&HH4;SEL<=A1&A2&A3; //把相应的数值赋给对应的数组 with SEL select //用SEL的值作为选择信号 D<=SL when "000", //SEL(即输入A1、A2、A3)为000时输出秒低位 SH when "100",ML when "010",MH when "110",HL when "001",HH when "101","0000" when others;D1<=D(3) ; //把数组D的值赋给对应的输出端口 D2<=D(2);D3<=D(1);D4<=D(0);EDA(II) 多功能数字钟end P;封装:图17如外我们还用已有芯片设计了一个24选4的数据选择器:图 18其封装结果与VHDL语言编的基本相似。

相关文档
最新文档