1、xx 大学学士学位论文- I -基于 FPGA 的数字电子钟系统设计摘要随着电子技术的飞速发展,现代电子产品渗透到了社会的各个领域,并有力地推动着社会生产力的发展和社会信息化程度的提高。在现代电子技术中,可编程器无疑是扮演着重要角色。现场可编程门阵列(FPGA)是近年来迅速发展起来的新型可编程器,其灵活的可编程逻辑可以方便的实现高速数字信号处理。它突破了并行处理、流水级数的限制,具有反复的可编程能力,从而有效的地利用了片上资源,加上高效的硬件描述语言(VHDL),从而为数字系统设计提供了极大的方便。本文较系统地介绍了 FPGA 的基本结构、基本原理、功能特点及其应用;阐述了数字系统设计的基本思
2、想及设计流程,同时,也概述了 FPGA 在数字系统设计中的作用,基于 FPGA 的数字系统设计方法和流程;简要介绍了 VHDL 语言的发展历程,VHDL 语言的功能特点等。本文的主要内容是根据上述原理和方法设计一个电子钟系统,目的在于通过该系统的功能,体现出 FPGA 在数据处理中的应用。该电子钟系统功能齐全,设计思路清晰。系统程序基于 VHDL 语言,采用模块化设计方法。系统设计包含 8 个子程序模块:分频组件、六十进制计数器组件、二十四进制计数器组件、闹钟设定组件、校时组件、i60BCD 组件、i24BCD 组件、以及二进制转换成七段码组件。每个子程序均经过 EDA 工具仿真,并附有仿真图
3、,最后将各模块组装为一个整体电子钟。关键词 电子设计自动化;现场可编程门阵列;硬件描述语言;电子钟xx 大学学士学位论文- II -Digital Electronic Clock Design Based on Technology of FPGAAbstractWith the rapid development of electronic technology, modern electronic products have infiltrated into various fields of the society, and have effectively promoted the
4、development of social productive forces and social information, also increased. In modern electronic technology, the programmable logic devices play a key role. Field programmable gate arrays (FPGA), a new type of programmable device, is developing rapidly recent years. It introduced the concept of
5、flexible programmable logic, which can realize high-speed digital signal processing conveniently. It broke through the parallel processing, water levels of restrictions, has repeatedly programmable capacity to effectively use the on-chip resources, coupled with efficient hardware description languag
6、e VHDL, so as to design digital systems conveniently. This article introduces a system of the basic structure of the FPGA, the basic principle of features and applications; expounded on the basic design of digital systems thinking and design process, at the same time, also outlined the FPGA in the d
7、esign of digital systems, FPGA-based digital system design methods and processes; gave a briefing on the development of VHDL language, VHDL language and other features. The main work is based on the principles and methods, design an electronic clock system to the adoption of the system, embodied in
8、the FPGA data processing of applications. The electronic clock system is fully functional, designed clear ideas. Based on VHDL system procedures, The system is modular in design methods. It includes 8 sub-system design process modules:frequency division system, 60 M counter system, 24 M counter syst
9、em, Alarm clock settings system, timing system, i60BCD system, i24BCD system, and convert binary into Seven-Segment code system. each subroutine have been simulated by EDA tools, with a simulation map. The modules will be the final assembly as a whole - the electronic clock.Key words EDA;FPGA; VHDL;
10、 Electronic clockxx 大学学士学位论文- III -目录摘要 .IAbstract.II第 1 章 绪论 .11.1 课题背景和意义 .11.2 可编程器件的发展历程 .11.2.1 早期的可编程器件 PLD.21.2.2 高级可编程器件 FPGA/CPLD.31.3 国内外研究现状 .41.4 本文主要内容 .5第 2 章 FPGA 基本结构及数字系统设计原理 .62.1 FPGA 的基本结构及工作原理 .62.1.1 基于查找表结构的 FPGA .82.1.2 查找表结构的 FPGA 逻辑实现原理 .82.1.3 FPGA 的工作原理 .92.2 数字系统设计概述 .92
11、.2.1 数字系统的组成 .102.2.2 数字系统设计方法 .102.2.3 数字系统设计的一般过程 .112.3 本章小结 .12第 3 章 数字电子钟功能模块设计 .133.1 数字系统设计中的 FPGA .133.1.1 FPGA 在数字系统设计中的作用 .133.1.2 基于 FPGA 的应用系统设计 .133.2 数字系统设计的重要工具 VHDL .163.2.1 VHDL 语言的特点 .163.2.2 基于 VHDL 的系统设计流程 .173.3 电子钟主要功能模块设计 .183.3.1 分频模块 .183.3.2 六十进制计数器模块 .193.3.3 二十四进制计数器模块 .2
12、03.3.4 校时模块 .223.3.5 BCD 七段显示译码器 .233.4 本章小结 .23第 4 章 电子钟模拟仿真及其分析 .244.1 系统设计的总体思路 .24xx 大学学士学位论文- IV -4.2 各功能模块仿真分析 .254.2.1 分频组件 .254.2.2 六十进制计数器组件 .254.2.3 二十四进制计数器组件 .264.2.4 闹钟设定组件 .264.2.5 校时组件 .274.2.6 i60BCD 组件 .284.2.7 i24BCD 组件 .294.2.8 二进制转换成七段码组件 .304.3 数字电子钟功能仿真图 .304.4 采用 FPGA 设计优势分析 .
13、334.5 本章小结 .34结论 .35致 谢 .36参考文献 .37附录 A.38附录 B.43附录 C.47附录 D.48xx 大学学士学位论文- 1 -第 1 章 绪论1.1 课题背景和意义20 世纪 70 年代,随着中小规模集成电路的开发应用,传统的手工制图设计印刷电路板和集成电路的方法已无法满足设计的精度和效率的要求。因此工程师们开始进行二维平面图形的计算机辅助设计,以解脱复杂机械的版图设计工作,这就产生了第一代 EDA 工具。在 80 年代,电子产品的规模和复杂程度的增加促使第二代 EDA 工具的产生。第二代 EDA 主要以计算机仿真和自动布局布线技术为核心,与此同时,还引出了以半
14、定制概念为特征的专用集成电路概念。EDA 技术的物质基础即为可编程逻辑器件,又称为可编程 ASIC。目前,代表可编程器件发展潮流的是复杂可编程逻辑器件(CPLD) 和可编程逻辑门阵列(FPGA)。使用 FPGA 构造数字电子系统,设计者可以不用考虑芯片内部的具体结构,也不用顾虑与外部的电路连接。设计者只需依据电路所要完成的具体逻辑功能,然后设法用软件描述出来即可。至于数据在芯片内部的处理过程,设计者不用考虑,但设计者可以通过仿真软件观察和验证数据的处理结果。这种设计方法,极大地降低了设计难度,提高了工作效率。本论文以 FPGA 在数据处理中的应用立题,系统阐述基于 FPGA 的数字系统设计方法
15、,并尝试设计出一个简单的系统电子钟,掌握其设计的思想和方法,为以后设计更复杂的系统打下基础。1.2 可编程器件的发展历程当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC 的设计周期尽可能短,最好是在实验室里就能设计出合适的 ASIC 芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(F
16、PLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。存储器用来存储随机信息,如数据表或数据库的内容。微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能 1。xx 大学学士学位论文- 2 -1.2.1 早期的可编程器件PLD逻辑器件可分为两大类固定逻辑器件和可编程逻辑器件。正如其命名一样,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能
17、 ,一旦制造完成,就无法改变。另一方面,可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品部件, 而且此类器件可在任何时间改变,从而完成许多种不同的功能。 对于固定逻辑器件,根据器件复杂性不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。设计和验证固定逻辑的前期工作需要大量的 NRE 成本。NRE 代表在固定逻辑器件最终从芯片制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩膜组以及初始原型器
18、件的生产成本。这些 NRE 成本可能从数十万美元至数百万美元。 对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可擦除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的逻辑功能。其后,出现了一类在结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的 PLD 由一个 “与”门和一个“ 或”门阵列组成,而任意一个组合逻辑都可以用“与一或” 表达式来描述
19、,所以, PLD 能以乘积和的形式完成大量组合逻辑功能,PLD 基本框图如图 1-1 所示。输入控制与阵列或阵列输出控制输入输出图 1-1 PLD 的基本框图这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵列逻辑)。 PAL 由一个可编程的“与”平面和一个固定的“ 或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL 器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM 技术和 EEPROM 技术。还有一类结构更为灵活的逻辑xx 大学学士学位论文- 3 -器件是可编程逻辑阵列(PLA),它也由一个“与” 平面和一个“ 或”平面构成,但是这两个平面的连接关系是
20、可编程的。 PLA 器件既有现场可编程的,也有掩膜可编程的。 在 PAL 的基础上,又发展了一种通用阵列逻辑 GAL (Generic Array Logic),如 GAL16V8,GAL22V10 等。它采用了 EEPROM 工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用 2。固定逻辑器件和 PLD 各有自己的优点。例如,固定逻辑器件经常更适合大批量应用,因为它们可更为经济地大批量生产。对一些需要极高性能的应用,固定逻辑也可能是最佳的选择。 然而,可编程逻辑器件提供了一些优于固定逻辑器件的重要优点,包括:1PLD 在设计过程中
21、为客户提供了更大的灵活性,因为对于 PLD 来说,设计反复只需要简单地改变编程文件就可以了,而且设计改变的结果可立即在工作器件中看到。 2PLD 不需要漫长的前导时间来制造原型或正式产品 PLD 器件已经放在分销商的货架上并可随时付运。 3PLD 不需要客户支付高昂的 NRE 成本和购买昂贵的掩膜组。 PLD 供应商在设计其可编程器件时已经支付了这些成本,并且可通过 PLD 产品线延续多年的生命期来分摊这些成本。4PLD 允许客户在需要时仅订购所需要的数量,从而使客户可控制库存。采用固定逻辑器件的客户经常会面临需要废弃的过量库存,而当对其产品的需求高涨时,他们又可能为器件短缺(供货不足)所苦,
22、并且不得不面对生产延迟的现实。 5 PLD 甚至在设备付运到客户那儿以后还可以重新编程。事实上,由于有了可编程逻辑器件,一些设备制造商现在正在尝试为已经安装在现场的产品增加新功能或者进行升级。要实现这一点,只需要通过因特网将新的编程文件上载到 PLD 就可以在系统中创建出新的硬件逻辑 3。 1.2.2 高级可编程器件 FPGA/CPLD可编程逻辑器件的两种类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD ) 。在这两类可编程逻辑器件中, FPGA 采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB( Configurable
23、 Logic Block) 、输出输入模块 IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA 的基本特点主要有: 1采用 FPGA 设计 ASIC 电路,用户不需要投片生产就能得到 合适芯片。 2FPGA 可做其它全定制或半定制 ASIC 电路的中试样片。 3FPGA 内部有丰富的触发器和 IO 引脚。4FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 5FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。xx 大学学士学位论文- 4 -FPGA 提供了最高的逻辑密度、最丰富的特性
24、和最高的性能。现在最新的FPGA 器件,如 Xilinx Virtex 系列中的部分器件,可提供八百万“系统门”(相对逻辑密度) 。这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC) 、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device )信号技术。FPGA 被应用于范围广泛的领域中,从数据处理和存储直到仪器仪表、电信和数字信号处理。 与此相比,CPLD 提供的逻辑资源少得多 最高约 1 万门。但是,CPLD 提供了非常好的可预测性,因此对于关键的控制应用非常理想。而且CPLD 器件(如 Xilinx CoolRunner
25、 系列)需要的功耗极低,并且价格低廉,从而使其对于成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)非常理想 4。由于 CPLD 和 FPGA 结构上的差异,具有各自的特点:1CPLD 更适合完成各种算法和组合逻辑,FPGA 更适合于完成时序逻辑。换句话说, FPGA 更适合于 触发器丰富的结构,而 CPLD 更适合于触发器有限而乘积项丰富的结构。2CPLD 的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA 的分段式布线结构决定了其延迟的不可预测性。3在编程上 FPGA 比 CPLD 具有更大的灵活性。CPLD 通过修改具有固定内连电路的逻辑功能来编程,FPGA 主要
26、通过改变内部连线的布线来编程; FPGA可在逻辑门下编程,而 CPLD 是在逻辑块下编程。4FPGA 的集成度比 CPLD 高,具有更复杂的布线结构和逻辑实现。5CPLD 比 FPGA 使用起来更方便。CPLD 的编程采用 E2PROM 或FASTFLASH 技术,无需外部存储器芯片,使用简单。而 FPGA 的编程信息需存放在外部存储器上,使用方法复杂。6CPLD 的速度比 FPGA 快,并且具有较大的时间可预测性。这是由于FPGA 是门级编程,并且 CLB 之间采用分布式互联,而 CPLD 是逻辑块级编程,并且其逻辑块之间的互联是集总式的。7在编程方式上, CPLD 主要是基于 E2PROM
27、 或 FLASH 存储器编程,编程次数可达 1 万次,优点是系统断电时编程信息也不丢失。CPLD 又可分为在编程器上编程和在系统编程两类。FPGA 大部分是基于 SRAM 编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入 SRAM 中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。8CPLD 保密性好 , FPGA 保密性差。9一般情况下, FPGA 的功耗要比 CPLD 大,且集成度越高越明显 5。1.3 国内外研究现状过去几年时间里,可编程逻辑供应商取得了巨大的技术进步,以致现在PLD 被众多设计人员视为是逻辑解决方案的当然之选。能够
28、实现这一点的重要xx 大学学士学位论文- 5 -原因之一是像赛灵思这样的 PLD 供应商是“无晶圆制造厂”企业,并不直接拥有芯片制造工厂,赛灵思将芯片制造工作外包给联华电子(UMC)和东芝,他们是芯片制造行业的领导厂商。这一策略使赛灵思可以集中精力设计新产品结构、软件工具和 IP 核心,同时还可以利用最先进的半导体制造工艺技术。先进的工艺技术在一系列关键领域为 PLD 提供了帮助:更快的性能、集成更多功能、降低功耗和成本等。目前赛灵思提供采用先进的 90nm 和 65nm 工艺生产的可编程逻辑器件,它们都是业界最领先的工艺。例如,仅仅数年前,最大规模的 FPGA 器件也仅仅为数万系统门,工作在
29、40 MHz。过去的 FPGA 也相对较贵,当时最先进的 FPGA 器件大约要 150 美元。然而,今天具有最先进特性的 FPGA 可提供百万门的逻辑容量、工作300 MHz,成本低至不到 10 美元,并且还提供了更高水平的集成特性,如处理器和存储器。同样重要的是,PLD 现在有越来越多的核心技术( IP)库的支持 - 用户可利用这些预定义和预测试的软件模块在 PLD 内迅速实现系统功能。 IP 核心包括从复杂数字信号处理算法和存储器控制器直到总线接口和成熟的软件微处理器在内的一切。此类 IP 核心为客户节约了大量时间和费用,否则,用户可能需要数月的时间才能实现这些功能,而且还会进一步延迟产品
30、推向市间 6。 1.4 本文主要内容本文首先介绍了 FPGA 相关的背景知识以及 FPGA 的基本结构和工作原理,阐述了数字系统的构造方法和流程,从而为应用 FPGA 构建数字系统打下基础。同时具体介绍了构成电子钟主要功能模块特性与功能,在此基础上给出电子钟系统的设计方法和设计过程,这其中包括电子钟的总体框图架构,各模块的模拟仿真及其分析。最后,结合此次设计的亲身经历,对 FPGA 技术进行简单的总结。xx 大学学士学位论文- 6 -第 2 章 FPGA 基本结构及数字系统设计原理自 1985 年 Xilinx 公司推出第一片现场可编程逻辑门阵列即 FPGA 至今,FPGA 已经经历了 20
31、余年的发展历史。在这 20 多年的发展过程中,以 FPGA为代表的数字系统现场集成技术取得了惊人发展:FPGA 从最初的 1200 个可利用门,发展到 20 世纪 90 年代的 25 万个可利用门,进入 2000 年以后,国际上著名的 FPGA 厂商 Altera 公司和 Xilinx 公司相继推出了数百万个可利用门的单片 FPGA 芯片,将 FPGA 的集成度提高到了一个新的水平。2.1 FPGA 的基本结构及工作原理FPGA 的基本结构由 6 部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块 RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,FPGA 的基本结构图如图 2-1 所示。可编程 I/O 单元 嵌入式 RAM 基本可编程逻辑单元 内嵌专用内核底层嵌入 功能单元 布线资源图 2-1 FPGA 的基本结构