基于FPGA的多功能数字时钟设计_第1页
基于FPGA的多功能数字时钟设计_第2页
基于FPGA的多功能数字时钟设计_第3页
基于FPGA的多功能数字时钟设计_第4页
基于FPGA的多功能数字时钟设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要摘 要本设计为一个多功能数字时钟,可以进行时、分、秒24小时循环计时与显示,并能通过按键实现时间修改、整点报时、闹铃提醒功能。设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段进行设计,在ise工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。系统主要有由分频模块、计时模块、控制调整模块、扫描显示模块、报时模块等组成。用较少按键实现了各项预期功能,能方便完成各个状态之间的转换。关键词 : 数字钟,VHDL,FPGA,闹铃I目 录AbstractThe design for a multi-functional digital clock,

2、with hours, minutes and seconds count display to a 24-hour cycle count; have proof functions and the whole point time keeping function. The use of EDA design technology, hardware-description language VHDL description logic means for the system design documents, in ise tools environment, a top-down d

3、esign, by the various modules together build a FPGA-based digital clock.The main system is made up of the frequency division module, control and adjust module, time module, scan and display decoding module, broadcast module. This design completes all the function with few key, and the transform amon

4、g all the state is very convenience.Keywords: digital clock, VHDL, FPGA, alarmV目录第一章引言11.1选题背景11.2课题价值与意义11.3课题的国内外研究现状11.4课题的难点、重点2第二章FPGA简介32.1FPGA概述32.2FPGA基本结构32.3FPGA系统设计流程52.4FPGA开发编程原理6第三章EDA技术简介83.1EDA技术概述83.2可编程逻辑器件103.3硬件描述语言HDL113.4基于EDA技术的数字系统设计方法133.4.1自低向上的设计方法143.4.2自顶向下的设计方法14第四章数字钟总

5、体设计方案154.1多功能数字时钟系统分析与设计154.2数字时钟工作原理154.3FPGA芯片与开发软件选择164.3.1FPGA 芯片选择策略164.3.2开发软件选择174.4开发平台介绍18第五章单元电路设计205.1分频模块设计205.2计时模块设计215.3按键消抖模块设计225.4按键控制系统设计245.5时间调整模块设计265.6扫描显示与译码模块设计285.7闹铃与整点报时设计30第六章软件仿真与开发板实现316.1仿真方法316.2系统HDL描述波形仿真326.2.1分频模块波形仿真326.2.2计时模块波形仿真326.2.3控制系统波形仿真336.2.4时间调整模块波形仿

6、真346.2.5闹铃与整点报时模块波形仿真346.2.6系统总电路仿真356.3开发板实现356.3.1开发板实现步骤356.3.2开发板实现结果与过程中的问题36第七章结论与展望377.1结论与收获377.2展望37参考文献38致谢39附 录40外文资料原文48外文资料译文52第一章 引言第一章引言1.1选题背景现代电子产品正在以前所未有的革新速度,向着功能多样化、体积最小化、功耗最低化的方向发展。大规模可编程逻辑器件的使用与现代计算机技术的广泛应用是其与传统电子产品最大的区别。另外,现代电子产品设计依靠各种现代技术提高了产品性能、缩小了产品体积、降低了产品消耗、并缩短了研发周期。在这个背景

7、下,EDA技术吸收了多学科最新成果从而形成一门新技术,并在各个领域有了十分重要的应用1。随着数字集成技术与电子设计自动化技术的迅速发展,数字技术已经应用到科研、生产、与人们日常生活的各个领域。数字系统设计的理论与方法也在相应的变化与发展。1.2课题价值与意义现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的现在,随着生活节奏的加快,时间对人们来说越来越宝贵,人们对各种应用器材的要求也越来越高,而数字时钟作为日常生活中特别在准确计数方面的应用很广泛,所以精确且

8、方便使用的数字时钟就被越来越多的人所选择。以往的模拟时钟与机械时钟过于复杂且精度上有很大的瓶颈,数字时钟简单而精确,较好的满足各种需求,能够充分发挥VHDL语言与可编程器件灵活、高效、集成度高的特点,所以已成为各种应用中的首选,多功能数字时钟的设计与实现具有重要的实际意义2。1.3课题的国内外研究现状近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。目前虽然各种时钟层出不穷,但这些时钟不是过于复杂就是精度很低,在这方面有很大的发展潜力,数字时钟可以有效弥补这些缺陷,但仍

9、然需要很好的设计思想。一方面对计时用的标准时钟信号有极强的精度要求,即需要一个很精确的晶振来完成;另一方面,在时间设置、闹铃提醒时,能够与预定的载入时间、响铃时刻完全相符则是对数字电路时序上的一个很大的要求,这就需要对电路结构进行有效的调整,通过提前执行功能等方法将延时弥补1。另外,数字钟的应用极为广泛,多功能数字钟的出现也成为必须,除了基本的计数功能,很多数字钟还具有闹铃、整点报时、年月日提醒、跑表等功能。有效的将这些功能协调工作是对系统的一个很重要的要求。更为至关重要的是人机交互接口便于用户操作。1.4课题的难点、重点由于功能较多,人机交互接口的简易化非常重要,各项功能代表不同的状态,在不

10、同状态切换时的操作也务必简单化。另外,在闹铃、时间设置时各模块之间会有不同的响应行为,它们之间的协调工作也至关重要,这些都将成为设计中的难点。课题的重点除了正常计数外便是闹铃或时间调整了,这是设计最基本的要求也是最主要的要求,其他功能基本是围绕这两个功能服务的。55第二章 FPGA简介第二章FPGA简介2.1FPGA概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的

11、区别,统称为可编程逻辑器件或CPLD/FPGA。CPLD/FPGA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步1。2.2FPGA基本结构F

12、PGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括

13、各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。1.CLB是FPGA的主要组成部分。图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G 、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输

14、入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可编程开关矩输入输出模块互连资源CLB中有许多不同规格的数据选择器,通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。图2-1 CLB基本结构2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入

15、缓冲器和输出触发/锁存器、输出缓冲器组成。3.可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.3FPGA系统设计流程系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配后仿真模型适配后时序仿真适配报告ASIC实现VHDL代码或图形方式输入仿真综合库器件编程文件一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现

16、,这就是TOP DOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2-2所示1。图2-2 CPLD/FPGA系统设计流程流程说明:1.工程师按照“自顶向下”的设计方法进行系统划分。2.输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。3.将以上的设计输入编译成标准的VHDL文件。4.进行代

17、码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操

18、作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8.在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。2.4FPGA开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确

19、定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGA Express、Modelsim、Synposys SVS等)。具体的设计输入方式有以下几种:1.HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与

20、设计人员的水平、经验以及综合软件有很大的关系。2.图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。有的软件3种输入方法都支持,如Active-HDL。MAX+plusII 图形输入方式只支持电路原理图描述和波形描述两种。电路原理图方式描述比较直观和高效,对综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生

21、成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件1。 第三章 EDA技术简介第三章EDA技术简介3.1EDA技术概述二十世纪70年代后期,随着微电子技术和计算机技术的不断发展,电子技术进入了一个崭新的时代,其特征是电子设计自动化技术的应用以空前规模和速度渗透到各行各业。电子设计自动化技术(EDA)是现在电子设计技术的核心,是以微

22、电子技术、计算机科学的发展为基础,融合应用电子技术、智能技术以及计算机图形学、拓扑逻辑学、计算数学等众多学科的最新成果发展起来的一门技术。EDA以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件和实验开发系统为设计工具,在EDA工具软件平台上,运用软件的设计方法完成纯硬件电子系统的设计;逻辑编译、逻辑化简、逻辑分割、逻辑综合、布局布线及优化、仿真测试,以及对于特定目标芯片的适配编译、逻辑映射、编程配置等工作则可由开发工具自动完成,最终形成所需的集成电子系统或专用集成芯片。整个设计过程,设计者就像完成软件设计一样,只需利用硬件描

23、述语言HDL在EDA开发工具中完成对系统硬件功能的描述,而其他大部分工作都可由开发工具完成,整个设计过程方便、高效。随着现代微电子加工技术发展到深亚微米(45nm0.35um)阶段,基于大规模或超大规模集成电路技术的全定制或半定制ASIC(Application Specific IC即专用集成电路)器件大量涌现并获得广泛的应用,使整个电子技术与产品的面貌发生了巨大的变化,极大地推动了社会信息化的发展进程。而EDA技术则是支撑这一发展进程的主要基础之一。EDA技术所涉及的内容比较广泛,大体包含以下四个方面:1.可编程逻辑器件;2.硬件描述语言HDL;3.软件开发工具;4.硬件验证系统。其中,可

24、编程逻辑器件(FPGA / CPLD)、硬件描述语言(VHDL、Verilog、ABEL、AHDL)、软件开发工具由国际著名的主流EDA公司Altera(Quartus)、Lattice(ispEXPERT)、Xilinx(ISE)等提供,硬件验证系统则可由设计者根据使用的FPGA / CPLD型号自行设计,主要提供可编程逻辑器件的下载电路和硬件开发的外围资源,供硬件验证使用。综观近30年的电子技术的发展历程,随着微电子技术和现代电子技术的相互促进、相互推动和相互制约,EDA技术也得到了迅猛发展。EDA技术大致经历了四个发展阶段,即:20世纪70年代后期,CAD技术概念已见雏形,逐渐运用到集成

25、电路版图绘制和PCB布局布线等工作中;20世纪80年代,CAE和CAD技术应用更加广泛,出现了FPGA;20世纪90年代,确立了硬件描述语言的标准化,计算机辅助设计技术在电子技术领域获得更加广泛的应用,集成电路设计工艺进入超深亚微米阶段,大规模可编程逻辑器件陆续面世,促进了EDA技术的形成,这时的EDA工具不仅具有电子系统设计能力,且能提供独立于工艺和厂家的系统级设计能力,具有系统级功能描述的设计构思手段;进入21世纪以后,EDA技术得到了更大的发展,不断推出更大规模的可编程逻辑器件,软硬件IP核的应用得到进一步确认,EDA涉及的领域不断扩大。EDA技术在硬件方面融合了大规模集成电路制造技术,

26、 IC版图设计技术、ASIC测试和封装技术、可编程逻辑器件编程下载、自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计CAD、计算机辅助制造CAM、计算机辅助测试CAT技术及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、长线技术理论、数字信号处理技术、系统建模和优化技术等。在涉及计算机应用、工业自动化、仪器仪表、电子信息等领域的电子系统设计工作中,EDA技术的应用获得了飞速发展;航空航天、卫星测控等高新技术项目的设计开发也逐渐依赖于EDA技术的应用。即便是消费类电子产品的开发,应用EDA技术也能突破一些以往的技术瓶颈,从而极大地提升了产品的稳定性和可

27、靠性,大幅提高了产品的性价比。同时,随着电子产品更新换代的节奏日益加快,各行业对设计自己专用集成电路(ASIC)的要求日趋迫切,EDA技术的广泛应用,为各行各业的电子系统设计者自行开发低成本的ASIC提供了技术基础和技术条件。EDA技术已成为目前电子设计领域中非常重要的组成部分,甚至一些电子设计专家认为,单片机时代即将结束,未来将是EDA的时代。与单片机系统开发相比,利用EDA技术开发可编程逻辑器件,打破了软件和硬件之间的壁垒,是一种借助于软件设计方法实现纯硬件开发的有效途径。实现ASIC芯片,可以是FPGA/CPLD,也可以是半定制或全定制的掩模芯片。而运用FPGA/CPLD开发专用ASIC

28、,可以有效地降低ASIC开发成本,FPGA/CPLD也已成为一种当今开发ASIC芯片的主流器件2。3.2可编程逻辑器件可编程逻辑器件是近三十年才发展起来的一种新型集成电路,是当前数字系统设计的主要硬件基础,是硬件编程语言HDL的物理实现工具。可编程逻辑器件对数字系统设计自动化起着推波助澜的作用,借助可编程逻辑器件实现了数字电子系统自动化设计。目前,由于这种以可编程逻辑器件为硬件载体,从“制造自主芯片”开始的EDA设计模式己成为当前数字电子系统设计的主流,若要掌握世界最先进的数字系统设计方法,就要认识并使用可编程逻辑器件。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集

29、成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,并且希望能较大地缩短ASIC的设计周期,降低设计成本,最好能在实验室里就能设计出自己的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD);其中应用最广泛的就是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD) 。可编程逻辑器件正处于高速发展的阶段。随着微电子工艺技术的革新,新型的FPGA /CPLD规模已达数百万门级甚至上千万

30、门级,功能越来越复杂,并内嵌了复杂功能模块,成本越来越低。高性价比使可编程逻辑器件在电子设计领域扮演着日益重要的角色。低端CPLD已经逐步取代了74系列等传统的数字芯片,高端FPGA也在不断地夺取ASIC的市场份额,特别是目前大规模FPGA多数支持可编程片上系统( SOPC),与RAM、CPU或DSP核等复杂功能模块的相互融合使FPGA已不仅仅是传统的数字电路设计工具,而逐步成为系统级实现工具。可编程逻辑器件硬件上的发展趋势可总结如下:最先进的半导体器件生产工艺将被更广泛的应用于以FPGA为代表的可编程逻辑器件;越来越多的高端FPGA产品将包含CPU或DSP等处理器内核,使FPGA由传统的数字

31、电路设计工具逐步过渡为系统级设计平台;FPGA将包含功能越来越丰富的IP硬核(Hard IP Core),与传统ASIC进一步融合,并通过可编程ASIC技术加快占领ASIC市场,最终取代传统的ASIC;低成本FPGA的集成度越来越高,生产成本越来越低,性价比越来越高,将成为FPGA发展的中坚力量。这几个发展趋势可简称为先进工艺、内嵌处理器核、硬核与可编程ASIC、高性价比器件2。3.3硬件描述语言HDL硬件描述语言(HDL)是一种用文本形式来描述和设计电子系统的语言;是电子系统设计硬件行为描述、结构描述、数据流描述的语言;是各种描述方法中最能体现EDA优越性的描述方法。所谓硬件描述语言,实际就

32、是一个描述工具,其描述的对象是待设计电路系统的逻辑行为、实现该功能的算法、电路结构以及其他各种约束条件等。通常要求HDL既能描述系统的行为,又能描述系统的电路结构。目前利用硬件描述语言可以进行复杂的数字电子系统的设计。随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计,也将成为可能。硬件描述的语言种类很多,到现今已出现了数十种硬件描述语言;有的从PASCAL发展而来,也有一些从C语言发展而来。但大部分是本企业标准,有些HDL已成为IEEE标准(如VHDL和Verilog HDL)。HDL发展的技术源头是:在HDL形成发展之前,已有了许多程序设计语言,如汇编、PASCAL、F

33、ORTRAN、PROLOG、C等。这些语言运行在不同硬件平台、不同的操作环境中,它们适合于描述过程和算法,不适合描述硬件电路。CAD和CAE技术的发展,使人们利用计算机进行建筑、服装、电子等行业的辅助设计成为可能。在利用EDA工具进行电子设计时,简单的逻辑门、分立电子元件再作为越来越复杂的整个电子系统的设计己不适应。任何一种EDA工具,都需要一种硬件描述语言作为EDA工具的工作语言。这些众多的EDA工具软件开发者,各自推出了自己的HDL语言。但语言种类太多反而使用户无所适从,因此急需一种面向多领域、多层次、并得到行业认同的标准HDL语言。最终VHDL和Verilog HDL适应了电子设计发展趋

34、势的要求,先后成为了IEEE标准。在我国比较有影响的硬件描述语言有:ABEL - HDL 语言、VHDL语言、AHDL语言和Verilog HDL语言。本次设计中主要考虑Verilog HDL语言和VHDL语言两种HDL语言。Verilog HDL是在C语言的基础上发展而来的一种描述语言,是目前应用最广泛的硬件描述语言之一。它是1983年由GDA公司的Phil Moorby首创的,最初只设计了一个仿真与验证工具,用于系统仿真与验证,之后又陆续开发了相关的故障模拟与时序分析工具。Verilog HDL最大优点是与硬件工艺无关,这使得工程师在功能设计、逻辑验证阶段无须过多考虑门级电路及其芯片工艺实

35、现的具体细节,只需利用系统设计时对系统性能的要求,辅以不同的约束条件,便可设计出实用的芯片。实际上,这是利用EDA工具,把逻辑验证与具体工艺库匹配、把布局布线和硬件线路延时计算由计算机自动完成,从而减轻了设计者的劳动量。Verilog HDL把数字系统当作一组模块来描述,每一个模块具有模块端口以及关于模块功能的描述,一个模块代表一个逻辑单元,每个模块实现特定的功能,这些模块可以进行层次嵌套,从而实现相互连接,相互通信。由于Verilog HDL是标准化的,所以能把完成的设计移植到不同厂家的不同型号的芯片中去。又由于Verilog HDL设计的信号位数很容易改变,所以可以通过对信号位数的修改,来

36、适应不同的硬件规模,而且Verilog HDL既能进行综合的电路设计,又可进行电路模拟仿真。Verilog HDL语言能够在多个层次上对所设计的系统加以描述,电路描述风格灵活多样,特别适用于描述门级电路,容易控制电路资源,易学易用,如果有C语言的编程经验,可在一个较短的时间内学习和掌握;与之相比,VHDL的学习要困难一些。但Verilog HDL的语法较自由,也容易使初学者犯一些错误,同时其对系统的描述能力不如VHDL语言。VHDL语言设计技术齐全、方法灵活、与芯片制作工艺无关、编程方便;各种硬件描述语言中,VHDL的系统抽象描述能力最强,强大的行为描述能力是避开具体的硬件结构,实现从逻辑行为

37、上描述和设计大规模电子系统的重要保证,所以成为系统设计领域最佳的硬件描述语言,也成为了硬件描述语言的主流。由于可编程逻辑器件编程技术的飞速发展,VHDL所能提供的高阶电路描述语言方式,使复杂的电路可以通过使用VHDL文本描述方式对电路功能或实现的算法进行描述,轻易、快速地达到设计要求。VHDL硬件描述语言所能涵盖的范围相当广,能满足各种不同阶层的设计工程师的需求。运用VHDL硬件描述语言能实现从专用芯片的设计到电路系统的设计,所以VHDL语言毫无疑问地成为电子设计工程师的必备工具。将VHDL程序写入可编程逻辑器件中,做成ASIC芯片,因其开发周期短,升级和更改方便,所以将在很大范围内取代单片控

38、制电路,成为未来数字电子系统设计的主流方向。目前,VHDL语言也已成为FPGA /CPLD设计开发最常用的硬件描述语言之一。VHDL语言作为电子设计自动化的重要组成部分,为借助计算机进行数字电子系统设计提供了一种很好的手段。用VHDL进行设计有诸多优点,VHDL的硬件描述能力很强,可以用于从门级、寄存器传输级直至系统级的描述、仿真、综合和调试。利用VHDL丰富的仿真语句和库函数,可在任何大系统的设计早期检验系统功能可行性,可在远离门级的高层次上进行模拟,随时对设计进行仿真模拟,以利于设计者确定整个工程设计的合理性和可行性。VHDL强大的行为描述能力和程序结构,使其能对大规模设计进行层次化设计,

39、以及对已有设计进行再利用。运用VDHL语言完成的设计可利用EDA软件工具对系统进行逻辑综合和优化,方便完善系统功能,有效地降低开发成本。运用VHDL描述系统具有相对的独立性,对电路的描述可与硬件结构和工艺要求无关,将设计者从烦琐的硬件结构中解放出来。当设计通过仿真验证以后,再用相应的工具软件将设计映射成不同的工艺,使其硬件实现目标器件有广阔的选择范围,并且修改设计与修改目标器件类型相互间不会产生不良影响。VHDL语言标准、规范,语法较为严格,具有类属描述语句和子程序调用等功能,使设计者对已完成的设计,在不改变源程序,只需改变类属参数或函数的条件下,便可轻易地改变设计的规模和系统结构。1995年

40、我国国家技术监督局制定的CAD通用技术规范推荐将VHDL作为我国电子设计自动化硬件描述语言的国家标准。VHDL已成为世界上众多EDA工具和集成电路厂商普遍认同和共同推广的标准化硬件描述语言。掌握VHDL,并运用其设计数字电子系统,是当前进行技术竞争的一项基本技能和强有力的工具3。3.4基于EDA技术的数字系统设计方法EDA ( electronic design automation) 技术的出现使数字系统的设计方法发生了根本性的变化,通常电子设计采用的基本设计方法主要有三种:直接设计、自顶向下(Top - to - Down)设计和自底向上(Bottom -to - Up)设计。直接设计就是

41、将设计看成一个整体,将其设计成为一个单电路模块,此方法适合小型简单的电路设计。而一些功能较复杂的大型数字电子系统设计中往往适合采用层次化的设计方法,分模块、分层次地进行设计描述。描述系统总功能的设计为顶层设计,描述系统中较小单元的设计为底层设计。整个设计过程可理解为从硬件的顶层功能抽象描述至最底层电路结构描述的一系列转换过程,直到最后得到可实现的硬件单元电路描述为止。层次化设计方法比较自由,既可采用自顶向下的设计也可采用自底向上设计,在任何层次都可以采用原理图输入设计方法或硬件描述语言HDL输入设计方法。自顶向下的设计方法就是从设计的总体要求入手,自顶向下地将设计划分为不同的功能子模块,每个模

42、块完成特定的功能,这种设计方法首先确定顶层模块的设计,再进行子模块的详细设计,而在子模块的设计中可以调用库中已有的模块或以前设计完成的功能模块。自底向上的设计方法则与自顶向下的设计方法恰恰相反。3.4.1自低向上的设计方法传统的数字系统的设计往往都采用自底向上(Bottom - to Up)的设计方法,即首先确定构成系统的最低层的电路模块或元件的结构和功能,然后根据主系统的功能要求,将它们组装成更大的功能模块,使它们的结构和功能满足高层系统的要求,依此类推,直至完成整个目标系统的设计。自底向上的设计方法的中心思想是首先根据对整个系统的测试与分析,由基本门单元电路构成各个组合与时序逻辑单元,再由

43、逻辑单元组成各个独立的功能模块,在此基础上再由各个功能模块连成一个完整的系统。该设计方法的特点是:从底层逻辑库中直接调用逻辑门单元,此方法也符合硬件工程师传统的设计习惯;但在进行底层设计时缺乏对整个电子系统总体性能的把握;而且在整个系统完成后,要进行修改就比较困难,设计周期长;随着设计规模与系统复杂度的提高,这种方法的缺点更突出。3.4.2自顶向下的设计方法现代数字系统的设计方法一般都采用自顶向下(Top - to - Down)的层次化设计方法,即从整个系统的整体要求出发,自上而下地逐步将系统设计内容细化,即把整个系统分割为若干功能模块,最后完成整个系统的设计。自顶向下设计方法的中心思想是:

44、系统顶层是一个包含输入输出的顶层模块,并用系统级、行为描述加以表达,同时完成整个系统的模拟和性能分析;整个系统由各个子功能模块组成,而每个子功能模块则由更细化的行为描述加以表达;以此向下,逐层完成各功能模块的功能描述和电路结构描述,最后由EDA综合工具完成到工艺库的映射。自顶向下设计方法具有以下特点:结合模拟手段,可以从开始就掌握实现目标系统的性能状况;随着设计层次向下进行,系统的性能参数将进一步得到细化与确认;可以根据需要及时调整相关的参数,从而保证了设计结果的正确性,缩短了设计周期;设计的电路规模越大,这种方法的优越性体现的越明显。自顶向下的层次化设计方法的有效应用必须基于功能强大的EDA

45、工具,具备集系统描述、行为描述和结构描述功能为一体的硬件描述语言HDL,以及先进的ASIC制造工艺和CPLD /FPGA开发技术。当今,自顶向下的层次化设计方法已经是EDA技术的首选设计方法,是可编程逻辑器件开发的主要设计手段1。第四章 数字钟总体设计方案第四章数字钟总体设计方案4.1多功能数字时钟系统分析与设计本设计主要利用FPGA设计一个多功能数字时钟,要求实现以下功能:(1)24小时循环计时;(2)定时闹铃功能;(3)整点响铃;(4)时间设置、调整功能;数字钟最为重要的功能便是正常计时,也就是对1HZ的时钟信号进行计数。由于起始时间、人为因素、系统误差等,计时可能有误差,需要时间设置功能

46、。整点报时用于提醒人们到达时间节点,闹铃提醒与设置功能使得数字时钟更加的实用。以便于人们更加方便的掌握时间。为了用户更好的使用多功能数字时钟,相比其他一些设计,本设计做到了按键尽可能少,显示更加合理,时间设置更为简单。时间采用6位数码管循环扫描显示,闹铃与整点响铃采用蜂鸣器鸣响。按键设置如下:A. 按下show_alarm键,系统显示此刻闹铃时间;B. 显示闹铃时,按下enter键,系统回到计数状态;C. 按下alarm_adjust键,系统进入设置闹铃状态;D在设置闹铃时,按下enter键,系统进入计数状态,并加载新的闹铃时间进入闹铃存储器;E按下time_adjust键,系统进入时间调整状

47、态;F时间调整状态下,按下enter键,系统加载新时间并进入计数状态;G闹铃或时间调整状态下,按下select键选择要调整时间所在数码管位置,然后按下add或者minus键,对其进行调整;H闹铃响铃或整点响铃时,按下ring键,蜂鸣器停止鸣响;4.2数字时钟工作原理首先由晶振产生稳定的高频脉冲信号,作为数字钟的输入时钟信号,然后经过分频器输出标准秒脉冲,时基电路可以由石英晶体振荡电路构成,如果晶振频率为1MHz,经过6次十分频就可以得到秒脉冲信号。秒计数器计数满60后向分计数器进位,分计数器计数满60后向小时计数器进位。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。计时出

48、现误差时,可以用时间调整电路分别调整时、分、秒。调整电路的调整信号可由控制电路产生,控制电路除了产生一般的时间调整信号外,还产生闹铃设置信号、响铃控制信号,位置闪烁调整信号等。在调整时间的同时,位置闪烁信号可控制需要调整的时间位进行闪烁,以便于调整。控制信号由9个按键输入。译码显示电路由七段译码器完成,显示由数码管构成。当时间与闹铃时间相等或者时间为整点时,产生响铃信号控制蜂鸣器发出响声。总体设计框图如图4-1所示:4-1总体设计框图4.3FPGA芯片与开发软件选择4.3.1FPGA 芯片选择策略FPGA芯片的工艺一直走在芯片设计领域的前列,产品更新换代速度非常快。稳定性和可靠性是产品设计需要

49、考虑的关键因素。厂家最新推出的FPGA系列产品一般都没有经过大批量应用的验证。选择这样的芯片会增加设计的风险。而且,最新推出的FPGA芯片因为产量比较小,一般供货情况都不会很理想,价格也会偏高一些。如果成熟的产品能满足设计指标要求,那么最好选这样的芯片来完成设计。FPGA系统设计一般采用硬件描述语言(HDL)来完成设计。这与基于CPU的软件开发又有很大不同。特别是算法实现的时候,在设计之前,很难估算这个算法需要占多少FPGA的逻辑资源。作为代码设计者,希望算法实现之后再选择FPGA的型号。但是,现在的设计流程一般都是软件和硬件并行开始设计。也就是说,在HDL代码设计之前,就开始硬件板卡的设计。

50、这就要求硬件板卡具备一定的兼容性,可以兼容不同规模的FPGA芯片。本设计选择了实验室中常用的Xilinx公司Spartan3系列芯片。4.3.2开发软件选择 Xilinx 是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的 高级集成电路、软件设计工具以及定义系统级功能的IP(Intellectual Property)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE 14.1 系列,集成了FPGA开发需要的所有功能,其主要特点有:(1)包含了Xilinx新型SmartCompile技术

51、,可以将实现时间缩减2.5 倍,能在最短的时间内提供最高的性能,提供了一个功能强大的设计收敛环境;(2)全面支持Virtex-5系列器件(业界首款65nm FPGA);(3)集成式的时序收敛环境有助于快速、轻松地识别FPGA设计的瓶颈;(4)可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本。Foundation Series ISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA 芯片占有很大的市场,使其成为非常通用的FPGA工具软件。ISE作为高效的EDA 设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。ISE的主

52、要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。 设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE 文本编辑器(The ISE Text Editor),用于原理图编辑的工具ECS(The Engineering Capture System),用于生成IP Core的Core Generator,用于状态机设计的StateCAD 以及用于约束文件编辑的Constraint Editor等。综合:ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌Mentor Gra

53、phics公司的Leonardo Spectrum和Synplicity公司的Synplify,实现无缝链接。仿真:ISE 本身自带了一个具有图形化波形编辑功能的仿真工具HDL Bencher,同时又提供了使用Model Tech公司的Modelsim进行仿真的接口。实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。下载:下载功能包括 BitGen,用于将布局布线后的设计文件转换为位流文件,还 包括了ImPACT,功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。4.4开发平台介绍ETL-001 Xilinx FPGA开发板是Xilinx公司S

54、partan 3A系列中的器件,XC3S200A封装为VQFP100为主芯片,辅以板上的下载配置电路,数码管和LED显示电路,按键和开关电路以及丰富的多种外设接口,包括PS2 键盘,PS2鼠标,VGA 显示器,RS-232双串口等,以方便进行信息的人机交互。该开发板所提供的主芯片XC3S200A 是Xilinx公司最新推出的90nm半导体工艺的低端低成本的FPGA芯片,可以广泛地运用在通信,军事,电力,控制,消费电子,汽车电子绝大多数电子应用领域。该芯片是基于SRAM工艺的超大规模可编程逻辑芯片,提供了高达20 万的等效系统门,3854个查找表(LUT),3854个寄存器(FF),288Kbi

55、t的块状SRAM以及16个18*18 的乘法器,以及60 对差分I/O,LVDS、DDR/DDR2、PCI等丰富的接口资源。FPGA芯片选用XILINX公司当前低端主流芯片XC3S200A,该系列在之前的3E系列上更加强了用户IO的电平兼容能力以及支持热拔插。非常适合用于设计连接,可以有效的防止在设计中由于错误连接导致的芯片损坏。选用的FTG256的BGA封装不仅能够在最低成本的前提下保证信号传输的稳定性,同时也能完全兼容同系列更多逻辑门的XC3S400A(40万门)芯片的替换,为之后开发板高级实验扩展提供了准备。电源设计选用了两级级联的方式,以扩展更广的输入电压范围(7.515V)兼容以及更

56、安全的系统供电方式。配置方式选用常规的JTAG接口+主动配置模式,最大程度简化设计风险以及调试难度,便于初学者入门学习。开发板外围功能包括:8个按钮开关、2个8位拨动开关、8位共阳数码管、16X16 LED点阵、8个LED显示、一个蜂鸣器、温度传感器、AD电压转器、RS232接口转换器以及外置48MHz有源晶振。同时,为了软核在SOPC嵌入式方面的扩展,板上还增加设计了NOR FLASH存储器。为了便于外接逻辑分析仪以及扩展使用,实验板上增设了33个外扩IO口,以满足扩展功能需要。实验板外围配套了一个128 X 64的点阵液晶显示器,通过实验板的预留接口连接。以完善实验板综合功能。系统设置了复

57、位按钮开关以及悬挂开关,可以实现系统不断电情况下的软复位以及睡眠状态。第五章 单元电路设计第五章单元电路设计5.1分频模块设计系统需要产生1HZ的标准时钟信号用于计时, 1KHZ的时钟信号用于数码管扫描显示,100HZ的信号用于按键消抖,为使得时钟精准,本设计采用48MHz的有源晶振,对晶振输出的48MHZ信号进行分频得到需要的信号。分频的主要原理为通过计数器对需要分频信号上升沿的计数,触发输出信号的反转。这样很容易得到所需频率。电路端口图如图5-2所示:图5-2 分频模块外部端口图其中clk为48MHZ时钟输入信号,carry_out_1hz,为1HZ标准时钟输出信号,carry_out_1000hz为1KHZ输出信号。分频模块算法框图如图5-3所示:5-3 分频模块算法流程图5.2计时模块设计本设计需要实现24小时循环计时,故需设计小时、分钟、秒三个计数器。其中秒与分钟计数器为60进制计数器,每次计数到59后,下一个输入信号上升沿到了时进行清零,并产生有效进位信号。而小时计数器为24进制计数器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论