EDA数字钟课程设计
- 格式:doc
- 大小:588.31 KB
- 文档页数:18
EDA课程设计数字钟(综合课程设计)一、设计要求(数字钟的功能)1、具有时、分显示功能(用数码管显示)。
以二十四小时循环计时。
2、具有清零,调节小时,分钟的功能。
3、具有整点(正小时)报时同时用多颗LED灯花样显示秒的功能。
4、运用多层次化设计方式,底层元件用VHDL编写,顶(最高)层元件用原理图法连线。
5、写出课程设计报告,包括设计源程序代码、顶层原理图及必要的文字说明。
二、目的1、掌握多位计数器相连的设计方法。
2、掌握十进制,六进制,二十四进制计数器的设计方法。
3、掌握扬声器的驱动及报时的设计。
4、LED灯的花样显示。
5、掌握CPLD技术的层次化设计方法。
三、硬件要求1、主芯片Altera EPF10K10LC84-4。
2、8个LED灯。
3、扬声器。
4、4位数码显示管。
5、8个按键开关(清零,调小时,调分钟)。
四、实验原理在同一CPLD芯片上集成了如下电路模块:1、时钟计数:秒……60进制BCD码计数。
分……60进制BCD码计数。
时……24进制BCD码计数。
同时整个计数器有清零、调时、调分功能。
在接近整数时能提供报时信号。
2、扬声器在整点时有报时驱动信号产生(响声持续多长时间?)。
3、LED灯按个人口味在整点时有花样显示信号产生。
五、实验内容及步骤1、根据电路特点,运用层次设计概念设计。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
加深层次化设计概念。
2、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。
六、顶层原理图参考下图所示(模块化设计)。
第一篇:eda课程设计数字钟一、设计要求设计一个数字钟,具体要求如下:1、具有时、分、秒计数显示功能,以24小时循环计时。
2、具有清零、校时、校分功能。
3、具有整点蜂鸣器报时以及LED花样显示功能。
二、设计方案根据设计要求,数字钟的结构如图8-3所示,包括:时hour、分minute、秒second计数模块,显示控制模块sel_clock,七段译码模块deled,报时模块alert。
三、VHDL程序library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; useIEEE.STD_LOGIC_UNSIGNED.ALL;---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM;--use UNISIM.VComponents.all;entityddz is port(rst,clk: in std_logic; hour_h: out std_logic_vector( 6 downto 0); hour_l: outstd_logic_vector( 6 downto 0); min_h: out std_logic_vector( 6 downto 0);min_l: out std_logic_vector( 6 downto 0);sec_h: out std_logic_vector( 6 downto 0);sec_l: out std_logic_vector( 6 downto 0)); endddz;architecture Behavioral of ddz is signalcnt: std_logic_vector(15 downto 0); signalsec_h_in: std_logic_vector( 3 downto 0); signalsec_l_in: std_logic_vector( 3 downto 0); signalmin_h_in: std_logic_vector( 3 downto 0); signalmin_l_in: std_logic_vector( 3 downto 0); signalhour_h_in: std_logic_vector(3 downto 0); signalhour_l_in: std_logic_vector(3 downto 0);signalclk_s,clk_m,clk_h: std_logic; begin process(rst,clk) begin if rst='0' then sec_h_in'0');sec_l_in'0');clk_msec_l_inifsec_h_in=5 thensec_h_inclk_melsesec_h_inclk_mend if; else sec_l_inclk_mend if; end if; end process;process(rst,clk_m) begin if rst='0' then-- min_h_in'0');min_l_in'0'); -- clk_hmin_l_inmin_h_inclk_mend if; else min_l_inend if; end if; end process;process(rst,clk_n) begin if rst='0' then-- hour_h_in'0');hour_l_in'0'); -- clk_hhour_l_inhour_h_inclk_nend if; else hour_l_inend if; end if; end process;process(sec_l_in) begin casesec_l_in iswhen "0000" =>sec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lsec_lprocess(sec_h_in) begin casesec_h_in iswhen "0000" =>sec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hsec_hprocess(min_l_in) begin casemin_l_in iswhen "0000" =>min_lmin_lmin_lwhen "0011" =>min_lmin_lmin_lmin_lmin_lmin_lmin_lmin_lprocess(min_h_in) begin casemin_h_in iswhen "0000" =>min_hmin _h min _hmin _hmin _h min _hmin _hmin _hmin _hmin _hmin _hend case; end process;process(hour_l_in) begin casehour_l_in iswhen "0000" =>hour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lhour_lprocess(hour_h_in) begin casehour_h_in iswhen "0000" =>hour_hhour_hhour_hhour_h hour _h hour _h hour _h hour _h hour _hhour_h hour _h四、VHDL仿真结果五、课程设计心得通过这次课程设计,有效得巩固了课本所学的知识,而且通过上机仿真不断发现问题并及时改正,加深了我们对该课程设计的印象。
eda数字时钟课程设计论文一、课程目标知识目标:1. 理解数字时钟的基本原理,掌握EDA工具的使用方法。
2. 学习数字时钟设计的基本流程,包括时钟信号生成、分频、计数等模块的设计与实现。
3. 了解数字时钟的显示原理,掌握七段显示译码器的应用。
技能目标:1. 培养学生运用所学知识进行数字电路设计的能力。
2. 培养学生运用EDA工具进行电路仿真、调试的能力。
3. 培养学生团队协作、沟通表达的能力。
情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和动手能力。
2. 培养学生严谨的科学态度,注重实验数据的真实性。
3. 增强学生的自信心,勇于面对和解决问题。
本课程针对高年级学生,结合学科特点和教学要求,将目标分解为具体的学习成果。
课程性质为实践性较强的设计课,注重培养学生的实际操作能力和团队合作精神。
通过本课程的学习,学生能够掌握数字时钟设计的基本方法,提高电子设计能力,培养良好的情感态度价值观。
二、教学内容本课程教学内容主要包括以下三个方面:1. 数字时钟原理及设计流程- 了解数字时钟的基本原理,包括时钟信号、分频器、计数器等组成部分。
- 学习数字时钟设计的基本流程,结合教材相关章节,进行实例分析。
2. EDA工具的使用- 介绍EDA工具的基本功能,如原理图绘制、仿真、PCB设计等。
- 结合教材,学习使用EDA工具进行数字时钟电路的设计与仿真。
3. 数字时钟电路设计与实现- 分析并设计数字时钟的各个功能模块,如时钟信号生成、分频、计数、显示等。
- 结合教材章节,进行具体电路设计,列举所需元器件及参数。
教学进度安排如下:1. 第一周:数字时钟原理及设计流程学习。
2. 第二周:EDA工具的使用方法及操作练习。
3. 第三周:数字时钟电路设计与实现,包括各功能模块设计和整体调试。
教学内容注重科学性和系统性,结合教材章节,使学生能够循序渐进地掌握数字时钟的设计方法。
同时,通过实践操作,提高学生的动手能力和实际应用能力。
edal数字钟课程设计一、课程目标知识目标:1. 学生能够理解数字时钟的基本原理,掌握edal数字钟的组成和功能。
2. 学生能够运用所学知识,分析并解释edal数字钟显示时间的原理。
3. 学生能够掌握数字时钟的编程方法,实现edal数字钟的基本功能。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的edal数字钟电路。
2. 学生能够通过编程,实现edal数字钟的显示、校时和闹钟功能。
3. 学生能够运用问题解决策略,调试并优化edal数字钟的程序。
情感态度价值观目标:1. 培养学生对电子技术和编程的兴趣,激发他们探索未知领域的热情。
2. 培养学生的团队合作意识,学会在小组合作中互相学习、共同进步。
3. 培养学生严谨、细心的科学态度,养成认真观察、思考问题的习惯。
课程性质:本课程为信息技术与电子技术的融合课程,以项目式教学为主,注重培养学生的实践能力和创新能力。
学生特点:五年级学生具有一定的电子技术基础和编程能力,对新鲜事物充满好奇心,善于动手实践。
教学要求:结合学生特点,采用任务驱动法,引导学生主动探究,注重理论与实践相结合,培养学生解决问题的能力。
通过课程目标的分解,使学生在完成具体任务的过程中,达到预期学习成果,为后续教学设计和评估提供依据。
二、教学内容本章节教学内容主要包括以下三个方面:1. 数字时钟基础知识:- 了解数字时钟的组成,包括时钟芯片、显示屏、电阻、电容等元件。
- 学习数字时钟的工作原理,掌握edal数字钟的基本功能。
2. edal数字钟编程与搭建:- 学习edal数字钟的编程语言和编程方法,掌握基本指令和程序结构。
- 按照教材章节,逐步完成edal数字钟的搭建,包括电路连接、程序编写和功能调试。
教学内容安排如下:- 第一章:数字时钟概述,介绍数字时钟的原理和组成。
- 第二章:edal数字钟编程基础,学习编程语言和基本指令。
- 第三章:edal数字钟电路搭建,学习电路连接和元件使用。
EDA课程设计报告设计题目:数字时钟的设计班级:电气工程及其自动化姓名:学号:日期:2014年6月15日目录摘要一、课程设计任务及要求 (3)1.1实验目的 (3)1.2功能设计 (4)二、整体设计思想 (4)2.1性能指标及功能设计 (4)2.2总体方框图 (4)三、详细设计 (5)3.1数字时钟的结构: (5)3.2控制模块的结构 (5)3.3.1按键处理模块 (6)3.3.2定时时钟模块 (6)3.3.3扫描时钟模块 (6)3.3.4定时计数模块 (6)3.3.5显示控制模块 (7)四、主程序 (7)五、实验步骤 (14)5.1工程建立及存盘14 5.2时序仿真14 5.3引脚锁定14 5.4硬件测试15 5.5实验结果15结束语15参考文献16EDA技术实现的数字电子时钟设计作者:指导老师:摘要EDA技术在硬件实现方面融合了大规模集成电路制造技术,IC版图设计技术、ASIC测试与封装技术、FPGA /CPLD编程下载技术、自动检测技术等;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课程设计数字钟设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握数字钟的基本原理和设计流程。
2. 学生能描述数字钟的各个模块功能,如计时、显示、调整等,并理解它们之间的协同工作方式。
3. 学生掌握Verilog等硬件描述语言的基本语法,能够利用EDA工具进行基本的数字电路设计和仿真。
技能目标:1. 学生能够运用所学知识,使用EDA工具设计简单的数字时钟电路,并进行功能仿真。
2. 学生通过小组合作,培养团队协作能力和问题解决能力,提高工程实践和项目管理的初步技能。
3. 学生能够运用批判性思维分析设计过程中的问题,提出优化方案,并对设计方案进行改进。
情感态度价值观目标:1. 学生通过数字钟的设计实践,培养对电子工程领域的兴趣和探究精神,激发创新意识和创造潜能。
2. 学生在学习过程中,形成严谨的科学态度和良好的工程意识,认识到技术对日常生活的影响。
3. 学生在小组合作中,学会相互尊重和沟通,培养积极向上的团队精神,增强集体荣誉感。
课程性质分析:本课程为实践性较强的电子设计课程,要求学生将理论知识与实际操作相结合,通过动手实践,深化对电子设计自动化原理的理解。
学生特点分析:针对高中年级学生,已有一定的电子基础和逻辑思维能力,对新鲜事物充满好奇心,具备自主学习的能力。
教学要求:课程要求教师通过引导和启发,帮助学生将抽象的理论具体化,通过项目式的教学方法,使学生能够将所学知识应用于实际问题的解决中。
二、教学内容本课程教学内容围绕数字钟设计的全过程,分为以下三个部分:1. 理论知识学习:- 电子设计自动化(EDA)基本概念与原理;- 数字时钟的组成、工作原理及各模块功能;- Verilog硬件描述语言的基本语法及使用方法;- 相关电子元器件的特性和应用。
2. 实践操作部分:- 使用EDA工具(如ModelSim、Quartus等)进行基本操作;- 设计数字钟的各个模块,并进行功能仿真;- 对设计过程中出现的问题进行分析,提出优化方案;- 完成数字钟整体设计与调试。
eda数字电子钟课程设计一、课程目标知识目标:1. 让学生理解数字电子时钟的基本原理,掌握EDA技术及其在数字电子时钟中的应用。
2. 使学生掌握数字电子时钟的设计流程,包括硬件设计、软件编程及系统调试。
3. 让学生掌握时钟信号的产生、计数、显示等模块的工作原理和电路设计。
技能目标:1. 培养学生运用EDA工具(如Protel、Multisim等)进行电路设计与仿真测试的能力。
2. 培养学生具备编程和调试数字电子时钟程序的基本技能,提高实际动手操作能力。
3. 培养学生团队协作、沟通表达、问题分析和解决的能力。
情感态度价值观目标:1. 培养学生对电子工程学科的兴趣,激发学生学习热情,形成积极的学习态度。
2. 培养学生具有创新意识和实践精神,鼓励学生勇于尝试,不断优化设计方案。
3. 培养学生关注社会发展,了解电子产品在生活中的应用,提高社会责任感和使命感。
分析课程性质、学生特点和教学要求,本课程目标将分解为以下具体学习成果:1. 学生能够独立完成数字电子时钟的电路设计和程序编写。
2. 学生能够运用EDA工具进行电路仿真测试,分析并解决设计中出现的问题。
3. 学生能够以团队形式进行项目汇报,展示设计成果,接受提问并给予解答。
4. 学生通过课程学习,提升对电子工程的兴趣,树立正确的价值观和人生观。
二、教学内容根据课程目标,本章节教学内容主要包括以下三个方面:1. 数字电子时钟原理及EDA技术概述- 时钟信号的产生与计数原理- 数字电子时钟的组成与工作原理- EDA技术简介及其在数字电子时钟设计中的应用2. 数字电子时钟设计与实现- 硬件设计:时钟信号电路、计数器电路、显示电路等- 软件编程:基于单片机的程序编写,实现时钟功能- 系统调试:电路测试、程序调试及优化3. 教学实践与项目汇报- 实践操作:运用EDA工具进行电路设计与仿真测试- 项目实施:分组进行数字电子时钟设计,培养学生的团队协作能力- 项目汇报:展示设计成果,锻炼学生的沟通表达和问题分析解决能力教学内容安排和进度如下:1. 第一周:数字电子时钟原理及EDA技术概述2. 第二周:硬件设计与软件编程基础3. 第三周:系统调试与优化4. 第四周:实践操作与项目实施5. 第五周:项目汇报与评价教学内容与教材章节关联如下:1. 《电子技术基础》第三章:数字电路基础2. 《单片机原理与应用》第四章:单片机程序设计3. 《EDA技术及应用》第二章:EDA工具使用与电路设计实例三、教学方法针对本章节内容,采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:用于对基本原理和概念进行系统讲解,如数字电子时钟的工作原理、EDA技术概述等。
课程设计说明书题目:闹钟学院(系):年级专业:学号:学生姓名:指导教师:教师职称:目录第1章摘要 (1)第2章设计方案……………………………………………………………………………2.1 VHDL简介……………………………………………………………………………2.2 设计思路……………………………………………………………………………第3章模块介绍……………………………………………………………………………第4章 Verilog HDL设计源程序…………………………………………………………第5章波形仿真图…………………………………………………………………………第6章管脚锁定及硬件连线………………………………………………………………心得体会 (17)参考文献 (18)第一章摘要在当今社会,数字电路产品的应用在我们的实际生活中显得越来越重要,与我们的生活联系愈加紧密,例如计算机、仪表、电子钟等等,使我们的生活工作较以前的方式更加方便、完善,带来了很多的益处。
在此次EDA课程,我的设计课题是闹钟,使用VHDL语言进行编程完成。
报告书主要由设计方案、模块介绍、设计源程序、仿真波形图和管脚锁定及硬件连线四部分组成。
设计方案主要介绍了我对于设计课题的大致设计思路,之后各个部分将会详细介绍设计组成及程序。
第二章设计方案§2.1 VHDL简介数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。
EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。
EDA课程设计报告一·设计任务使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。
二·设计要求除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。
a)具有时,分,秒,计数显示功能,以24小时循环计时;b)具有时间清零功能;c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。
d)具有闹钟功能,能预设闹钟时间,精确到秒。
整个数字钟只设一个时钟输入端口,所需不同频率信号在内部分频实现。
(LED扫描频率设为50Hz以上)。
三·设计方案设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。
计时模块:秒模块,分模块,时模块。
闹钟模块,显示模块,控制模块。
四·模块端口设置1. 分频模块输入:clkin : 本实验输入为50MHz晶振输出:clk : 为显示模块及始终调节提供1KHz脉冲clkt: 为计数器模块提供1Hz脉冲2. 计时模块m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。
num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。
counta,count1 是手动调节时间。
Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。
sec1,min1,hour1 输出的是计时的秒,分,时。
3.闹钟模块原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。
countb,count2 是手动调节闹钟时间。
amin,ahour 是输出的闹钟的分钟和小时4. 控制模块m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的暂停与开始。
多功能数字时钟设计说明: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多功能数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本原理,掌握EDA工具的使用方法,并运用相关电路知识设计多功能数字时钟。
2. 学生能够运用所学知识,分析并解释数字时钟电路中各个部分的功能及其相互关系。
3. 学生了解数字时钟在实际生活中的应用,理解其重要性。
技能目标:1. 学生能够运用EDA工具进行电路设计,具备实际操作能力。
2. 学生通过动手实践,培养解决实际问题的能力,提高创新意识和团队协作能力。
3. 学生能够运用所学知识,对数字时钟电路进行调试和优化。
情感态度价值观目标:1. 学生在学习过程中,培养对电子技术的兴趣,激发创新精神。
2. 学生通过团队合作,学会尊重他人,培养良好的沟通能力和团队精神。
3. 学生认识到科技发展对社会进步的重要性,树立正确的价值观。
课程性质:本课程为实践性较强的课程,结合理论教学,注重培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的电子技术基础知识,对实践操作有较高的兴趣。
教学要求:教师需结合理论教学,指导学生进行实践操作,注重启发式教学,引导学生主动探究,提高学生的综合能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际生活中,提高学生的创新意识和实践能力。
二、教学内容本课程教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本工作原理,包括时钟信号、计数器、显示驱动等组成部分。
2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等。
3. 电路设计与实现:指导学生运用EDA工具设计多功能数字时钟电路,包括时钟信号电路、分频器、计数器、显示驱动和按键控制等模块。
4. 电路调试与优化:教授学生如何对设计的数字时钟电路进行调试,找出问题并进行优化。
教学内容与教材关联性如下:1. 《电子技术基础》中关于数字电路的基础知识,为理解数字时钟原理提供理论支持。
eda课程设计 数字时钟一、课程目标知识目标:1. 学生能理解数字时钟的基本概念和原理,掌握数字时钟的组成、功能及使用方法。
2. 学生能够运用所学知识,分析并设计简单的数字时钟电路。
3. 学生了解EDA(电子设计自动化)软件在数字时钟设计中的应用。
技能目标:1. 学生能够运用EDA软件完成数字时钟电路的绘制、仿真和调试。
2. 学生能够运用逻辑电路知识,设计并实现数字时钟的基本功能,如时、分、秒显示。
3. 学生能够通过团队合作,解决数字时钟设计过程中遇到的问题。
情感态度价值观目标:1. 学生培养对电子设计技术的兴趣,提高创新意识和动手能力。
2. 学生在学习过程中,养成积极思考、主动探究的良好习惯。
3. 学生通过团队合作,培养沟通协作能力和集体荣誉感。
课程性质:本课程为实践性课程,以学生动手实践为主,注重培养学生的实际操作能力和创新能力。
学生特点:本课程面向初中生,学生对电子技术有一定了解,具备基本的逻辑思维能力,但实际操作能力有待提高。
教学要求:教师应结合学生特点,采用任务驱动法、分组合作法等教学方法,引导学生主动参与,确保课程目标的实现。
同时,注重过程评价和成果评价,全面评估学生的学习成果。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
具体内容包括:1. 数字时钟基础知识:介绍数字时钟的原理、组成及功能,对应教材第3章“数字电路基础”。
- 时钟信号产生- 计数器原理- 显示技术2. EDA软件应用:学习EDA软件的使用方法,绘制数字时钟电路图,对应教材第5章“EDA技术及其应用”。
- EDA软件操作- 电路图绘制- 电路仿真与调试3. 数字时钟电路设计:运用逻辑电路知识,设计数字时钟电路,对应教材第4章“组合逻辑电路”。
- 逻辑门电路- 时钟分频器设计- 计数器设计- 显示控制电路4. 数字时钟制作与调试:分组合作,动手实践,完成数字时钟的制作与调试,对应教材第6章“数字电路实践”。
eda课程设计数字时钟设计一、教学目标本课程旨在通过数字时钟设计项目,让学生掌握EDA(电子设计自动化)工具的基本使用,理解数字电路的设计原理,培养学生的动手实践能力和创新能力。
具体目标如下:1.知识目标:•掌握数字电路的基本概念和设计方法。
•学习常用的EDA工具,如Multisim、Proteus等,并能够运用它们进行数字电路的设计和仿真。
•了解时钟信号的产生和应用,理解RTC(实时时钟)的工作原理。
2.技能目标:•能够运用EDA工具设计简单的数字时钟电路。
•能够进行电路仿真,调试并优化设计。
•学会阅读和理解电子电路图,培养良好的电子工程实践能力。
3.情感态度价值观目标:•培养学生对电子科技的兴趣,增强其科技意识。
•培养学生团队协作精神和自主学习能力。
•培养学生解决问题的能力,增强其面对挑战的信心。
二、教学内容本课程的教学内容主要包括数字电路基础、EDA工具的使用、数字时钟设计原理和RTC的应用。
具体安排如下:1.数字电路基础:•数字逻辑门电路•组合逻辑电路•时序逻辑电路2.EDA工具的使用:•Multisim和Proteus的基本操作•数字电路图的绘制和仿真3.数字时钟设计原理:•常见的时钟信号生成电路•数字时钟电路的设计方法4.RTC的应用:•RTC的工作原理•RTC在数字时钟中的应用三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:用于讲解数字电路基础和EDA工具的使用方法。
2.案例分析法:通过分析具体的数字时钟设计案例,让学生理解数字时钟的设计过程。
3.实验法:让学生动手实践,使用EDA工具进行数字时钟的设计和仿真。
四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:选用《数字电路与EDA技术》作为主要教材。
2.参考书:提供《EDA技术教程》等参考书籍,供学生课后自主学习。
3.多媒体资料:制作课件和教学视频,用于课堂讲解和课后复习。
4.实验设备:提供计算机、EDA工具软件、电路仿真实验板等,供学生进行实验和实践。
eda课程设计数字时钟调试一、课程目标知识目标:1. 学生能够理解数字时钟的基本原理,掌握EDA工具进行数字电路设计的基本流程。
2. 学生能够运用数字逻辑设计原理,完成对数字时钟的调试和优化。
3. 学生能够描述数字时钟各个模块的功能和相互关系,如秒脉冲发生器、计数器、译码器等。
技能目标:1. 学生能够运用所学知识,独立完成数字时钟的设计和调试。
2. 学生能够通过EDA工具进行电路仿真,验证设计的正确性和可行性。
3. 学生能够解决在数字时钟调试过程中遇到的问题,提高实际操作能力和问题解决能力。
情感态度价值观目标:1. 培养学生勇于探索、善于合作的精神,增强对电子设计的兴趣和热情。
2. 培养学生严谨的科学态度,注重细节,提高审美观念和产品质量意识。
3. 引导学生关注数字时钟在实际生活中的应用,认识到科技对生活的影响,培养社会责任感和创新意识。
课程性质:本课程为实践性较强的课程,结合理论知识和实际操作,培养学生的动手能力和创新能力。
学生特点:本课程面向高年级学生,学生已具备一定的数字电路基础知识,具有较强的学习能力和独立思考能力。
教学要求:教师需引导学生运用所学知识解决实际问题,注重培养学生的实际操作能力和团队协作能力。
在教学过程中,关注学生的个体差异,提供有针对性的指导,确保课程目标的实现。
通过课程学习,使学生能够将理论知识与实际应用相结合,为未来的电子设计打下坚实基础。
二、教学内容本课程教学内容以数字时钟的设计与调试为核心,结合以下章节内容进行:1. 数字时钟原理及设计流程:讲解数字时钟的基本原理,包括秒脉冲发生器、计数器、译码器等模块的工作原理及相互关系。
分析EDA工具在数字电路设计中的应用,明确设计流程。
2. 数字时钟电路设计:引导学生运用所学知识,使用EDA工具进行数字时钟电路设计,包括各个模块的搭建、连接及参数设置。
3. 数字时钟电路仿真与调试:介绍电路仿真方法,指导学生进行数字时钟电路的仿真验证,找出并解决设计中存在的问题。
eda建议时钟课程设计一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握时钟电路的功能和原理。
2. 学生能描述时钟信号在数字系统中的作用,了解不同类型的时钟及其特点。
3. 学生掌握使用EDA工具进行时钟电路设计的基本步骤和方法。
技能目标:1. 学生能运用所学知识,利用EDA工具设计简单的时钟电路。
2. 学生通过小组合作,解决时钟电路设计过程中遇到的问题,培养团队协作和问题解决能力。
3. 学生能对设计完成的时钟电路进行测试、优化,提高电路性能。
情感态度价值观目标:1. 学生培养对电子设计自动化技术的兴趣,激发创新意识和探索精神。
2. 学生通过实践操作,体验电子设计的乐趣,增强自信心和成就感。
3. 学生认识到时钟电路在现代电子技术中的重要性,培养对科技发展的关注和责任感。
课程性质:本课程为实践性较强的电子设计课程,旨在让学生掌握时钟电路的基本原理和设计方法。
学生特点:学生处于高年级阶段,具有一定的电子基础和动手能力,对新技术充满好奇心。
教学要求:注重理论与实践相结合,鼓励学生动手实践,培养解决实际问题的能力。
通过小组合作,提高学生的沟通协作能力。
在教学过程中,关注学生的个体差异,提供个性化指导。
二、教学内容1. 时钟电路基本原理:讲解时钟信号的概念、时钟电路的作用及其在数字系统中的应用。
- 教材章节:第三章“时钟与复位电路”- 内容列举:时钟信号的定义、时钟电路的功能、时钟源、时钟分频与倍频技术。
2. EDA工具介绍:介绍EDA工具的基本功能、操作流程以及在进行时钟电路设计时的注意事项。
- 教材章节:第二章“电子设计自动化工具”- 内容列举:EDA工具的分类、主要功能、操作界面、设计流程。
3. 时钟电路设计方法:讲解如何利用EDA工具进行时钟电路设计,包括设计流程、关键步骤和技巧。
- 教材章节:第四章“时钟电路设计”- 内容列举:设计流程图、原理图绘制、仿真分析、布局与布线、PCB设计。
燕山大学EDA课程设计报告书题目:数字钟的设计姓名:常勤班级: 05级电子信息工程3班学号: 050104020083 成绩:一、设计题目及要求设计题目:数字钟的设计要求:1.输入10HZ的时钟;(提示:对已有kHz频率时钟进行分频)2.能显示时、分、秒,24小时制;3.时和分有校正功能;注意:硬件资源的节约,否则器件内资源会枯竭。
二、设计过程及内容(1)设计方案数字钟主要由五部分组成,其中包括分频部分、计数部分、调时部分、扫描电路部分和数字显示部分。
分频部分由4片10进制组成,其作用是将9375K赫兹的时钟脉冲分频为10赫兹。
10赫兹转换为1赫兹的脉冲,为计数及调时部分提供脉冲。
计数及调时部分分别为两片60进制器和一片24进制器及与门,或门组成,分别为计数和校正功能的核心。
扫描部分由4片74151组成和一片8进制计数器组成,其作用是选择数据和7449输入端提供脉冲。
显示部分由试验箱提供。
(2)电路结构总的电路可由3大模块组成:模块1:分频并选频模块电路由四片74160组成,将其连接为9375进制计数器。
将93.75K赫兹的时钟频率分频。
分频后再经过十进制计数器的进位信号为计时电路中秒的60进制计数器提供时钟频率。
电路图如下:仿真波形如下:模块2:计时及调整模块该模块具备计数功能和调整功能。
首先计数功能由一片24进制计数器和两片60进制计数器组成,分别来计数小时数,分钟数和秒数。
首先,24进制计数器:该电路又两片74160来实现,采用整体置数法。
电路如下:仿真波形如下:②60进制计数器,也是由两片74160构成,实现计60位后向前输出一个进位的功能,电路图如下:仿真波形如下:③调整电路,将24进制计数器和两片60进制计数器连接,将两片60进制计数器的进位端和两片触发器分别连接上与门,使与门的输出端连接上或门后,接入时钟信号输入端,电路图如下:模块3:扫描电路模块,其电路主体是由4片74151选择电路状态,并将选择出的数据输入7449芯片,并将输出连入数码管显示输入端。
琼州学院电子信息工程学院课程设计报告课程名称:EDA技术与应用设计题目:数字钟设计专业: 1 0通信工程班级:一班学生姓名:高天禄学号:10216025起止日期:2012年12月指导教师:刘冬数字钟设计(高天禄琼州学院海南三亚 572000 )摘要: 系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。
利用VHDL语言完成了数字钟的设计。
该数字钟能实现时、分、秒计数的显示功能,且以24小时循环计时。
整个系统结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。
关键字:数字钟;EDA;VHDL;一、设计要求1.1、时钟功能设计一个具有时、分、秒计时的数字钟电路,计时采用24小时制。
小时、分钟可调的数字钟。
1.2、准确性要求设计出的时钟电路要确保高精度的要求,每天的误差不得超过一秒。
二、数字钟的基本原理1、具有时、分、秒计数显示功能,以24小时循环计时。
其中SECOND模块为60进制BCD码计数电路,实现秒计时功能;MINUTE模块为60进制BCD码计数电路,实现分计时功能;HOUR模块为24进制BCD码计数电路,实现小时计时功能。
2、有驱动8位七段共阴极扫描数码管的片选驱动信号输出和七段码输出。
SELTIME模块产生8位数码管的扫描驱动信号SEL[2..0]和时钟显示数据(动态显示)DAOUT[3..0]。
DELED模块则为数码管显示时钟数据的7段译码电路。
三、方案论证3.1、数字钟的基本组成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路,其基本组成电路如下图所示:图3.1 数字钟原理图图(1)中,秒冲发生器产生秒脉冲,作为图中各个计数器的脉冲信号。
分、秒计数器要求设计为六十进制计数器;时计数器则设计为二十四进制计数器。
时、分、秒的计时结果分别送入译码器中,经译码器翻译后,共由六个LED数码管显示出结果。
因此,使用计数器作为计时电路是可以实现的。
四、各功能模块4.1、小时计时功能实现程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(reset,clk : in std_logic;daout : out std_logic_vector(7 downto 0)); end hour;architecture behav of hour issignal count : std_logic_vector(3 downto 0); signal counter : std_logic_vector(3 downto 0); beginp1: process(reset,clk)beginif reset='0' thencount<="0000";counter<="0000";elsif(clk'event and clk='1') thenif (counter<2) thenif (count=9) thencount<="0000";counter<=counter + 1;elsecount<=count+1;end if;elseif (count=3) thencount<="0000";counter<="0000";elsecount<=count+1;end if;end if;end if;end process;daout(7 downto 4)<=counter;daout(3 downto 0)<=count;end behav;图4.1 时计时功能模块4.2、分计时功能实现程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(reset,clk,sethour: in std_logic;daout : out std_logic_vector(7 downto 0);enhour : out std_logic);end minute;architecture behav of minute issignal count : std_logic_vector(3 downto 0); signal counter : std_logic_vector(3 downto 0); signal carry_out1 : std_logic;signal carry_out2 : std_logic;beginp1: process(reset,clk)beginif reset='0' thencount<="0000";counter<="0000";elsif(clk'event and clk='1') thenif (counter<5) thenif (count=9) thencount<="0000";counter<=counter + 1;elsecount<=count+1;end if;carry_out1<='0';elseif (count=9) thencount<="0000";counter<="0000";carry_out1<='1';elsecount<=count+1;carry_out1<='0';end if;end if;end if;end process;p2: process(clk)beginif(clk'event and clk='0') thenif (counter=0) thenif (count=0) thencarry_out2<='0';end if;elsecarry_out2<='1';end if;end if;end process;daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enhour<=(carry_out1 and carry_out2) or sethour; end behav;图4.2 分计时模块4.3、秒计时功能实现程序如下;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(reset,clk,setmin : in std_logic;daout : out std_logic_vector(7 downto 0); enmin : out std_logic);end second;architecture behav of second issignal count : std_logic_vector(3 downto 0); signal counter : std_logic_vector(3 downto 0); signal carry_out1 : std_logic;signal carry_out2 : std_logic;beginp1: process(reset,clk)beginif reset='0' thencount<="0000";counter<="0000";elsif(clk'event and clk='1') thenif (counter<5) thenif (count=9) thencount<="0000";counter<=counter + 1;elsecount<=count+1;end if;carry_out1<='0';elseif (count=9) thencount<="0000";counter<="0000";carry_out1<='1';elsecount<=count+1;carry_out1<='0';end if;end if;end if;end process;daout(7 downto 4)<=counter;daout(3 downto 0)<=count;enmin<=carry_out1 or setmin;end behav;图4.3 秒计时模块4.4、alert模块实现程序如下:Library IEEE;use IEEE.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity alert isPort(clkspk : in std_logic;second : in std_logic_vector(7 downto 0); minute : in std_logic_vector(7 downto 0); speak : out std_logic;lamp : out std_logic_vector(8 downto 0)); end alert;architecture behav of alert issignal divclkspk2 : std_logic;beginp1: process(clkspk)beginif (clkspk'event and clkspk='1') thendivclkspk2<=not divclkspk2;end if;end process;p2: process(second,minute)beginif (minute="01011001") thencase second iswhen "01010001"=>lamp<="000000001";speak<=divclkspk2; when "01010010"=>lamp<="000000010";speak<='0';when "01010011"=>lamp<="000000100";speak<=divclkspk2; when "01010100"=>lamp<="000001000";speak<='0';when "01010101"=>lamp<="000010000";speak<=divclkspk2; when "01010110"=>lamp<="000100000";speak<='0';when "01010111"=>lamp<="001000000";speak<=divclkspk2; when "01011000"=>lamp<="010000000";speak<='0';when "01011001"=>lamp<="100000000";speak<=clkspk; when others=>lamp<="000000000";end case;end if;end process;end behav;图4.4 alert模块4.5、DELED模块实现程序如下;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DELED ISPORT(S: IN STD_LOGIC_VECTOR(3 DOWNTO 0); A,B,C,D,E,F,G,H: OUT STD_LOGIC); END DELED;ARCHITECTURE BEHAV OF DELED ISSIGNAL DATA:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL DOUT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINDATA<=S;PROCESS(DATA)BEGINCASE DATA ISWHEN "0000"=>DOUT<="00111111";WHEN "0001"=>DOUT<="00000110";WHEN "0010"=>DOUT<="01011011";WHEN "0011"=>DOUT<="01001111";WHEN "0100"=>DOUT<="01100110";WHEN "0101"=>DOUT<="01101101";WHEN "0110"=>DOUT<="01111101";WHEN "0111"=>DOUT<="00000111";WHEN "1000"=>DOUT<="01111111";WHEN "1001"=>DOUT<="01101111";WHEN "1010"=>DOUT<="01110111";WHEN "1011"=>DOUT<="01111100";WHEN "1100"=>DOUT<="00111001";WHEN "1101"=>DOUT<="01011110";WHEN "1110"=>DOUT<="01111001";WHEN "1111"=>DOUT<="01000000";WHEN OTHERS=>DOUT<="00000000";END CASE;END PROCESS;H<=DOUT(7);G<=DOUT(6);F<=DOUT(5);E<=DOUT(4);D<=DOUT(3);C<=DOUT(2);B<=DOUT(1);A<=DOUT(0);END BEHAV;图4.5 deled模块4.6、seltime模块实现程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity seltime isport(ckdsp : in std_logic;reset : in std_logic;second : in std_logic_vector(7 downto 0); minute : in std_logic_vector(7 downto 0); hour : in std_logic_vector(7 downto 0); daout : out std_logic_vector(3 downto 0); sel : out std_logic_vector(2 downto 0)); end seltime;architecture behav of seltime issignal sec : std_logic_vector(2 downto 0); beginprocess(reset,ckdsp)beginif(reset='0') thensec<="000";elsif(ckdsp'event and ckdsp='1') thenif(sec="111") thensec<="000";elsesec<=sec+1;end if;end if;end process;process(sec,second,minute,hour)begincase sec iswhen "000"=>daout<=second(3 downto 0);when "001"=>daout<=second(7 downto 4);when "011"=>daout<=minute(3 downto 0);when "100"=>daout<=minute(7 downto 4);when "110"=>daout<=hour(3 downto 0);when "111"=>daout<=hour(7 downto 4);when others=>daout<="1111";end case;end process;sel<=sec;end behav;图4.6 seltime模块五、功能实现简述5.1、具有时、分、秒计数显示功能,以24小时循环计时。