EDA课程设计报告(电子钟VHDL 设计)
用VHDL语言实现数字电子钟的设计(EDA课程设计报告-含源程序)
![用VHDL语言实现数字电子钟的设计(EDA课程设计报告-含源程序)](https://img.taocdn.com/s3/m/180bd096cc22bcd126ff0cff.png)
课程设计报告设计题目:用VHDL语言实现数字钟的设计班级:电子 0901学号: XXXXXXXX姓名:XXXXXXXXX指导教师:XXXXXXXXX设计时间:现代电子设计技术的核心已转向基于计算机的电子设计自动化技术,即EDA (Electronic Design Automation)技术。
EDA技术就是依赖计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。
EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。
硬件描述语言是EDA技术的重要组成部分,常见的HDL语言有VHDL、Verilog、HDL、ABLE、AHDL、System Verilog和System C。
其中VHDL、Verilog在现在的EDA设计中使用最多,也拥有几乎所有主流EDA工具的支持。
VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化硬件设计任务,提高了设计效率和可靠性。
在这次设计中,主要使用VHDL语言输入。
此次设计很好地完成了数字钟的定时、切换显示年月日和时分秒的功能,完成了小型FPGA的设计开发,锻炼了动手实践能力,达到了课程设计的目的。
关键词:EDA技术硬件描述语言VHDL 设计数字电子钟摘要 (2)1、课程设计目的 (4)2、课程设计内容及要求 (4)2.1 设计内容 (4)2.2 设计要求 (4)3、VHDL程序设计 (5)3.1 方案论证 (5)3.2 设计思路与方法 (6)3.2.1 设计思路 (6)3.2.2 设计方法 (7)4、仿真与分析 (7)5、器件编程下载及设计结果 (9)6、课程设计总结 (10)7、参考文献 (10)8、程序清单 (11)8.1 顶层模块 (11)8.2 秒脉冲模块 (13)8.3 数码管显示模块 (14)8.4 时分秒模块 (15)8.4.1 分秒模块 (16)8.4.2 小时模块 (18)8.5 年月日模块 (19)8.5.1 日期模块 (21)8.5.2 月份模块 (24)8.5.3 年份模块 (25)1、课程设计目的EDA技术课程设计在课程结束以后进行,在实践中验证理论知识,不仅是为了巩固课堂上所学知识,更是为了加深我们对EDA技术和VHDL语言的理解;为了让我们自己动手完成从设计输入、逻辑综合、功能仿真、设计实现到实现编程、时序仿真,一直到器件的下载测试的整个过程,真切感受利用EDA技术对FPGA进行设计开发的过程,锻炼和提高我们对器件的编程调试能力。
EDA电子时钟设计及报告
![EDA电子时钟设计及报告](https://img.taocdn.com/s3/m/1a76022c0242a8956aece434.png)
基于VHDL的多功能数字钟设计报告题目:多功能数字钟XX:程胜归学号:0304811指导老师:廖宇设计时间:2007-7-8一、VHDL的发展硬件描述语言HDL是一种用形式化方法描述数字电路和系统的语言。
利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。
然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。
接下去,再用专用集成电路ASIC或现场可编程门阵列FPGA自动布局布线工具,把网表转换为要实现的具体电路布线结构。
目前,这种高层次(high-level-design)的方法已被广泛采用。
据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。
早在1980年,因为美国军事工业需要描述电子系统的方法,美国国防部开始进行VHDL 的开发。
1987年,由IEEE(Institute of Electrical and Electro- nics Engineers)将VHDL制定为标准。
参考手册为IEEE VHDL语言参考手册标准草案1076/B版,于1987年批准,称为IEEE 1076-1987。
应当注意,起初VHDL只是作为系统规X的一个标准,而不是为设计而制定的。
第二个版本是在1993年制定的,称为VHDL-93,增加了一些新的命令和属性。
虽然有“VHDL 是一个4亿美元的错误”这样的说法,但VHDL毕竟是1995年以前唯一制订为标准的硬件描述语言,这是它不争的事实和优势;但同时它确实比较麻烦,而且其综合库至今也没有标准化,不具有晶体管开关级的描述能力和模拟设计的描述能力。
目前的看法是,对于特大型的系统级数字电路设计,VHDL是较为合适的。
实质上,在底层的VHDL设计环境是由Verilog HDL 描述的器件库支持的,因此,它们之间的互操作性十分重要。
EDA课程设计报告(数字电子时钟)
![EDA课程设计报告(数字电子时钟)](https://img.taocdn.com/s3/m/50b779915901020206409c2d.png)
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课程设计vhdl
![电子钟eda课程设计vhdl](https://img.taocdn.com/s3/m/9f70b477cec789eb172ded630b1c59eef8c79a9c.png)
电子钟eda课程设计vhdl一、教学目标本课程旨在通过学习“电子钟EDA课程设计VHDL”,让学生掌握数字电路设计的基本原理和方法,学会使用硬件描述语言VHDL进行电子钟的设计与仿真,培养学生的实际动手能力和创新能力。
知识目标:使学生了解数字电路的基本组成原理,掌握VHDL语言的基本语法和编程技巧,理解电子钟的电路结构和设计方法。
技能目标:培养学生使用EDA工具进行数字电路设计的能力,能够独立完成电子钟的设计与仿真,提高学生的实际动手能力。
情感态度价值观目标:通过本课程的学习,培养学生对电子技术的兴趣,增强学生自主学习和探索的精神,提高学生解决实际问题的能力。
二、教学内容本课程的教学内容主要包括三部分:数字电路基本原理、VHDL硬件描述语言和电子钟设计实例。
1.数字电路基本原理:介绍数字电路的基本概念、逻辑门电路、组合逻辑电路、时序逻辑电路等。
2.VHDL硬件描述语言:讲解VHDL的基本语法、编程技巧,包括实体声明、端口声明、信号声明、过程声明等。
3.电子钟设计实例:以电子钟为例,讲解如何使用VHDL语言进行数字电路的设计与仿真,包括时钟发生器、分频器、秒脉冲发生器等模块的设计。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解基本原理和实例,使学生掌握数字电路设计和VHDL编程的基本知识。
2.案例分析法:分析电子钟设计实例,使学生了解实际设计过程中遇到的问题和解决方法。
3.实验法:安排实验室实践环节,让学生亲自动手进行电子钟的设计与仿真,提高学生的实际操作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《数字电路设计与VHDL编程》等。
2.参考书:《VHDL入门与应用》、《数字电路实验教程》等。
3.多媒体资料:制作课件、教学视频等,以便于学生复习和巩固所学知识。
4.实验设备:计算机、EDA工具软件、实验室器件等,用于学生的实际操作和实验。
EDA-VHDL数字钟报告
![EDA-VHDL数字钟报告](https://img.taocdn.com/s3/m/3c0d7f1ec5da50e2524d7f5e.png)
《EDA技术》实验报告数字钟班级:电子与电气081学号:830702004姓名:陈海峰指导教师:张江伟老师地点:B07-306时间:校历9-10周目录一、摘要二、关键词三、数字钟设计要求四、基本理论知识了解五、实验目的六、实验器材七、实验内容——数字钟设计方案计数部分(1)VHDL语言设计的六十进制电路,模块及其波形(2)VHDL语言设计的二十四进制电路,模块及其波形动态显示部分(1)VHDL语言设计的四进制电路,模块及其波形(2)VHDL语言设计的2线-4线译码器(3)VHDL语言设计的数据选择器波形及其模块(4)VHDL语言七段译码器设计波形及模块数字钟总电路图八、实验总结九、参考资料一、摘要数字钟由计数器、译码器、显示器等部分构成,数字钟的时、分、秒实际上就是由一个24进制计数器(00-23),两个60进制计数器(00-59)级联构成。
利用Quartus II 6.0软件编写VHDL语言,编写六十进制、二十四进制;译码、显示部分用一个四进制,二-四译码器,数据选择器及七段译码器构成。
最后生成相对应的模块连接成数字钟电路图。
二、关键词VHDL语言、数字钟、计数器、动态显示、译码显示三、数字钟设计要求(1)正常模式时,采用24小时制设计有时、分、秒。
只显示时、分。
(2)应用VHDL语言设计时要有计数、数据选择、译码、显示等要求。
四、基本理论知识了解数字钟的功能实际上是对秒信号计数。
EDA-V硬件开发系统可提供不同的时钟信号,分频后可产生秒时钟。
数字钟在结构上可分为两个部分:计数器和显示器。
计数器又可分为秒计数器、分计数器和小时计数器;秒计数器和分计数器由两个六十进制构成,小时计数器由二十四进制计数器实现。
动态显示电路可用三态门构成的四选一数据选择器,和一个四进制加一个二四译码器,还有一个七段译码器7448组成。
三态门在选择了一个数码管的同时,打开一个三态门,其他的关闭。
进而实现数据选择。
如图1所示的用三态门实现动态显示的框图。
EDA课程设计报告电子钟
![EDA课程设计报告电子钟](https://img.taocdn.com/s3/m/4ff64664f111f18583d05aa7.png)
EDA课程设计报告电子钟EDA课程设计报告——数字钟设计班级:学号:姓名:一、设计任务设计一台能显示时、分、秒的数字钟。
具体要求如下:(1)由实验箱上的时钟信号经分频产生秒脉冲;(2)计时计数器用24进制计时电路;(3)可手动校时, 能分别进行时、分的校正;(4)整点报时;选做: 可设置闹时功能, 当计时计到预定时间时, 扬声器发出闹铃信号, 闹铃时间为4s, 并可提前终止闹铃。
二、试验目的(1)掌握时十进制、六进制和二十四进制计数器的设计方法。
(2)掌握多位计数器相连的设计方法。
(3)掌握多位共阴极扫描显示数码管的驱动及编码。
三、总体设计方案本数字系统实现数字钟的基本的计时功能, 输入8Hz的时钟, 经过分频产生1Hz的时钟信号, 采用24/12小时制计时, 能显示时、分、秒。
本系统还具有校正功能, 能够进行时分的校时, 当计时器运行到59分59秒开始报时, 另外还能够设定闹钟, 当按下闹铃开关时, 可在规定时间闹铃, 当开关复位时, 闹铃停止。
本数字钟实际上是一个对频率(1Hz)进行计数的计数电路。
由于计数的起始时间不可能与标准时间一致, 故需要在电路上加一个校时电路, 同时分频后的1Hz时间信号必须做到准确稳定。
一般使用石英晶体振荡器电路构成数字钟。
数字钟的基本组成本数字钟的实现可分为以下几个模块:(1) 秒计数模块: 秒计数, 在频率为1Hz的时钟下以60次为循环计数, 并产生进位信号影响分计数;(2) 分计数模块: 分计数, 在秒进位信号为高电平时, 计数一次, 同样以60次为一个循环计数, 同时产生分进位信号影响时计数;(3) 时计数模块: 时计数, 在分进位信号为高电平时, 计数一次, 以24/12次为一个循环计数;(4) 频率产生模块: 产生8Hz的计数频率, 经过分频得到1Hz 频率;(5) 时间显示模块: 数码管经过动态显示, 同时进行一定频率的扫描显示时, 分, 秒。
(6) 时间设置模块: 设置调试使能端, 能够调时, 分, 秒。
eda课程设计报告
![eda课程设计报告](https://img.taocdn.com/s3/m/27cd6233ae1ffc4ffe4733687e21af45b207fe1f.png)
eda课程设计报告一、课程目标知识目标:1. 学生能理解EDA(电子设计自动化)的基本概念,掌握EDA工具的使用方法。
2. 学生能运用EDA软件进行电路设计与仿真,理解并掌握数字电路的设计原理。
3. 学生了解并掌握基础的硬件描述语言(如VHDL/Verilog),能完成简单的数字系统设计。
技能目标:1. 学生通过EDA软件的操作,培养电子电路设计、仿真与验证的实际操作能力。
2. 学生通过小组合作完成设计项目,提高团队协作与沟通技巧。
3. 学生能够运用所学知识解决实际问题,具备一定的创新意识和动手能力。
情感态度价值观目标:1. 学生在EDA课程学习中,培养对电子科学技术的兴趣和探究精神。
2. 学生通过课程实践,增强自信心和成就感,激发进一步学习的动力。
3. 学生在学习过程中,树立正确的工程伦理观念,认识到技术发展对社会的责任和影响。
课程性质:本课程为电子信息工程及相关专业高年级学生的专业核心课程,旨在通过理论与实践相结合的教学,提高学生的电子设计能力。
学生特点:学生已具备一定的电子技术基础,具有较强的学习能力和实践欲望,对新技术和新工具充满好奇心。
教学要求:结合学生特点,注重培养实际操作能力,鼓励学生创新思维,提高解决实际问题的能力。
通过课程目标分解,确保学生在知识、技能和情感态度价值观方面的全面成长。
后续教学设计和评估将以此为基础,关注学生的学习成果。
二、教学内容根据课程目标,教学内容分为以下三个模块:1. EDA基本概念与工具使用- 教材章节:第一章 EDA技术概述,第二章 EDA工具简介- 内容列举:EDA发展历程,常用EDA软件介绍,软件安装与配置,基本操作流程。
2. 数字电路设计与仿真- 教材章节:第三章 数字电路设计基础,第四章 仿真技术- 内容列举:数字电路设计原理,EDA软件电路设计流程,仿真参数设置,波形分析与验证。
3. 硬件描述语言与数字系统设计- 教材章节:第五章 硬件描述语言,第六章 数字系统设计实例- 内容列举:硬件描述语言基础,VHDL/Verilog语法要点,简单数字系统设计方法,设计实例分析与实操。
EDA数字钟课程设计--用VHDL语言实现数字钟的设计
![EDA数字钟课程设计--用VHDL语言实现数字钟的设计](https://img.taocdn.com/s3/m/9c84aa0f910ef12d2af9e7fd.png)
课程设计报告设计题目:用VHDL语言实现数字钟的设计班级:电子1002班学号:20102625姓名:于晓指导教师:李世平、李宁设计时间:2012年12月摘要数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
本设计主要是实现数字钟的功能,程序用VHDL语言编写,整体采用TOP-TO-DOWN设计思路,具有基本的显示年月日时分秒和星期的功能,此外还有整点报时功能。
该数字钟的实现程序分为顶层模块、年月模块、日模块、时分秒定时模块、数码管显示模块、分频模块、星期模块,此外还有一个库。
该程序主要是用了元件例化的方法,此外还有进程等重要语句。
没有脉冲时,显示时分秒,set按钮产生第一个脉冲时,显示年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7、8个脉冲到来时分别可预置日期、时、分、秒、星期,第 9个脉冲到来时设置星期后预置结束,正常工作,显示的是时分秒和星期。
调整设置通过Up来控制,UP为高电平,upclk有脉冲到达时,预置位加1,否则减1。
当整点到达时,报时器会鸣响,然后手动按键停止报时。
关键词:数字钟,VHDL,元件例化,数码管1、课程设计目的掌握利用可编程逻辑器件和EDA设计工具进行电子系统设计的方法2、课程设计内容及要求设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。
用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。
Up为高电平时,upclk有脉冲到达时,预置位加1.否则减1,还可以在此基础上增加其它功能。
3、VHDL程序设计3.1整体设计思路本设计采用top-down 模式设计,分模块进行,各功能都使用元件例化方式设计,主要有LED显示模块、时分秒定时模块、日期模块、年月模块、分频模块、星期模块,此外还创建了一个程序包,用来实现年月日、时分秒的加减调整。
数字逻辑EDA电子钟课程设计报告
![数字逻辑EDA电子钟课程设计报告](https://img.taocdn.com/s3/m/ec2674f777eeaeaad1f34693daef5ef7ba0d12ae.png)
多功能数字钟设计说明:1.系统顶层框图:各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最根本的数字钟,其计数输出送7段译码电路由数码管显示。
2.基准频率分频器可分频出标准的1HZ频率信号,用于秒计数的时钟信号;分频出4HZ频率信号,用于校时、校分的快速递增信号;分频出64HZ频率信号,用于对按动"校时〞,"校分〞按键的消除抖动。
2.多功能数字钟构造框图:一、系统功能概述已完成功能1.完成时/分/秒的依次显示并正确计数,利用六位数码管显示;2.时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时,通过扬声器发出上下报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进展调整;5.闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃。
有静音模式。
待改良功能:1. 系统没有万年历功能,正在思考设计方法。
2. 应添加秒表功能。
二、系统组成以及系统各局部的设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零。
VHDL的RTL描述如下:----t_h.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entityt_h isport(en,clk,clr:in std_logic;dout:out std_logic_vector(7 downto 0);c:out std_logic);endt_h;architecture rtl oft_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)=*"A" then --个位等于10则十位加1t(7 downto 4):=t(7 downto 4)+1;t(3 downto 0):=*"0"; --个位清零end if;if t>*"23" then --大于23清零t:=*"00";end if;end if;if clr='1' then --异步清零t:=*"00";end if;end if;dout<=t;end process;end rtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求。
EDA课程设计报告电子钟
![EDA课程设计报告电子钟](https://img.taocdn.com/s3/m/cd573eecac51f01dc281e53a580216fc700a5337.png)
EDA课程设计报告电子钟1. 需求分析在日常生活中,我们无处不被时间所包围。
精准的时间尤为重要,电子钟因其准确、便携、易于控制等优点成为人们生活和工作必不可少的工具之一。
因此,基于此需求,我们设计了一款电子钟。
2. 系统设计电子钟的核心是时钟的计算,时钟的计算和显示涉及到时、分、秒、时间的设定和计算。
所以,系统的设计需要分为两个方面:硬件系统设计和软件系统设计。
2.1. 硬件系统设计硬件系统设计主要涉及到5V电源模块、单片机模块、RTC模块、时钟显示模块等。
2.1.1. 5V电源模块5V电源模块是提供设备运行所需电能的模块。
整个设备需要5V DC直流电源来工作,电源模块需要接上220V/110V AC电源。
此模块采用LM7805电压稳压芯片作为主要元件,保证设备稳定长时间的工作。
2.1.2. 单片机模块单片机模块是整个电子钟系统的核心,它负责计算时间并通过串口发送指令。
在本次设计中,晶振的时钟频率选用12MHz。
单片机选用STM32F103C8T6型号,这是一款高性能、低功耗、易于扩展的MCU芯片。
该模块可用于控制LED灯的开关、按键扫描等。
2.1.3. RTC模块RTC模块是实时时钟模块,其内部集成电池,即使在断电的情况下,时钟系统也能保持不变。
本设计采用DS3231型号RTC芯片,该模块闹钟功能精准,精度高,抗干扰能力好等特点。
该模块可以通过I2C接口进行通讯。
2.1.4. 时钟显示模块时钟显示模块用于显示时、分、秒的时间信息。
本设计采用Max7219驱动LED点阵进行显示。
该驱动芯片模块具有图形引擎,能够支持八个数字性显示的点阵。
同时,该芯片还具有串行接口,能够方便地和单片机连接通讯。
2.2. 软件系统设计在本次设计中,软件系统主要由驱动程序、串口通讯程序、定时器程序、闹钟程序、检测程序、显示程序等模块组成。
2.2.1. 驱动程序驱动程序主要有RTC模块的驱动程序、LED点阵模块的驱动程序和按键模块的驱动程序。
eda数字钟实验报告
![eda数字钟实验报告](https://img.taocdn.com/s3/m/3da5223f26284b73f242336c1eb91a37f111329f.png)
eda数字钟实验报告EDA数字钟实验报告本次实验旨在设计并实现一个EDA数字钟。
通过这个实验,我们将学习如何使用EDA工具来设计数字电路,并通过实际的电路实现来验证我们的设计。
1. 实验背景数字钟是我们日常生活中常见的设备之一。
它不仅可以显示时间,还具有闹钟等功能。
在这个实验中,我们将使用EDA工具来设计一个数字钟电路,并通过FPGA实现这个电路。
2. 实验目标本次实验的目标是设计一个能够显示小时、分钟和秒的数字钟电路。
我们将使用七段数码管来显示这些信息,并通过按键来设置时间和闹钟。
3. 设计思路我们的设计思路如下:3.1 时钟模块我们首先需要设计一个时钟模块,用来产生一个固定的时钟信号。
我们可以使用FPGA的时钟模块来实现这个功能,或者使用外部的晶振电路。
3.2 数码管驱动模块接下来,我们需要设计一个数码管驱动模块,用来将数字转换为七段数码管的显示信号。
我们可以使用查找表或者逻辑门电路来实现这个功能。
3.3 时间设置模块为了能够设置时间,我们需要设计一个时间设置模块。
这个模块可以通过按键来设置小时、分钟和秒。
3.4 闹钟设置模块类似于时间设置模块,我们还需要设计一个闹钟设置模块。
这个模块可以通过按键来设置闹钟的小时和分钟。
3.5 主控制模块最后,我们需要设计一个主控制模块,用来控制时钟、数码管驱动、时间设置和闹钟设置模块之间的交互。
这个模块可以根据设置的时间和闹钟来控制数码管的显示。
4. 电路实现根据我们的设计思路,我们使用EDA工具来实现我们的数字钟电路。
我们使用VHDL语言来描述电路,并使用模块化的方式来组织我们的代码。
5. 实验结果经过实际的电路实现和测试,我们成功地实现了数字钟电路。
我们可以通过按键来设置时间和闹钟,并通过七段数码管来显示时间和闹钟。
6. 实验总结通过这个实验,我们学习了如何使用EDA工具来设计数字电路,并通过实际的电路实现来验证我们的设计。
我们深入了解了数字钟的工作原理,并学会了如何使用VHDL语言来描述电路。
EDA课程设计报告数字电子钟
![EDA课程设计报告数字电子钟](https://img.taocdn.com/s3/m/c757e4395727a5e9856a6127.png)
数字钟一、【课题要求】1.设计一个能显示1/10秒、秒、分、时的12小时数字钟。
2.熟练掌握各种计数器的使用。
3.能用计数器构成十进制、六十进制、十二进制等所需进制的计数器。
4.能用低位的进位输出构成高位的计数脉冲。
<注意>1、时钟源使用频率为0.1HZ的连续脉冲。
2、设置两个按钮,一个供“开始”及“停止”使用,一个供系统“复位”用。
3、时钟显示使用数码管显示。
4、“时显示”部分注意12点后显示1点。
5、注意各部分的关系,由低位到高位逐级设计、调试。
二、【分析与设计】数字钟是计数器的综合应用,数字钟由十分之一秒、秒钟、分钟、时钟组成,十分之一秒由十进制计数器74160组成,秒钟由六十进制计数器构成,分钟由六十进制计数器,时钟由十二进制计数器构成。
该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。
输入端clk是连续脉冲,clrn是高电平系统复位,en是高电平使能端,输出端是十分之一秒位、秒钟个位、秒钟十位、分钟个位、分钟十位、时钟个位、时钟十位,最后由7个数码管显示各位的值。
该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL 文本设计及原理图设计。
程序框图:十分之一秒 秒钟 分钟 小时三、【程序代码及原理图】 1、六进制计数器VHDL 代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cout6 ISPORT(clk,en,clrn,load:IN STD_LOGIC;date:IN STD_LOGIC_VECTOR(2 DOWNTO 0); cnt:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); co:OUT STD_LOGIC ); END cout6;ARCHITECTURE behave OF cout6 ISSIGNAL q:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGINco<='1' WHEN((q="101")AND(en='1'))ELSE'0'; PROCESS(en,clk) BEGINIF clrn='0' THEN q<="000";ELSIF(clk'event and clk='1') THENIF load='0' THEN q<=date;ELSIF en='1' THEN q<=q+1;IF(q="101")THEN q<="000";END IF;END IF;END IF;END PROCESS;cnt<=q;END behave;波形仿真:2、六十进制计数器原理图:波形仿真:3、十二进制计数器VHDL代码:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cout12 ISPORT(clk,clrn,ldn,en:IN STD_LOGIC;ha:IN STD_LOGIC_VECTOR(3 DOWNTO 0); hb:IN STD_LOGIC;qa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); qb:out STD_LOGIC);END cout12;ARCHITECTURE behav OF cout12 ISSIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL b:STD_LOGIC;SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(en,clk)BEGINIF clrn='0' THENq<="0000";ELSIF(clk'event and clk='1') THEN IF ldn='0' THENb<=hb;a<=ha;ELSIF en='1' THENq<=q+1;IF(q="1011")THENq<="0000"; END IF;END IF;END IF;CASE q ISWHEN"0000"=>b<='1';a<="0010"; WHEN"0001"=>b<='0';a<="0001"; WHEN"0010"=>b<='0';a<="0010"; WHEN"0011"=>b<='0';a<="0011"; WHEN"0100"=>b<='0';a<="0100"; WHEN"0101"=>b<='0';a<="0101"; WHEN"0110"=>b<='0';a<="0110"; WHEN"0111"=>b<='0';a<="0111"; WHEN"1000"=>b<='0';a<="1000"; WHEN"1001"=>b<='0';a<="1001"; WHEN"1010"=>b<='1';a<="0000"; WHEN"1011"=>b<='1';a<="0001"; WHEN OTHERS =>NULL;END CASE;END PROCESS;qa<=a;qb<=b;END ARCHITECTURE behav;波形仿真:4、数字钟原理图:波形仿真:四、【结果与测试】根据六进制的波形图判断出六进制的设计正确,实现了0~5的计数,并且在5处产生进位,将六进制进行封装与十进制74160根据原理图设计成六十进制计数器,然后将它进行封装,根据六十进的波仿真图可以看出实现了0~59的计数,并且在59处产生进位,然后将它进行封装。
EDA设计(II)实验报告数字电子钟
![EDA设计(II)实验报告数字电子钟](https://img.taocdn.com/s3/m/4aacaabbaff8941ea76e58fafab069dc502247bd.png)
EDA设计(II)实验报告-数字电子钟实验报告:数字电子钟一、实验目的本实验旨在通过使用EDA设计软件,设计并实现一个具有时、分、秒功能的数字电子钟。
通过学习使用EDA工具,掌握数字电路设计的基本步骤和技巧,培养实践能力和创新思维。
二、实验原理数字电子钟是一种以数字形式显示时间的装置,它利用了时、分、秒的计时原理。
核心部分包括一个时钟发生器,用于产生标准时间信号,以及一个计数器,用于对时间进行计数并显示。
此外,还需要一些控制逻辑来控制时、分、秒的进位和显示。
三、实验步骤1.设计准备:在开始设计之前,首先明确设计要求和功能。
考虑到实验的复杂性和可实现性,我们采用最简单的电路结构,即基于计数器和译码器的数字电子钟。
2.绘制电路图:使用EDA设计软件(如Quartus II)绘制电路图。
首先创建新项目,然后添加必要的元件(如74LS192计数器、74LS248译码器等),并根据设计要求连接元件。
3.编写程序:使用硬件描述语言(如VHDL或Verilog)编写计数器和译码器的程序。
确保程序能够实现所需的功能,并进行仿真测试。
4.编译和下载:将程序编译成可下载的配置文件,然后下载到FPGA开发板上。
5.硬件测试:连接开发板到PC,启动程序,观察数字电子钟的显示情况。
检查时间是否准确,各部分功能是否正常。
6.性能评估:对数字电子钟的性能进行评估,包括计时精度、稳定性等指标。
根据评估结果对设计进行优化。
四、实验结果与分析1.设计结果:经过上述步骤,我们成功地设计并实现了一个基于FPGA的数字电子钟。
通过EDA软件和硬件描述语言,我们实现了计数器和译码器的功能,并完成了程序的编写和下载。
2.性能分析:经过测试,我们的数字电子钟具有较高的计时精度和稳定性。
时间显示准确,各部分功能正常。
这表明我们的设计是成功的。
3.优化方向:虽然我们的数字电子钟已经具有较好的性能,但仍有一些方面可以优化。
例如,可以考虑添加更多的功能,如闹钟、温度显示等;也可以进一步优化电路结构,降低成本和提高性能。
eda-课程设计电子时钟
![eda-课程设计电子时钟](https://img.taocdn.com/s3/m/6ee3c5e3b52acfc788ebc90d.png)
EDA课程设计报告《设计题目:专业:姓名:学号:指导老师:'`前言随着电子设计技术、ISP(在系统可编程)技术,PLD(可编程逻辑器件),与EDA(电子设计自动化)紧密结合,它代表了数字系统设计领域的最高水平,给数字电路的设计带来了革命性的变化。
作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。
使自己熟练使用QuartusII环境来进行设计,掌握VHDL语言的设计方法。
要注重理论与实践之间的不同,培养自己的实践能力!¥[|目录一、课程设计任务及要求............................. 错误!未定义书签。
实验目的.......................................... 错误!未定义书签。
【功能设计.......................................... 错误!未定义书签。
二、整体设计思想................................... 错误!未定义书签。
性能指标及功能设计................................ 错误!未定义书签。
总体方框图........................................ 错误!未定义书签。
三、详细设计....................................... 错误!未定义书签。
数字钟的基本工作原理:............................ 错误!未定义书签。
时基T 产生电路................................. 错误!未定义书签。
调时、调分信号的产生............................ 错误!未定义书签。
'计数显示电路.................................... 错误!未定义书签。
24小时制时钟—EDA课程设计报告
![24小时制时钟—EDA课程设计报告](https://img.taocdn.com/s3/m/451b4e80bceb19e8b8f6bad1.png)
石家庄铁道大学EDA课程设计报告24小时制数字钟学院电气与电子工程学院专业电子信息专业班级电0904-2班学号 20092360 学生姓名指导教师赵晓博课程成绩完成日期 2012年3月30日课程设计任务书电气与电子工程学院电子信息专业课程名称EDA课程设计时间2011~2012学年第二学期2~6周学生姓名指导老师赵晓博题目数字钟的设计与制作主要内容:本课程设计主要是利用硬件描述语言VHDL的设计思想,采用自顶向下的方法、划分模块来设计数字钟的几个模块。
通过课程设计深入理解计算机的基本原理和方法,加深对计算机组成的理解。
要求:1.具有时、分、秒计数显示功能,且以24小时循环计时。
2.具清零的功能,且能够对计时系统的小时、分钟进行调整。
3.具有整点报时功能。
扩展:1.设置启/停开关。
当按下启/停开关,将启动时钟开始计时,当再按一下启/停开关时,将终止计时操作。
2.计时精度为1s。
3.复位开关可以在任何情况下使用,即便在计时过程中,只要按一下复位开关,计时器就清零,并做好下次计时的准备。
4.随意给定频率能分频至1s。
数字钟的设计与制作学生姓名:指导老师:赵晓博摘要系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真等。
利用VHDL语言完成了数字钟的设计。
该数字钟能实现时、分、秒计数的显示功能,且以24小时循环计时,具清零的功能,且能够对计时系统的小时、分钟进行调整,具有整点报时功能。
整个系统使用方便,功能齐全,精度高,具有一定的开发价值。
关键字数字钟;EDA;VHDL;目录1引言 (5)1.1课题的背景、目的 (5)1.2设计的内容 (5)2 EDA、VHDL简介 (6)2.1EDA技术 (6)2.2硬件描述语言——VHDL (6)★VHDL的简介 (6)★VHDL语言的特点 (7)★VHDL的设计流程 (7)3 数字钟设计 (8)3.1数字钟的工作原理 (8)3.1数字钟的实现流程 (8)3.2晶体振荡器 (12)3.3分频电路 (12)3.2部分程序实现 (12)4 系统仿真 (22)1.小时24制电路仿真图 (22)2.分钟59电路仿真图 (23)3.秒59制电路仿真图 (23)4.59转码电路仿真图 (233)5.24转码电路仿真图 (24)6.动态扫描电路仿真图 (24)7.整点报时电路仿真图 (25)结束语 (26)致谢 (26)参考文献 (26)附录 (27)1 引言随着社会的发展,科学技术也在不断的进步。
eda课程设计--数字电子钟课程设计
![eda课程设计--数字电子钟课程设计](https://img.taocdn.com/s3/m/d05f0fe681c758f5f61f6793.png)
绍兴文理学院数理信息学院EDA技术课程设计报告课题数字时钟姓名学号专业班级指导教师时间课程设计任务书数字钟设计摘要人类社会已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化技术,EDA技术的发展和推广应用又极大的推动了电子信息产业的发展。
EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时为24小时小时制,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计时、校时程序模块、闹钟控制器程序模块、预制寄存器模块、闹钟寄存器程序模块和显示驱动器程序设计。
且使用QUARTUS II 软件进行电路波形仿真,下载到EDA实验箱进行验证。
关键词数字钟;EDA;vhdl语言目录课程设计任务书 (I)摘要 (II)1设计概述 (1)2设计方案 (2)2.1系统设计方案 (2)3设计实现 (4)3.1闹钟控制器实现 (4)3.2预置寄存器实现 (4)3.3闹钟寄存器实现 (4)3.4分频电路实现 (5)3.5时钟计数器实现 (5)3.6显示驱动器实现 (5)3.7顶层原件实现 (6)4设计验证 (7)4.1闹钟控制器验证 (7)4.2预置寄存器验证 (7)4.3闹钟寄存器验证 (8)4.4分频电路验证 (8)4.5时钟计数器验证 (8)4.6显示驱动器验证 (9)5总结 (11)参考文献 (12)附录 (13)1设计概述数字钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
数字钟VHDL设计报告(EDA)
![数字钟VHDL设计报告(EDA)](https://img.taocdn.com/s3/m/df570d6858fafab069dc024a.png)
设计报告课程名称在系统编程技术任课教师查长军设计题目数字时钟班级通信(1)班姓名王兵学号0805070345 日期2011、5、18目录摘要: (1)关键词:数字钟 EDA VHDL语言 (1)一、设计目的 (1)二、设计内容 (1)三、设计原理 (2)1、数字钟的基本工作原理: (2)2、数字钟设计的电路原理图 (3)3、VHDL 设计 (3)四、设计仪器、设备 (4)五、设计步骤 (5)1、用VHDL程序设计 (5)步骤1:为本项设计建立文件夹 (5)步骤2:输入设计项目和存盘 (5)步骤3:选择目标器件并编译 (6)步骤4:时序仿真 (6)步骤5:引脚锁定 (9)步骤6:编程下载 (9)2、实验箱显示 (10)六、总结 (11)参考文献 (11)附录: (11)摘要:人类社会已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDA,Electronics Design Automation)技术,EDA 技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时周期为24小时,显示满刻度为24时59分59秒,另外还具有校时功能和闹钟功能。
总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和设置程序模块、比较器程序模块、三输入数据选择器程序模块、译码显示程序模块和拼接程序模块。
EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)
![EDA课程设计——基于VHDL语言的数字时钟设计(可编辑)](https://img.taocdn.com/s3/m/9bdd62bc2e3f5727a4e962de.png)
EDA课程设计——基于VHDL 语言的数字时钟设计(可编辑)(文档可以直接使用,也可根据实际需要修改使用,可编辑推荐下载)一、设计要求 0二、设计原理及框图 01、设计原理 02、结构框图 0三、设计过程 (1)1、模块化设计 (1)2、顶层文件生成 (2)四、仿真调试过程 (3)1、各模块时序仿真图 (3)2、仿真过程中遇到的问题 (4)五、设计体会及收获 (4)一、设计要求1、稳定的显示时、分、秒。
2、当电路发生走时误差时,要求电路有校时功能。
3、电路有整点报时功能。
报时声响为四低一高,最后一响高音正好为整点。
二、设计原理及框图1、设计原理系统框图由六个模块组成,分别为:秒、分、时计数模块,整点报时模块,LED动态显示扫描模块,调时控制模块组成。
其工作原理是:基准脉冲输入信号同时加到秒、分、时、分隔符的脉冲输入端,采用并行计数的方式,秒的进位接到分的使能端上,秒的使能借到分隔符的使能上,分得接到时的使能端上,完成秒、分、时和分隔符的循环计数。
整点报时是根据分的A、B输出同时为0时,整点报时模块输出高电平控制报时。
LED显示扫描模块根据输入的扫描信号CKDSP轮流选通秒、分、时、分隔符的8位八段数码管,LED显示译码器完成计数器输出的BCD的译码。
2、结构框图三、设计过程1、模块化设计(1)秒计时模块秒计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Setmin:分钟设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(2)分计时模块分计时模块由一个60位计数器为主体构成,其输入输出端口组成为:Clk、clk1:计时时钟信号Reset:异步清零信号Sethour:小时设置信号Enmin:使能输出信号Daout[6:0]:BCD码输出(3)时计时模块时计时模块由24位计数器为主体构成,其输入输出端口组成为:Clk:计时时钟信号Reset:异步清零信号Daout[6:0]:BCD码输出(4)显示模块系统时间输出由六个七段数码管显示。
EDA课程设计多功能数字时钟报告
![EDA课程设计多功能数字时钟报告](https://img.taocdn.com/s3/m/8466943f84254b35effd3452.png)
III.开关功能介绍(两种方案)……………………………………………………………4
二.方案论证……………………………………………………5
I.总体方案分析…………………………………………………………………………5
II.电路的工作原理……………………………………………………………………6
二.方案论证:
I。总体方案分析:
利用QuartusII软件设计一个数字钟,对设计电路进行功能仿真,并下载到SmartSOPC实验系统中,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能.本电路在原有基础上进行了拓展,具备以下功能:
①.能进行正常的时、分、秒计时功能;
These electric circuits are all packed with mold piece okay, for the purpose of other electric circuits adjust to use.With count machine composing to account parts, pass a cent repeatedly the machine divides of when the 1 HZ pulse accounts adjust to show that the electric circuit suggests and passes a little bit whole buzzer that tell the time an electric circuit control with the dynamic state.BE counting the way that the machine class adopted synchronously external different step in the inner part while uniting, but came to a synchronous effect through a simple change and than synchronously returned credibility。While showing a control for economizing a resources adoption dynamic state principle,from wove VHDL language of 24 choose 4 data selectors.文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA课程设计报告(电子钟VHDL 设计)作者:dang168 时间:2008-10-05E D A课程设计报告-----电子钟VHDL 设计一设计要求设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间.二.实验目的1. 掌握多位计数器相连的设计方法。
2. 掌握十六进制,二十四进制,六十进制计数器的设计方法。
3. 掌握CPLD技术的层次化设计方法。
4. 了解软件的元件管理含义以及模块元件之间的连接概念。
5. 掌握电子电路一般的设计方法,并了解电子产品的研制开发过程,基本掌握电子电路安装和调试的方法。
6. 培养独立分析问题,解决问题的能力。
三.硬件要求1.8位8段扫描共阴极数码显示管。
2. 三个按键开关(清零,调小时,调分钟)。
四.设计原理数字钟是一个将“时”“分”“秒”显示于人的视觉器官的计时装置。
它的计时周期为24小时;显示满刻度为23时59分59秒,另外具备校时功能和报时功能。
因此,一个基本的数字钟电路主要由“时”“分”“秒”计数器校时电路组成。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累加60秒发送一个“分脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用24进制计数器,可实现对一天24小时的累计。
译码显示电路将“时”“分”“秒”计数器的输出状态六段显示译码器译码。
通过六位LED七段显示器显示出来。
校时电路器是用来对“时”“分”“秒”显示数字进行校时调整的。
在同一CPLD芯片口集成如下电路模块:1.电子钟计数采用层次化设计,将设计任务分成若干个模块。
规定每一模块的功能和各模块之间的接口。
(1)second(秒) 60进制BCD码计数(2)minute(分) 60进制BCD码计数(3)hour (时) 24进制BCD码计数(4)clock top 顶层设计同时整个计数器有清零,调时,调分功能。
2.端口引脚名称 输入 clk,reset,setmin,sethour 输出 second—daout,minute-daout,hour-daout五.设计原理图逻辑功能图:输入:CLK—时钟脉冲,RESET—复位信号,SETMIN—分加1信号,SETHOUR—秒加1信号输出:SECOND_DAOUT—秒输出,MINUTE_DAOUT—分输出,HOUR_DAOUT—时输出时序仿真:程序主要运用计数器完成,在时钟脉冲的作用下,完成时钟功能,由时序图可以看出每一个时钟脉冲上升沿秒加1,当接收到reset 信号,即reset为高电平,所有计数为零,并重新计数,setmin和sethour可以完成调节时钟功能,都是高电平调节,每来一个脉冲,相应的时或分加1。
硬件验证:利用MAX+plusII把程序写入实验板,根据上面的输入输出引脚,锁定到芯片引脚。
本实验运用的芯片是EPF10K10LC84-4,还有利用了6个LED显示,分别显示时、分、秒各两个,没有利用译码器,利用的LED是8引脚的。
本次验证利用实验板的模式7,根据板的说明书,锁定引脚并下载程序。
按下板的复位按钮,时钟开始运行,由跳线帽可以选择频率设定时钟的快慢。
LED上可以显示时钟,由锁定的引脚所对应的按钮可以锁定时钟时间和复位。
六.设计过程(一)各模块的说明:1.SECOND模块:用来对秒进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则秒计数器加7,目的是使计数值变为BCD 码。
若高三位是101时,则有一进位。
当计数器的低四位不为1001时,计数器加1。
SECOND模块给MINUTE的时钟由SETMINUTE和它本身记到60的进位两部分组成。
SECOND模块源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(clk,reset,setmin:in std_logic;enmin:out std_logic;daout:out std_logic_vector(6 downto 0) );end entity second;architecture fun of second issignal count:std_logic_vector(6 downto 0); signal enmin_1,enmin_2:std_logic;begindaout<=count;enmin_2<=(setmin and clk);enmin<=(enmin_1 or enmin_2);process(clk,reset,setmin)beginif(reset='1')then count<="0000000";elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#60#)thenif(count="1011001")thenenmin_1<='1';count<="0000000";elsecount<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#)thencount<=count+1;enmin_1<='0'after 100 ns;elsecount<="0000000";end if;end if;end process;end fun;2.MINUTE模块:用来对分进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则分计数器加7,目的是使计数值变为BCD 码。
若高三位是101时,则有一进位。
当计数器的低四位不为1001时,计数器加1。
MINUTE模块的时钟由SETMIN和SECOND记到60的进位两部分组成。
MINUTE模块源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,reset,clk1,sethour:in std_logic;enhour:out std_logic;daout:out std_logic_vector(6 downto 0) );end entity minute;architecture fun of minute issignal count:std_logic_vector(6 downto 0); signal enhour_1,enhour_2:std_logic;begindaout<=count;enhour_2<=(sethour and clk1);enhour<=(enhour_1 or enhour_2);process(clk,reset,sethour)beginif(reset='1')then count<="0000000";elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#60#)thenif(count="1011001")thenenhour_1<='1';count<="0000000";elsecount<=count+7;end if;elsecount<="0000000";end if;elsif(count<16#60#)thencount<=count+1;enhour_1<='0'after 100 ns;elsecount<="0000000";end if;end if;end process;end fun;3.HOUR模块:用来对时进行计数,当记到计数器的低四位为1001时,若高三位小于010时,则时计数器加7,目的是使计数值变为BCD 码。
当计数器的高三位小于010,低四位小于1001时,计数器加1;若当计数器记到0100100时,则有一进位。
HOUR模块的时钟由SETHOUR和MINUTE记到60的进位两部分组成。
HOUR模块源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour isport(clk,reset:in std_logic;daout:out std_logic_vector(5 downto 0) );end entity hour;architecture fun of hour issignal count:std_logic_vector(5 downto 0); begindaout<=count;process(clk,reset)beginif(reset='1')thencount<="000000";elsif(clk'event and clk='1')thenif(count(3 downto 0)="1001")thenif(count<16#23#)thencount<=count+7;elsecount<="000000";end if;elsif(count<16#23#)thencount<=count+1;elsecount<="000000";end if;end if;end process;end fun;4.顶层CLOCK_TOP模块:用来对元件进行例化,以及对端口进行映射。
HOUR模块源程序如下:library ieee;use ieee.std_logic_1164.all;entity clock_top isport(clk,reset,setmin,sethour:in std_logic;second_daout,minute_daout:out std_logic_vector(6 downto 0);hour_daout:out std_logic_vector(5 downto 0));end clock_top;architecture a of clock_top iscomponent secondport(clk,reset,setmin:in std_logic;daout:out std_logic_vector(6 downto 0);enmin:out std_logic);end component;component minuteport(clk,reset,clk1,sethour:in std_logic;enhour:out std_logic;daout:out std_logic_vector(6 downto 0)); end component;component hourport(clk,reset:in std_logic;daout:out std_logic_vector(5 downto 0)); end component;signal enmin_re,enhour_re:std_logic;beginu1:second port map(reset=>reset,clk=>clk,setmin=>setmin,enmin=>enmin_re,daout=>second_daout);u2:minute port map(clk=>enmin_re,reset=>reset,clk1=>clk,sethour=>sethour,enhour=>enhour_re,daout=>minute_daout);u3:hour port map(clk=>enhour_re, reset=>reset,daout=>hour_daout);end a;七.仿真波形图为:仿真波形图1仿真波形图2。