学士学位论文基于vhdl的语言数字钟的设计.docx

上传人:b****5 文档编号:11742343 上传时间:2023-03-31 格式:DOCX 页数:22 大小:152.87KB
下载 相关 举报
学士学位论文基于vhdl的语言数字钟的设计.docx_第1页
第1页 / 共22页
学士学位论文基于vhdl的语言数字钟的设计.docx_第2页
第2页 / 共22页
学士学位论文基于vhdl的语言数字钟的设计.docx_第3页
第3页 / 共22页
学士学位论文基于vhdl的语言数字钟的设计.docx_第4页
第4页 / 共22页
学士学位论文基于vhdl的语言数字钟的设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

学士学位论文基于vhdl的语言数字钟的设计.docx

《学士学位论文基于vhdl的语言数字钟的设计.docx》由会员分享,可在线阅读,更多相关《学士学位论文基于vhdl的语言数字钟的设计.docx(22页珍藏版)》请在冰豆网上搜索。

学士学位论文基于vhdl的语言数字钟的设计.docx

学士学位论文基于vhdl的语言数字钟的设计

 

HEFEIUNIVERSITY

课程设计报告

题  目基于VHDL语言数字钟的设计

系  别

年级专业

姓  名

指导老师

完成时间

 

摘要

本设计主要研究基于VHDL的语音数字钟的设计,该数字钟具有年、月、日、时、分、秒计数显示功能,以24小时循环计数;具有校对功能、整点报时以及清零、使能功能。

本设计主要是在介绍了EDA及VHDL一些相关基本知识的基础上,进一步采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计文件,在Max+plusII工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个多功能语音数字钟,最后通过仿真出时序图实现预定功能。

其中,重点叙述了数字钟的设计原理和分模块实现的方法,详细介绍了各模块的设计程序并给出了各模块的波形仿真图及分析,最后通过在Max+plusII上进行时序仿真,调试运行,在硬件测试后,验证了所设计的系统达到了预先设计目标。

通过这次的设计更进一步地增强了实验的动手能力,对数字钟的工作原理及EDA技术也有了更加透彻的理解。

 

关键词:

VHDLEDA数字钟仿真图

 

TheDesign of aVoiceDigitalClock Based on VHDL

Abstract

Thedesignforamulti-functionaldigitalclock,withayear,month,day,hours,minutesandsecondscountdisplaytoa24-hourcyclecount;haveprooffunctionsandthewholepointtimekeepingfunction.

ThedesignismainlytheintroductionoftheEDAandsomerelatedbasicknowledgeofVHDL,basedonthefurtheruseofEDAtechnology,

hardware-descriptionlanguageVHDLdescriptionlogicmeansforthesystemdesigndocuments,inMaxplusIItoolsenvironment,atop-downdesign,bythevariousmodulestogetherbuildavoicedigitalclock.Finally,atimingdiagramofthesimulationtoachievetheintendedfunction.Describesthekeydesignprinciplesanddigitalclocksub-moduleapproach.Finally,byMax+plusIIontimingsimulation,debuggingandrunning,bythehardwaretesting,thetwosystemsdesignedareverifiedtorealizetheadvanceddesigngoal.

ThroughthisexperimentaldesignfurtherenhancestheabilityofthedigitalclockworksandEDAtechnologyhasamorethoroughunderstanding.

Keywords:

VHDLEDAdigitalclockSimulationdiagram

 

目录

第一章绪论1

1.1选题背景1

1.1.1课题相关技术的发展1

1.1.2课题研究的必要性2

1.2课题研究的内容2

第二章EDA概述3

2.1EDA简介3

2.2可编程逻辑器件FPGA3

2.3硬件描述语言VHDL4

2.3.1VHDL的特点5

2.3.2VHDL的设计结构6

2.3.3VHDL的设计步骤6

2.4MAX+plusⅡ概述7

第三章数字钟的设计要求及总体设计8

3.1设计要求8

3.2总体设计8

3.2.1设计框图8

3.2.2设计原理图9

3.3设计原理10

3.4各模块及其功能10

3.5端口引脚名称11

第四章VHDL程序设计12

4.1分频模块12

4.2软件设计13

4.2.1SECOND模块13

4.2.2MINUTE模块15

4.2.3HOUR模块17

4.2.4扫描模块18

4.2.5显示模块20

4.2.6定时闹钟模块21

4.2.7日计数模块23

4.2.8月计数模块25

4.2.9年计数模块27

4.3硬件测试及说明30

4.3.1顶层模块原理图30

4.3.2电子钟基本功能仿真结果31

4.3.3硬件测试说明32

4.3.4结论32

第五章总结33

参考文献35

致谢36

第一章绪论

现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。

支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。

前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronicdesignautomatic,EDA)技术。

本设计采用的VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。

ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。

而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。

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

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

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

这次设计的内容就是在了解VHDL语言的一些基本语法和概念的基础上,进一步应用VHDL,在MAX+plusII的环境下设计一个电子钟,最后通过仿真出时序图实现预定功能。

1.1选题背景

本节将从EDA应用开发技术与数字钟技术发展的客观实际出发,通过对该技术发展状况的了解,以及课题本身的需要,指出研究基于VHDL系统——数字钟的设计与实现的必要性。

1.1.1课题相关技术的发展

当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。

它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低。

同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。

EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。

美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。

EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。

最终形成集成电子系统或专用集成芯片的一门新技术。

本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。

数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。

因此,本设计采用可编程逻辑器件实现。

1.1.2课题研究的必要性

现在是一个知识爆炸的新时代。

新产品、新技术层出不穷,电子技术的发展更是日新月异。

可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。

在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。

因此我们需要一个定时系统来提醒这些忙碌的人。

数字化的钟表给人们带来了极大的方便。

近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。

多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。

1.2课题研究的内容

本设计主要研究基于VHDL的语音数字钟的设计,要求时间以24小时为一个周期,显示时、分、秒。

具有校时、报时功能以及清零、使能功能。

第2章EDA概述

2.1EDA简介

20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

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

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

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

2.2可编程逻辑器件FPGA

FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。

CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。

它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。

通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。

使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。

这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。

2.3硬件描述语言VHDL

硬件描述语言HDL(HardwareDescriptionLanguage)诞生于1962年。

HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。

主要用于描述离散电子系统的结构和行为。

与SDL(SoftwareDescriptionLanguage)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。

VHDL翻译成中文就是超高速集成电路硬件描述语言,他诞生于1982年。

最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。

1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,(即IEEE标准的1076-1993版本)主要是应用在数字电路的设计中。

现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

目前,它在中国的应用多数是用FPGA/CPLD/EPLD的设计中。

当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

2.3.1VHDL的特点

应用VHDL进行系统设计,有以下几方面的特点:

1)功能强大

VHDL具有功能强大的语言结构。

它可以用明确的代码描述复杂的控制逻辑设计。

并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。

VHDL是一种设计、仿真和综合的标准硬件描述语言。

2)可移植性

VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。

它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。

此外,通过更换库再重新综合很容易移植为ASIC设计。

3)独立性

VHDL的硬件描述与具体的工艺技术和硬件结构无关。

设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。

程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。

4)可操作性

由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。

5)灵活性

VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。

使其在任何大系统的设计中,随时可对设计进行仿真模拟。

所以,即使在远离门级的高层次(即使设计尚未完成时),设计者就能够对整个工程设计的结构和功能的可行性进行查验,并做出决策。

2.3.2VHDL的设计结构

VHDL描述数字电路系统设计的行为、功能、输入和输出。

它在语法上与现代编程语言相似,但包含了许多与硬件有特殊关系的结构。

VHDL将一个设计称为一个实体Entity(元件、电路或者系统),并且将它分成外部的可见部分(实体名、连接)和内部的隐藏部分(实体算法、实现)。

当定义了一个设计的实体之后,其他实体可以利用该实体,也可以开发一个实体库。

所以,内部和外部的概念对系统设计的VHDL是十分重要的。

外部的实体名或连接由实体声明Entity来描述。

而内部的实体算法或实现则由结构体Architecture来描述。

结构体可以包含相连的多个进程process或者组建component等其他并行结构。

需要说明的是,它们在硬件中都是并行运行的。

2.3.3VHDL的设计步骤

采用VHDL的系统设计,一般有以下6个步骤:

1)要求的功能模块划分;

2)VHDL的设计描述(设计输入);

3)代码仿真模拟(前仿真);

4)计综合、优化和布局布线;

5)布局布线后的仿真模拟(后仿真);

6)设计的实现(下载到目标器件)。

第三章数字钟的设计要求及总体设计

3.1设计要求

1)具有时、分、秒计数显示功能,以24小时循环计时;

2)具有清零、使能功能

3)具有调节小时、分功能;

4)具有整点报时功能;

3.1.1功能要求分析

根据以上数字钟的功能要求,需要完成以下几个部分:

1)时钟模块:

由试验箱内部时钟提供,对计数器提供计数时钟信号;

2)秒钟模块:

对秒进行60进制循环计数,并向分钟产生进位,同时具有调分功能;

3)分钟模块:

对分进行60进制循环计数,并向小时产生进位,同时具有调时功能

4)小时模块:

对小时进行24进制循环计数。

3.2总体设计

设计框图

3.3设计原理

电子时钟是一个将“时”“分”“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时;显示满刻度为23时59分59秒,另外具备校时功能。

因此,一个基本的数字钟电路主要由“时”“分”“秒”计数器校时电路组成。

将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累加60秒发送一个“分脉冲”信号,该信号将被送到“分计数器”。

“分计数器”也采用60进制计数器,每累加60分发送一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计数器,可实现对一天24小时的累计。

译码显示电路“时”“分”“秒”计数器的输出状态六段显示译码器译码。

通过六位LED七段显示器显示出来。

校时电路器是用来对“时”“分”“秒”显示数字进行校时调整的,可以根据当前需要的时间来设置电子时钟的时间,使它从这个时间开始计时。

也可以对电子钟复位,重新开始计时。

3.4各模块及其功能

电子钟计数采用层次化设计,将设计任务分成若干个模块,规定每一模块的功能和各模块之间的接口。

1)秒模块:

用来对秒进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则秒计数器加7,目的是使计数值变为BCD码。

若高三位是101时,则有一进位。

当计数器的低四位不为1001时,计数器加1。

2)分模块:

用来对分进行计时,当记到计数器的低四位为1001时,若高三位不是101时,则分计数器加7,目的是使计数值变为BCD码。

若高三位是101时,则有一进位。

当计数器的低四位不为1001时,计数器加1。

3)小时模块:

用来对时进行计数,当记到计数器的低四位为1001时,若高三位小于010时,则时计数器加7,目的是使计数值变为BCD码。

当计数器的高三位小于010,低四位小于1001时,计数器加1;若当计数器记到0100100时,则有一进位。

4)整点报时功能模块ALERT:

输入为分/秒信号,输出为高频声控Q1K和Q500。

第四章VHDL程序设计

4.1Alert模块

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYalertIS

PORT(

clk:

INSTD_LOGIC;

dain:

INSTD_LOGIC_VECTOR(6DOWNTO0);

speak:

OUTSTD_LOGIC;

lamp:

OUTSTD_LOGIC_VECTOR(2DOWNTO0));

ENDalert;

ARCHITECTUREfunOFalertIS

signalcoun:

std_logic_vector(1downto0);

signalcount1:

std_logic_vector(1downto0);

BEGIN

speaker:

process(clk)

begin

speak<=count1

(1);

if(clk'eventandclk='1')then

if(dain="0000000")then

if(count1>="10")then

count1<="00";

else

count1<=count1+1;

endif;

endif;

endif;

endprocessspeaker;

lamper:

process(clk)

begin

if(rising_edge(clk))then

if(coun<="10")then

if(coun="00")then

lamp<="001";

elsif(coun="01")then

lamp<="010";

elsif(coun="10")then

lamp<="100";

endif;

coun<=coun+1;

else

coun<="00";

endif;

endif;

endprocesslamper;

ENDfun;

4.2Hour模块

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYhourIS

PORT(

clk,reset:

INSTD_LOGIC;

daout:

outstd_logic_vector(5downto0));

ENDentityhour;

ARCHITECTUREfunOFhourIS

SIGNALcount:

STD_LOGIC_VECTOR(5downto0);

BEGIN

daout<=count;

process(clk,reset)

begin

if(reset='0')then

count<="000000";

elsif(clk'eventandclk='1')then

if(count(3downto0)="1001")then

if(count<=16#23#)then

count<=count+7;

else

count<="000000";

endif;

elsif(count<16#23#)then

count<=count+1;

else

count<="000000";

endif;

endif;

endprocess;

ENDfun;

4.3Minute模块

LIBRARYieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

ENTITYminuteIS

PORT(

clk,clk1,reset,sethour:

INSTD_LOGIC;

enhour:

OUTSTD_LOGIC;

daout:

outstd_logic_vector(6downto0));

ENDentityminute;

ARCHITECTURE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1