EDA综合课程设计_数字时钟设计一、题_001

合集下载

EDA课程设计数字钟(综合课程设计)一_001

EDA课程设计数字钟(综合课程设计)一_001

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、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。

六、顶层原理图参考下图所示(模块化设计)。

edal数字钟课程设计

edal数字钟课程设计

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数字钟的设计课程设计

eda数字钟的设计课程设计

eda数字钟的设计课程设计一、课程目标知识目标:1. 让学生掌握EDA技术的基本原理和应用;2. 使学生了解数字时钟的工作原理,掌握其设计方法;3. 帮助学生理解数字电路的基本组成,掌握常用数字电路元件的功能和使用方法。

技能目标:1. 培养学生运用EDA软件进行数字电路设计的能力;2. 提高学生动手实践能力,能够独立完成数字钟的搭建和调试;3. 培养学生分析问题和解决问题的能力,学会运用所学知识解决实际工程问题。

情感态度价值观目标:1. 激发学生对电子工程领域的兴趣,培养其探索精神和创新意识;2. 培养学生良好的团队合作精神和沟通能力,学会在团队中发挥个人作用;3. 培养学生具备严谨的科学态度,注重实践操作的安全性和环保意识。

分析课程性质、学生特点和教学要求,本课程旨在通过数字钟的设计与实现,使学生在掌握基本理论知识的基础上,提高实践操作能力和创新设计能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续的教学设计和评估提供依据。

二、教学内容本课程教学内容主要包括以下三个方面:1. EDA技术基本原理:- EDA软件的使用方法与操作流程;- 常用数字电路元件的原理与功能;- 数字电路设计的基本步骤和技巧。

2. 数字时钟工作原理与设计方法:- 数字时钟的基本组成和各部分功能;- 时钟信号的产生、分频和计数原理;- 数字钟电路图设计及仿真分析。

3. 实践操作与调试:- 数字钟电路的搭建与连接;- 调试过程中故障分析与解决;- 数字钟功能测试与性能优化。

教学内容根据课程目标制定,具有科学性和系统性。

教学大纲明确,教学内容安排和进度如下:1. EDA技术基本原理(2课时)2. 数字时钟工作原理与设计方法(3课时)3. 实践操作与调试(4课时)教学内容与教材章节关联紧密,确保学生能够将所学理论知识与实际操作相结合,提高综合运用能力。

三、教学方法针对本课程的教学目标和学生特点,采用以下多样化的教学方法:1. 讲授法:教师通过PPT、板书等形式,系统讲解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课程设计报告电子钟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课程设计+(数字钟)

EDA课程设计报告课题名称:多功能数字钟设计多功能数字钟设计一、数字钟简介:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到广泛的使用。

数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。

这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。

二、设计要求1. 具有以二十四小时制计时、显示、时间设置的功能。

2. 精度要求为1s。

三、系统功能简介1. 计时:时钟计时:秒——60进制BCD码计数;分——60进制BCD码计数;时——24进制BCD码计数;2. 校时:同时整个计数器有清零,调分,调时功能。

可手动校时,能分别进行时、分的校正3. 显示:具有驱动8位八段共阴极扫描数码管的片选驱动信号输出和八段字形译码输出。

内容规划:(1)根据电路特点,可用层次化结构化设计概念。

将此项设计分成若干模块,规定每一模块的功能和各模块之间的接口。

EDA课程设计——多功能数字钟的设计

EDA课程设计——多功能数字钟的设计

E D A课程设计学院:电气信息学院专业年级:通信工程2013级姓名:学号课题: EDA课程设计指导老师:日期:2016年7月6日第一章多功能数字钟的设计1、设计任务了解数字钟的工作原理,进一步熟悉VHDL语言编写驱动七段数码管显示代码,并且掌握用多进程的方式实现一个综合性的程序。

最终实现硬件和软件多功能数字钟的设计。

(1)显示的格式为小时-分钟-秒钟,是24小时制,整点报时时间为5秒,级从整点前5秒钟开始进行报时提示,LED灯开始闪烁,过整点后,停止闪烁。

(2)系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10000次分频。

(3)调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调节分钟,每按下一次,分钟增加一分钟。

另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。

2、方案设计2.1软件设计方案用VHDL语言编写程序实现设计内容中需要实现的功能。

将编写好的VHDL的程序加载到硬件电路中,从而驱动七段数码管时间,并用按键控制时间的变化,用软件仿真验证实验结果。

2.2硬件设计方案在软件方案实现的基础上,将已经运行成功的程序,将结果烧制到硬件电路中,最后生成顶层电路原理图。

3、设计的具体实现3.1设计步骤3.1.1打开QUARTUSII软件,新建一个工程3.1.2建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框;3.1.3按照自己设计方案,在VHDL编辑窗口编写VHDL程序;(程序见附录) 3.1.4编写完VHDL程序后,保存在自己新建的文件夹在D盘的目录下;3.1.5对自己编写的VHDL程序进行编译仿真,对程序的错误进行修改,直到完全通过编译和仿真;3.1.6仿真无误后,依照按键开关、数码管、LED灯与FPGA的管脚连接表进行管脚分配。

分配完成后,在进行编译一次,以使管脚分配生效;3.1.7用下载电缆通过JTAG口将对应的sof文件加载到FPGA中,观察设计结果是否和自己的编程思想一致。

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日引言:人类社会已进入到高度发达的信息化社会。

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

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

EDA综合课程设计-数字时钟设计一、题目要求1、功能1)具有时、分、秒计数显示功能,以24小时循环计时。

2)时钟计数显示时有LED灯的花样显示。

3)具有调节小时、分钟、秒及清零的功能。

4)具有整点报时功能。

2、总体方框图3、性能指标及功能设计1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。

2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。

我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。

3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。

可以根据我们自己任意时间的复位。

4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。

产生“滴答.滴答”的报警声音。

5)LED灯在时钟显示时有花样显示信号产生。

即根据进位情况,LED不停的闪烁,从而产生“花样”信号。

根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。

采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。

显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。

数字时钟系统顶层原理图多功能数字时钟的课程设计报告1、本设计可以实现的功能1)具有时、分、秒计数显示功能,以24小时循环计时。

2)时钟计数显示时有LED灯的花样显示。

3)具有调节小时、分钟及清零的功能。

4)具有整点报时功能。

2、初步设计的总体方框图3、性能指标及功能设计1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。

2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。

我们可以通过实验板上的K1-K7进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。

3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。

可以根据我们自己任意时间的复位。

4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。

产生“滴答.滴答”的报警声音。

5)LED灯在时钟显示时有花样显示信号产生。

即根据进位情况,LED不停的闪烁,从而产生“花样”信号。

二、选择方案1、方案选择方案一:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。

采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。

显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。

方案二:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。

采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。

显示:小时采用24进制,而分钟和秒均60进制。

终上所述,考虑到试验时的简单性,故我选择了方案二。

三、细化框图根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图:四、编写程序、仿真和分析1、秒计数器1)VHDL 语言描述程序见附录 2)秒计数器的仿真波形图3)波形分析利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enmin=1;reset 作为复位信号低电平有效,数字时钟控制单元 时调整 分调整使能端信号CLK 信号时显示 分显示 秒显示24进制 60进制 60进制LED 显示整点报时花样显示即高电平时正常循环计数,低电平清零。

因为这种60进制的VHDL语言是很好写的,它并不复杂,再说我们必须要学会这些基本的硬件语言的描写。

2、分钟计数器1)VHDL语言描述程序见附录2)分钟计数器的仿真波形图3)波形分析小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。

3、小时计数器1)VHDL语言描述程序见附录2)小时计数器的仿真波形图3)波形分析小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。

4、整点报时报警模块1)VHDL语言描述程序见附录2)整点报时模块仿真波形图1)波形分析由图知对于整点报时模块,当分钟计数至59时来一个时钟脉冲则产生一个进位信号,分钟计数到00,此时产生报警信号持续一分钟。

当有时钟脉冲时lamp 显示灯就闪烁轮续点亮。

五、顶层系统的原理图1、数字时钟系统原理图2、顶层系统的波形图仿真六、设计心得体会在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯的工作原理及具体使用方法。

在连接二十四进制,六十进制的进位的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.。

在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的16脚或14脚以及接低电平的7脚或8脚,因此在实际的电路连接中往往容易遗漏。

又例如74HC390芯片,其本身就是一个十进制计数器,在仿真电路中必须连接反馈线才能正常显示,而在实际电路中无需再连接,因此仿真图和电路连接图还是有一定区别的.。

在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的。

附录(源程序)1、小时计数器VHDL语言源程序(底层文件)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='0')THEN count<="000000"; ——若reset=0,则异步清零ELSIF(clk'event and clk='1')THEN ——否则,若clk上升沿到IF(count(3 DOWNTO 0)="1001")THEN ——若个位计时恰好到“1001”即9 IF(count<16#23#)THEN ——23进制count<=count+7; ——若到23D则elsecount<="000000"; ——复0END IF;ELSIF (count<16#23#)THEN ——若未到23D,则count进1count<=count+1;ELSE ——否则清零count<="000000";END IF; ——END IF(count(3 DOWNTO 0)=“1001”)END IF; ——END IF(reset=‘0’)END PROCESS;END fun;2、分钟计数器VHDL语言源程序(底层文件)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute ISPORT(clk,clk1,reset,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; ——enmin_1为59分时的进位信号BEGIN ——enmin_2由clk调制后的手动调时脉冲信号串daout<=count;enhour_2<= (sethour and clk1); ——sethour为手动调时控制信号,高电平有效enhour<= (enhour_1 or enhour_2);PROCESS(clk,reset,sethour)BEGINIF(reset='0') THEN ——若reset为0,则异步清零count<="0000000";ELSIF(clk'event and clk='1')THEN ——否则,若clk上升沿到IF(count (3 DOWNTO 0) ="1001")THEN——若个位计时恰好到“1001”即9IF(count <16#60#) THEN ——又若count小于16#60#,即60IF(count="1011001") THEN——又若已到59Denhour_1<='1'; ——则置进位为1count<="0000000"; ——count复0ELSEcount<=count+7; ——若count未到59D,则加7,即作“加6校正”END IF; ——使前面的16#60#的个位转变为8421BCD的容量ELSEcount<="0000000";——count复0(有此句,则对无效状态电路可自启动) END IF; ——END IF(count<16#60#)ELSIF (count <16#60#) THENcount<=count+1; ——若count<16#60#则count加1enhour_1<='0' after 100 ns; ——没有发生进位ELSEcount<="0000000"; ——否则,若count不小于16#60# count复0END IF; ——END IF(count(3 DOWNTO 0)=“1001”)END IF; ——END IF(reset=‘0’)END process;END fun;3、秒钟计数器VHDL语言源程序(底层文件)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,setmin: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; ——enmin_1为59秒时的进位信号BEGIN ——enmin_2由clk调制后的手动调分脉冲信号串daout<=count;enmin_2<=(setmin and clk); ——setmin为手动调分控制信号,高电平有效enmin<=(enmin_1 or enmin_2); ——enmin为向分进位信号PROCESS(clk,reset,setmin)BEGINIF(reset='0')THEN count<="0000000"; ——若reset为0,则异步清零ELSIF(clk 'event and clk='1')then ——否则,若clk上升沿到IF(count(3 downto 0)="1001")then ——若个位计时恰好到“1001”即9 IF(count<16#60#)then ——又若count小于16#60#,即60HIF(count="1011001")then ——又若已到59Denmin_1<='1';count<="0000000";——则置进位为1及count复0ELSE ——未到59Dcount<=count+7; ——则加7,而+7=+1+6,即作“加6校正”END IF;ELSE ——若count不小于16#60#(即count等于或大于16#60#)count<="0000000"; ——count复0END IF; ——END IF(count<16#60#)ELSIF(count<16#60#)then ——若个位计数未到“1001”则转此句再判count<=count+1; ——若count<16#60#则count加1enmin_1<='0'after 100 ns; ——没有发生进位ELSE ——否则,若count不小于16#60#count<="0000000"; ——则count复0END IF; ——END IF(count(3 DOWNTO 0)=“1001”)END IF; ——END IF(reset=‘0’)END PROCESS;END fun;4、整点报时报警模块VHDL语言源程序(底层文件)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert ISPORT(clk:IN STD_LOGIC;dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0);speak:OUT STD_LOGIC;lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END alert;ARCHITECTURE fun OF alert ISSIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINspeaker:PROCESS(clk)BEGINspeak<=count1(1);IF(clk'event and clk='1')THENIF(dain="0000000")THENIF(count1>="10")THENcount1<="00";——count1为三进制加法计数器 ELSEcount1<=count1+1;END IF ;END IF ;END IF ;END PROCESS speaker;lamper:PROCESS(clk)BEGINIF(rising_edge(clk))THENIF(count<="10")THENIF(count="00")THENlamp<="001";——循环点亮三只灯ELSIF(count="01")THENlamp<="";ELSIF(count="10")THENlamp<="100";END IF;count<=count+1;ELSEcount<="00";END IF;END IF;END PROCESS lamper;END fun;。

相关文档
最新文档