




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 设 计 第 45 页 共 45 页1 引言11 数字电子钟的发展与应用20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品 几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但 是,一旦重要事情,一时的耽误可能酿成大祸。例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。尤其在医院,每次护士都会给病人作皮试,测试病人是否对药物过敏。注射后,一般等待5分钟,一旦超时,所作的皮试试验就会无效。手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。所以,要制作一个定时系统。随时提醒这些容易忘记时间的人。 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电 气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 12 关于本次设计数字电子钟是用数字集成电路做成的现代计时器,与传统的机械钟相比,它具有走时准确(用高稳定度石英晶体振荡器作时钟源)、显示直观(用液晶或荧光七段数码管显示器)、无机械传动装置等优点,因而广泛用于车站、码头、机场等公共场所。在控制系统中,也常用作定时器时钟源。数字钟是数字电路中计数(分频)、译码、显示及时钟脉冲振荡器等组合逻辑电路、时序逻辑电路和脉冲产生电路的综合应用。本次设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。用Altera公司的开发平台QUARTUS6.0来仿真,最后下载到EP1K100QC208-3器件中进行验证。数字钟可以由各种技术实现,如单片机等。利用可编程逻辑器件具有其他方式没有的特点,它具有易学、方便、新颖、有趣、直观、设计与实验项目成功率高、理论与实践结合紧密、体积小、容量大、I/O口丰富、易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良特性,应用非常方便。因此本设计采用可编程逻辑器件实现。本次设计第二部分说明了数字钟的功能框图,并进行了简要的说明。另外,本设计还说明了EDA设计的基本方法、Verilog HDL设计的流程和EDA工具等。在硬件电路设计部分,主要说明了数字钟的原理图、各个功能模块的硬件实现方法。软件电路设计主要说明了各功能模块的Verilog 实现,并给出了关键的功能模块的代码。最后,对本设计进行了系统测试和结果分析。2 数字钟设计的总体方案2.1 数字钟的构成数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。图2-1所示为数字钟的组成框图。主要包括时间基准电路、计数器电路、控制电路、译码和显示电路。其中的控制逻辑电路是比较灵活多样的,不断完善它可以增强数字钟的功能。2-1 数字钟的组成框图2.2 数字钟的基本工作原理石英晶体振荡器产生稳定的高频脉冲信号作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时可以用校时电路校时、校分。在控制信号中除了一般的校时信号外,还有时钟使能信号、时钟清零信号。时基电路可以由石英晶体振荡电路构成,如果晶振频率为1MHz,经过6次十分频就可以得到秒脉冲信号。译码显示电路由七段译码器完成,显示由LED数码管构成。3 系统硬件设计3.1 EDA技术3.1.1 EDA技术EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用现场可编程门阵列(FPGA)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次的电子设计方法。下面介绍与EDA基本特征有关的几个概念。a)“自顶向下”的设计方法“自顶向下”这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次成功率。现代集成电路制造工艺技术的改进,使得在一个芯片上集成数十乃至数百万个器件成为可能,但我们很难设想仅由一个设计师独立设计如此大规模的电路而不出现错误。利用层次化、结构化的设计方法,一个完整的硬件设计任务首先由总设计师划分为若干个可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模块分配给下一层的设计师,这就允许多个设计者同时设计一个硬件系统中的不同模块,其中每个设计者负责自己所承担的部分;而由上一层设计师对其下层设计者完成的设计用行为级上层模块对其所做的设计进行验证。图3-1(1)为自顶向下(TOP-DOWN)的示意图,以设计树的形式绘出。自顶向下的设计(即TOP_DOWN设计)是从系统级开始,把系统划分为基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的元件来实现为止。对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进行方案的总体论证、功能描述、任务和指标的分配。随着系统变得复杂和庞大,特别需要在样机问世之前,对产品的全貌有一定的预见性。目前,EDA技术的发展使得设计师有可能实现真正的自顶向下的设计。系统级设计模块A1模块A2模块A3模块A4模块A5模块A6模块A7模块B模块C模块A 图3-1(1) TOP_DOWN设计思想b) FPGA概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,FPGA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB)、输入/输出模块(IOB)和互连资源(IR)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的借口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。CPLD/FPGA系统设计的工作流程如图3-1(2)所示。系统划分(1)VHDL代码或图形方式输入(2)编译器(3)代码级功能仿真(4)综合器(5)仿真综合库适配前时序仿真(6)适配器(7)适配后仿真模型(8)器件编程文件(8)适配报告(8)适配后时序仿真CPLD/FPGA实现ASIC实现图3-1(2) CPLD/FPGA系统设计流程流程说明:1工程师按照“自顶向下”的设计方法进行系统化分。2输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。3将以上的设计输入编译成标准的VHDL文件。4进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步适用于大型设计,一般情况下,这一步仿真步骤可略去。5利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化时针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。7利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。c) 硬件描述语言硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行“A=BC”即可。而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL。1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD1076)。d) EDA系统框架结构EDA系统框架结构(Framework)是一套配置和使用EDA软件包的规范。目前主要的EDA系统都建立了框架结构,如Cadence公司的DesignFramework和Mentor公司的FalconFramework,而且这些框架结构都遵守国际CFI组织制定的统一技术标准。框架结构能将来自不同EDA厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享,是并行工程和自顶向下设计方法的实现基础。3.1.2 系统实现本次实现系统的环境如下:1) 硬件:Acer TraveIMate 2) 系统:WindowsXP 3) 软件:Altera公司的QUARTUSII 6.0。32 电路总体设计数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。我们使用石英晶体振荡器电路构成数字钟。以10进制计数器74HC390来实现时间计数单元的计数功能。采用CD4511作为显示译码电路。选择 LED数码管作为显示单元电路。由CD4511把输进来的二进制信号翻译成十进制数字,再由数码管显示出来。用COMS与或非门实现的时或分校时电路。该电路还有在整点前10秒钟内开始整点报时的功能。报时电路可选74HC30来构成。时间以12小时为一个周期。3.2.1 晶体振荡电路晶体振荡器是构成数字式时钟的核心,振荡器的稳定度及频率的精确度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段信号均会被它所衰减,而且,振荡信号的频率与振荡电路中的R、C元件的数值无关。因此,这种振荡电路输出的是准确度极高的信号。然后再利用分频电路,将其输出信号转变为秒信号,其组成框图如图3-2(1)。石英晶体振荡电路分频电路秒信号图3-2(1) 秒信号产生电路框图3.2.2 分频器电路由数字钟的晶体振荡器输出频率较高,为了得到1Hz的秒脉冲输入,需要对振荡器的输出信号进行分频。实现分频器的电路是计数器电路,一般采用多级二进制计数器来实现。例如,将32767Hz的振荡信号分频为1Hz的分频倍数为32767(),即实现该分频功能的计数器相当于15极二进制计数器。本设计中采用CD4060来构成分频电路。CD4060在数字集成电路中可实现的分频次数最高,而且CD4060还包含振荡电路所需的非门,是用更为方便。CD4060计数为最高为14级二进制计数器,首先由U1(CD4060)的Q14(第三脚)产生2Hz的振荡信号,然后由二进制计数器CD4040和两个U3A(74LS20),U3B(74LS20)组成120计数器分频,从U3B的输出端输出一个分脉冲,作为分钟计数器的分钟信号,按键开关S作为分钟调时有手动脉冲开关,每按动一次,从U3B的输出端输出一个脉冲,同时U2的Q1管脚输出秒脉冲信号驱动发光二极管LED1,LED2,作为秒指示(因为2Hz的信号经1位二进制计数器分频后为1Hz)。如图3-2(2)所示。图3-2(2) 分频电路3.2.3 时间计数电路秒脉冲信号经过各级计数器,分别得到“秒”个位、十位,“分”个位、十位以及“时”个位、十位的计时。“秒”、“分”、“时”计数器为60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个六十进制(秒、分)、一个二十四进制(时)的计数器。它们都可以用两个“二-十进制”计数器来实现。六十进制计数器和二十四进制计数器均可由双BCD加法器CC4518组成。因为一片CC4518内含有两个十进制计数器,因此用一片CC4518就可以构成六十进制或二十四进制计数器了。选取CC4518和与非门CC4511、采用反馈复位法构成的六十进制和二十四进制加法计数器电路分别见图3-2(3)和图3-2(4)所示。图3-2(3)60进制计数器图3-2(4) 24进制计数器(a) 计数器六十进制的接法图3-2(3)个位为十进制,故EN=1,Cr=0,计数到9以后自动清零,向高位进位信号采用=1001,将,送入与非门,与非门的输出可以做进位信号。因为:当,不同时为1,Y为1;当,同时为1时,Y为0,同时计数器到9后自动清零,这时Y又变为1,即出现了一个上升沿。十位接成六进制,利用=0110的信号清零,同时结合高位进位。(b) 二十四进制计数器的接法个位为十进制计数器,当计数器计数到24时,即十位为0010,个位为0100时,同时清零,达到了二十四进制计数器的目的,即高位的,低位的送入与非门做清零信号,如图3-2(4)二十四进制计数器。在这两个电路中,计数器的控制脉冲由CP端输入,1EN接高电平;计数器的控制脉冲由EN端输入,状态如图3-2(5)看出:当计数器的状态由1001向0000转换时,1Q4(2EN)正好是一个下降沿,高位的计数器开始计数。在图3-2(3)中,将2Q3和2Q2相与后接至CR端,构成了六十进制计数器,在图3-2(4)中,将2Q2和1Q3相与后接至CR端构成了二十四进制计数器。为了保证电路能可靠地工作,在“秒”、“分”、“时”计数器反馈复位支路中,加了一个RS触发器。CPQ1Q2Q3Q42EN(1Q4)1011图3-2(5) 计数器状态0各功能模块中用到的门电路可以采用4011(四2输入与非门)来实现,其外部引线排列见图3-2(6)所示。将与非门组成的RS触发器的输出接至计数器的复位端,展宽了复位和进位信号的脉冲宽度,使其在本位可靠地复位的同时向高位提供了进位触发。 14 13 12 11 10 9 8CC4011 1 2 3 4 5 6 7VDD4B4A4Y3Y3B3A1A1B1Y2Y2A2BVSS图3-2(6) CC4011引线排列3.2.4 译码显示电路数码管是数码显示器的俗称。常用的数码显示器有半导体数码管,荧光数码管,辉光数码管和液晶显示器等。译码和数码显示电路是将数字钟和计时状态直观清晰地反映出来,被人们的视觉器官所接受。显示器件选用LED七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字信号。本设计所选用的是半导体数码管,是用发光二极管(简称LED)组成的字形来显示数字,七个条形发光二极管排列成七段组合字形,便构成了半导体数码管。半导体数码管有共阳极和共阴极两种类型。共阳极数码管的七个发光二极管的阳极接在一起,而七个阴极则是独立的。共阴极数码管与共阳极数码管相反,七个发光二极管的阴极接在一起,而阳极是独立的。当共阳极数码管的某一阴极接低电平时,相应的二极管发光,可根据字形使某几段二极管发光,所以共阳极数码管需要输出低电平有效地译码器去驱动。共阴极数码管则需输出高电平有效地译码去驱动。当数字钟的计数器在CP脉冲的作用下,按60秒为1分、60分为1小时,24小时为1天的计数规律计数时,就应将其状态显示成清晰地数字符号。这就需要将计数器的状态进行译码并将其显示出来。我们选用的计数器全部是二-十进制集成片,“秒”、“分”、“时”的个位和十位的状态分别由集成片中的四个触发器的输出状态来反映的。每组(四个)输出的计数状态都按BCD代码以高低电平来表现。因此,译码显示电路选用BCD-7段锁存译码/驱动器CC4511。七段显示数码管的外部引线排列见图3-2(7)和3-2(8)。现以60进制“秒”计时电路为例,将计数器、译码显示器和显示数码管连在一起,如图3-2(9)。 图3-2(7)译码器外引线排列 图3-2(8)二极管示意图图3-2(9) 译码显示器和显示数码管3.2.5 校时电路实际的数字钟表电路由于秒信号的精确性不可能做到完全(绝对)准确无误,加之电路中其他原因,数字钟总会产生走时误差的现象。因此,电路中就应该有校准时间功能的电路。3.2.6 整点报时电路数字钟整点报时是最基本的功能之一。现在设计的电路要求电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号每隔1秒钟鸣叫一次,每次持续时间为1秒,共响5次,前4次为低音500Hz,最后一声为高音1000Hz。4 电路的软件设计4.1 程序的流程图VHDL语言进行电路设计的最大优点是其与工艺无关性,只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路,并且,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,为了能更方便、简单地编程,本设计先画出程序的数据流向,即流程图,然后再根据流程图来编写程序。首先,根据要求,如果系统复位信号(reset)为低电平时,输出为零,数码管显示为零。如果reset为高电平,系统可以正常工作,此时,秒从零开始计时,当秒计数器计满60秒时,输出秒进位信号,送计分电路;当分计数器计满60分时,输出分进位信号,送计时电路:当时计数器计满24或12小时后,时、分、秒计数器同时自动复0。又开始新的一天或12小时计时。综上所述,可以得到如图4-1所示的流程图。开 始振荡器分频消抖Reset?秒的clk分的clk时的clk100Hz信号24000分频1Hz信号40000000分频六选一控制电路七段译码显示输 出图4-1 数字钟流程图4.2 FPGA开发编程原理 硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。 CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGA Express、Modelsim、Synposys SVS等)。4.2.1 编程工具QuartusEDA开发工具是指以计算机硬件和系统软件为工作平台,汇集了计算机图学、拓扑逻辑学、计算数学以及人工智能等多种计算机应用学科的最新成果而开发出来的用于电子系统自动化设计的应用软件。现代数字系统设计技术的发展主要体现在EDA领域,而EDA技术的关键之一就是EDA开发工具。如果没有EDA工具的支持,想要完成大规模、超大规模集成电路或复杂数字系统的设计是不可想象的。Quartus是Altera公司推出的最新一代的可编程逻辑器件开发系统。与原先的MAX+PLUS相比,它具有更强大的功能,能够适应更大规模、更复杂的可编程逻辑器件的开发。a) 支持多平台工作。Quartus既可以工作于“PC+Microsoft Windows操作系统”或“PC+Red Hat Linux操作系统”上,又可以在多种工作站上运行。b) 提供与器件结构无关的设计环境。Quartus开发系统的核心编译器(compiler)不仅支持Altera公司原来的MAX和FLEX等系列的可编程逻辑器件,而且还支持APEX、Excalibur、Mercury、Stratix、Cyclone等新的器件系列,提供了一个真正与器件结构无关的可编程逻辑开发环境。设计者无须精通器件内部复杂的结构,只要采用常见的设计输入方法(如原理图输入、HDL输入等)完成对设计的描述,Quartus就能自动地进行逻辑综合和适配,将用户输入的设计文件编译成可编程逻辑器件最终需要的编程文件格式。c) 完全集成化。Quartus的设计输入、编译处理、仿真和定时分析以及编程下载等工具都集成在统一的开发环境下,提高了设计的效率,缩短了开发周期。d) 具有开放的界面。通过EDIF网表文件、参数画模块库(LPM)、VHDL、Verilog HDL等形式,Quartus可以与Cadence、MentorGraphic、OrCAD、Synopsys、Synplicity及Viewlogic等许多公司提供的多种EDA工具接口。Quartus的Nativelink特性使其与其他符合工业标准的EDA工具之间的联系更加紧密,用户可以直接在Quartus开发环境中调用其他的EDA工具来完成设计输入、综合、仿真和定时分析等工作。e) 支持硬件描述语言。Quartus支持三种HDL输入、包括被列入IEEE标准的VHDL(1987版和1993版)和Verilog HDL(1995版和2001版)以及Altera公司自己开发的AHDL。f) 具有丰富的设计库。Quartus提供丰富的库单元供设计者调用,其中包括一些基本的逻辑单元(如逻辑门、触发器等)、74系列的器件和多种参数化的逻辑宏功能(megafunction)模块(如乘法器、FIFO、RAM等)。调用库单元进行设计,可以大大减轻设计人员的工作量,缩短设计周期。g) 提供强大的在线帮助。Quartus软件不仅带有详细的使用说明,而且还加强了网络功能,使用户从软件内部就可以直接通过Internet获得Altera公司的技术支持。4.2.2 VHDL语言VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 VHDL语言的特点:VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用 , 它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来 ,VHDL 语言主要具有以下优点:(1) VHDL 语言功能强大 , 设计方式多样 VHDL 语言具有强大的语言结构, 只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时, 它还具有多层次的电路设计描述功能。此外 ,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现, 这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样 , 既支持自顶向下的设计方式, 也支持自底向上的设计方法; 既支持模块化设计方法, 也支持层次化设计方法。 (2) VHDL 语言具有强大的硬件描述能力 VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路 , 也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力 VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述 , 它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关 采用 VHDL 语言描述硬件电路时, 设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化, 而不需要考虑其他的问题。当硬件电路的设计描述完成以后 ,VHDL 语言允许采用多种不同的器件结构来实现。 (5) VHDL 语言程序易于共享和复用 VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中 , 设计人员可以建立各种可再次利用的模块 , 一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计 , 而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块, 将这些模块存放在库中 , 就可以在以后的设计中进行复用。 由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言 , 因此它可以使设计成果在设计人员之间方便地进行交流和共享, 从而减小硬件电路设计的工作量, 缩短开发周期。4.3 功能模块的VHDL程序实现4.3.1 秒和分钟计数器秒、分计数模块都是60进制的加法计数器,时计数模块是24进制计数器。与一般的标准计数器不同的是秒、分、时计数模块中分别添加了调节秒、分和小时的功能,即当clk的上升沿到来时,分别调节qin的高低电平,就可达到调整秒、分、小时的目的。其中60进制加法器是由一个10进制和一个6进制计数器组成。60进制计数器的流程图如图4-3(1):开 始rst0输出0000 0000clk=1tem11001秒低位变为0tem20101秒高位变为0,向分个位进一秒高位自动加一,不向分进位其它其它秒低位自动加一tem1的值赋给秒低位,tem2的值赋给秒高位结 束图4-3(1) 60进制计数器流程图60进制秒计数器和分钟计数器逻辑仿真图如图4-3(2):图4-3(2) 60进制计数器逻辑仿真图60进制计数器的元件符号如图4-3(3):图4-3(3)60进制计数器元件符号功能:60进制计数器接口:clk-时钟输入 qout1-个位BCD输出 qout2-十位BCD输出 carry-进位输出信号4.3.2 小时计数器24进制计数器的流程图如图4-3(4):开 始rst0输出0001 0010clk=1tem3,tem4tem4=0010输出0000 0000,向时低位进一tem31001tem3=0000tem3自动加一,不向分进位其它其它不向前进位tem3的值赋给分低位,tem4的值赋给分高位结 束图4-3(4) 24进制计数器流程图tem3=0011tem4tem4=00001001tem4自动加一,不向分进位其它小时计数器逻辑仿真图如图4-3(5):图4-3(5) 24进制计数器逻辑仿真图24进制计数器元件符号如图4-3(6):图4-3(6)24进制计数器元件符号实体名:fen24功能:24进制计数器接口:clk-时钟输入 qout1-个位BCD输出 qout2-十位BCD输出 carry-进位信号输出4.3.3 六选一的控制电路六选一控制电路的流程图如图4-3(7):开 始rst0clk=1cnt7cnt变为0其它cnt=0时输出qin1的值,sel为11111110;cnt=1时输出qin2的值,sel为11111101;cnt=2时输出1111,sel为11111011;cnt=3时输出qin3的值,sel为11110111;cnt=4时输出qin4的值,sel为11101111;cnt=5时输出1111,sel为11011111;cnt=6时输出qin5的值,sel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力如何赋能人文发展
- 2025年建筑医院环境设计与规划试题答案及解析
- 2025年内科疾病临床诊断考试答案及解析
- 2025年药学学习药物不良反应的模拟测试答案及解析
- 2025年皮肤科皮肤疾病诊断鉴别考核答案及解析
- 2025年急诊医学生命体征监测技能考核答案及解析
- 湾区新质生产力布局
- 民族团结与爱国主义课件
- 吉林省新质生产力的发展探索
- 2025年全科护理围手术期护理技能测评答案及解析
- 超级充电综合站及配套设施建设项目可行性研究报告
- 中国心房颤动管理指南2025解读
- 《云计算与大数据》课件第3章“大数据”关键技术与应用
- 2025-2026学年人教大同版(2024)小学英语三年级上册教学计划及进度表
- 2025-2026学年陕旅版(三起)(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年血液净化护理知识测试题库附答案
- 心电监护血氧饱和度监测技术
- 局工作秘密管理暂行办法
- 智能仓储物流管理平台的设计与开发
- 2025上海戏剧学院辅导员考试试题及答案
- 2023年黑龙江省汤原县事业单位公开招聘辅警31名笔试题带答案
评论
0/150
提交评论