毕业设计118基于FPGA的全功能万年历电子钟的设计.doc
毕业设计118基于FPGA的全功能万年历电子钟的设计
收藏
资源目录
压缩包内文档预览:(预览前20页/共73页)
编号:545792
类型:共享资源
大小:220.66KB
格式:ZIP
上传时间:2015-12-01
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
6
积分
- 关 键 词:
-
电气电子毕业设计论文
- 资源描述:
-
毕业设计118基于FPGA的全功能万年历电子钟的设计,电气电子毕业设计论文
- 内容简介:
-
吉林大学本科毕业论文 (设计 ) I 基于 FPGA 的全功能万年历电子钟的设计 学生姓名:王晶晶 专业:电子信息工程 班级: 190317 导师:于枫 nts吉林大学本科毕业论文 (设计 ) II 提要 本文主要介绍了基于 FPGA 的万年历电子钟的设计方案,从而介绍了可编程逻辑器件的发展及应用。 基于 FPGA 的电子钟的设计与实现介绍了基于 FPGA 芯片的系统设计,并对系统的软硬件构成、 FPGA 内部逻辑设计工作原理等进行了详细说明。论文 第一部分对 FPGA 进行概述,讲述了可编程逻辑器件的发展与应用及论文题目的意义、目的和内容编排; 第二部分:叙述了系统设计方案,介绍了 FPGA 应用的特点和电子钟的方案概述及实现语言和调试平台 MAX+plus开发工具 ; 第三部分:叙述了基于 FPGA 的电子钟系统的设计的硬件设计和软件设计; 第四部分:对系统实现的外围电路进行概述。 第五部分:再次说明本设计的系统方案和得到的结论。nts吉林大学本科毕业论文 (设计 ) I 目录 第一章序论 . 1 1.1 研究目的和意义 : . 1 1.2 可编程逻辑器件的发展与应用: . 1 1.2.1 可编程逻辑单元 CLB . 3 1.2.2 输入 /输出模块 IOB . 3 1.2.3 可编程内部连线 PI . 4 1.2.4 FPGA 芯片的特点 . 4 1.3 FPGA 国内外的发展状况及应用 . 5 1.4 本课题所能实现的功能: . 8 第 二章总体方案的设计 . 9 2.1 万年历电子 钟的设计原理: . 9 2.2 FPGA 的设计方法 . 11 2.2.1 FPGA 的器件设计流程 . 11 2.2.2 MAX+plus开 发工具 . 13 2.2.3 VHDL 语言 . 17 2.3 系统设计方案 . 18 第三章系统的硬件设计与实现 . 19 nts吉林大学本科毕业论文 (设计 ) II 3.1 功能模块设计 . 19 3.2 系统功能实现 . 21 3.2.1 底层元件设计 . 22 3.2.2 顶层元件设计 . 32 3.3 芯片的选择 . 41 第四章设计应用电路 . 45 4.1 整体电路 . 45 4.2 电源电路 . 46 4.3 键盘部分 . 49 4.4 主动配置电路 . 53 第五章 总结 . 61 5.1 概述: . 61 5.2 设计方案: . 62 参考文献 . 64 致谢 . 67 摘要 . I ABSTRACT . II nts吉林大学本科毕业论文 (设计 ) 1 第一章序论 1.1 研究目的和意义 : 通过对 FPGA 的了解,我们要应用 FPGA 来设计全功能万年历的设计,主要实现电子钟的所有功能, 万年历是一种应用非常广泛的日常计时工具,具有时分秒计时功能,还有日历、年历功能,涉及计数、显示、参数输入技术,能够实时显示年、月、日和时间,并具有校准和闹铃等功能。使用 FPGA 系统实现, 学习电子控制器设计相关的知识,提高实践动手能力。 通过该课题的设计,学生可以学会硬件电路的设计、调试,用单片机汇编语言进行软件编程。 1.2 可编程逻辑器件的 发展与应用 : 可编程逻辑器件( Programmable Logic Device,简称 PLD)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。它诞生于 20 世纪 70 年代,几十年来, PLD 得到了飞速发展和广泛应用。它是大规模集成电路技术的飞速发展与计算机辅助设计( CAD)、计算机辅助生产( CAM)和计算机辅助测试( CAT)相结合的一种产物,是现代数字电子系统向超高集成度、超低功耗、超小型封装和专用化方向发展的重要基础。它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性和保密性,而且给数字系统的设 计方法带来了革命性的变化。 常见的可编程逻辑器件有 PROM( Programmable Read-Only Memory,可编程只读存储器)、 PLA( Programmable Logic Array,可编程逻辑阵列)、PAL ( Programmable Array Logic, 可 编 程 阵 列 逻 辑 )、 GAL( Generic-Programmable Array Logic 通 用 可 编 程 阵 列 逻 辑 )、EPLD(Erasable Programmable Logic Device,可擦除的可编程逻辑器件 )、CPLD( Complex Programmable Logic Device,复杂可编程逻辑器件)和nts吉林大学本科毕业论文 (设计 ) 2 FPGA( Field Programmable Gate Array,现场可编程门阵列)等。 集成度是可编程逻辑器件的一项很重要的指标,如果从集成密度上分类,可分为低密度可编程逻辑器件( LDPLD)和高密度可编程逻辑器件( HDPLD),二者之间通常以单片集成 1000 个逻辑门 (指等效逻辑门 )为区分点。 PROM、 PLA、 PAL 和 GAL 属于低密度可编程逻辑器件,而 EPLD、 CPLD和 FPGA 则属于高密度可编程逻辑器件。 目前常用的可编 程逻辑器件都是从“与 -或阵列 ” 和“门阵列” 两类基本结构发展起来的,所以又可从结构上将其分为两大类器件: ( 1)阵列型 PLD 基本结构为与 -或阵列的器件。包括简单可编程逻辑器件 SPLD 和复杂可编程逻辑器件 CPLD。 ( 2) FPGA 器件 基本结构为门阵列的器件。 CPLD 是阵列型高密度 PLD 器件,它们大多采用了 CMOS EPROM/E2PROM和快闪存储器等变成技术,因而具有高密度、高速度和低功耗等特点。目前主要的半导体器件公司,如 Xilinx、 Altera、 Lattice 和 AMD 等,在各自生产的高密度 PLD 产品中,都有自己的特点,但总体结构大致是相同的。大多数 CPLD 器件中至少包含了 3 种结构:可编程逻辑宏单元、可编程 I/O 单元、可编程内部连线。 FPGA是可编程逻辑器件 (PLD) 的第四代产品。内部具有独立的 I/O 接口和逻辑单元 CLB。使用灵活 , 适用性强 , 特别适用于复杂逻辑的设计。本文主要介绍了 FPGA 的内部结构特点、开发试验系统的特征及实际应用。 FPGA (Field Programmable Gate Array,用户现场可编程门阵列 ) 是起源于 80 年代中期 , 由美国硅谷 Xilinx公司首创 的全新概念。 FPGA 能进行现场设计、现场编程、现场验证、现场修改与分析 , 从而现场实现数字系统的单片设计和应用 , 在大专院校、科研所、航空航天、数字通信、计算机 应用领域展示出了广泛的应用前景。 nts吉林大学本科毕业论文 (设计 ) 3 FPGA主要包括三个部分:可编程逻辑单元 CLB、 输入 /输出模块 IOB、可编程内部连线 PI。 1.2.1 可编程逻辑单元 CLB CLB是 FPGA的核心。 CLB内部的两个 D触发器由 CLK端的外部时钟驱动 ,时钟可由用户编程有效极性 (上升沿、下降沿 ), 组合功能模块具有五个逻辑输入变量 , 并生成一个具有布尔功能的输出。组合逻辑功 能模块的延迟相对固定 , 与所要产生的逻辑功能无关 , 它只由器件的速度等级而定。通过单个 CLB的信号延迟时间一般不超过 4.5ns至 7ns,而用中小规模器件来完成一个 CLB所包含的同样的逻辑功能 , 其信号延迟时间则需要30ns。因此 , CLB的延迟时间要小得多 , 从而大大提高了所设计产品的性能。 1.2.2 输入 /输出模块 IOB 每个 IOB可定义为三种不同的功能 :输入、输出和双向。当 IOB输入接口使用时 ,输入缓冲器根据用户编程对输入信号进行电平检测 ,将外部输入的 TTL或 CMOS信号转变成内部逻辑所要求的电平 ,信号既可经输入 缓冲器后直接进入芯片内部 ,也可由 D触发器寄存或 D锁存器锁存后进入芯片内部。当 IOB作为输出使用时 ,来自芯片内部的信号直接或经 D寄存器锁存后到达输出缓冲器的输入端。当选为双向时 ,可以由逻辑控制三态缓冲器来定义其输入或者为输出 ,使用非常方便。 IOB中的各个触发器有两个时钟可供选择 ,因而可以通过程序定义成同步或异步工作 ,在同一片子上的时序控制电路 ,计数器和锁存器就可以受不同的时钟信号来控制。 IOB的输出缓冲可以定义为两种不同的转换速率。另外 ,输出脚还可以定义为耗尽型开态输出。总之 , 所有 FPGA的 IOB 的这些功 能使得 FPGA的应用范围更广 ,设计灵活性更大 ,使用更为方便。 nts吉林大学本科毕业论文 (设计 ) 4 1.2.3 可编程内部连线 PI FPGA中完成较简单功能的逻辑块借助于可编程内部连线连接在一起 ,从而实现复杂功能电路的设计。各个 CLB之间的连接由一个两层金属线段的格栅组成 ,格栅的交叉连接通过配置程序控制特殊设计的传输晶体管的通断来实现 ,从而形成分布在 CLB 四周的众多可编程的互连点。 FPGA主要有通用互连、直接互连、长线和内部总线等三至四种互连方式。 1.2.4 FPGA 芯片的特点 1) 随着大规模集成电路工艺的不断提高, FPGA的芯片的规模越来越大,期单片逻辑门数可以达到数百万乃至数千万门,它所能实现的功能也越来越强,同时也可以实现系统集成,这样大幅度的减少了印刷电路板的面积和接插件的数量,降低了配置和调试费用。 2) 提高了产品的可靠性,大量分立世元器件在向印刷电路上装配时,往往会发生因为虚焊会接触不良而造成 极大的困难, FPGA芯片减少了这种现象的发生,而且 FPGA芯片在出场之前都做过百分之百的测试。不需要设计人员承担投片风险,设计人员只需要在自己的实验室里通过相应的软硬件环境来完成芯片的最终功能的指定。 3) 大大减小了电子产品的体积和质量。 降低了电子产品的功耗,提高了产品的工作速度。 FPGA内部的电路体积很小、互连线短、分布电容小,驱动电路所需要的功耗大大降低。 FPGA芯片内部很短的连线能够大大的缩短延迟时间,并且不易受外部的干扰,这对提高速度非常有利。而且 FPGA的规模越来越大。 有时候可以把整个(子)系统集合到一个芯片上,这比分立元件构成的电子系统速率要快。 4) 提高了产品的竞争能力。 FPGA芯片和 EPROM配合使用,用户可以反复的编程、擦除,使用或者在外围电路不动的情况下 用不同的 EPROM就nts吉林大学本科毕业论文 (设计 ) 5 可以实现不同的功能,所以,用 FPGA试做样品, 能以最快的速度占领市场,再者 FPGA芯片的电路设计周期短,设计人员在较短的时间内,能完成电路的输入、编译、优化、仿真直至最后的芯片的制作 。当电路有少量改动时,更能显示 FPGA的优势,它大大加快了新产品的试制速度,减少了库存风险与设计错误所带来的风险,从而提高了在市场上的竞争能力和应变能力 . 1.3 FPGA 国内外的发展状况 及应用 当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路 (VLSIC,几万门以 上 )以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路 (ASIC)芯片,而且希望 ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的 ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件 (FPLD),其中应用最广泛的当属现场可编程门阵列 (FPGA)和复杂可编程逻辑器件 (CPLD)。 早期的可编程逻辑器件只有可编程只读存贮器 (PROM)、紫外线可按除只读存贮器 (EPROM)和电可擦 除只读存贮器 (EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。 其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的 PLD由一个 “ 与 ” 门和一个 “ 或 ” 门阵列组成,而任意一个组合逻辑都可以用 “ 与一或 ” 表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑功能。 这一阶段的产品主要有 PAL(可编程阵列逻辑 )和 GAL(通用阵列逻辑 )。 PAL由一个可编程的 “ 与 ” 平面和一个固定的 “ 或 ” 平面构成,或nts吉林大学本科毕业论文 (设计 ) 6 门的输 出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术、 EPROM技术和 EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列 (PLA),它也由一个“ 与 ” 平面和一个 “ 或 ” 平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。在 PAL的基础上,又 发 展 了 一 种 通 用 阵 列 逻 辑 GAL (Generic Array Logic) ,如GAL16V8,GAL22V10 等。它采用了 EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活 性,至今仍有许多人使用。这些早期的 PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。 现场可编程门阵列 FPGA (Field Programmable Gate Array)及 CPLD,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽的特点。这两种器件兼容了简单 PLD 和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与 ASIC(Application Specific IC)相比,具有设计开发周期短、设计制造成本低 .开发工具先进、标准 产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产 (一般在 10000 件以下 )之中。比较典型的就是 Xilinx公司的 FPGA 器件系列(如 XC4000)和 Altera 公司的 CPLD 器件系列(如 MAX700),这两个公司的产品开发较早,占领 PLD 市场的绝大部分,可以说 Altera 和 Xilinx 共同决定了 PLD 技术的发展方向。 FPGA 和 CPLD 由三大部分组成的,即一个二维的逻辑块阵列,构成了 PLD 器件的逻辑组成核心;输入 /输出块;连接逻辑块的互连资源。连线资 源是指由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输入 /输出块之间的连接。随着超大规模集成电路 VlSI(Very Large nts吉林大学本科毕业论文 (设计 ) 7 Scale IC)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,FPGA/CPLD 芯片的规模也越来越大,其单片逻辑门数目前已达到上百万门,它所能实现的功能也越来越强,同时也可以实现系统集成。 大规模可编程逻辑器件 FPGA 和 CPLD 是当今用于最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所需要的专用芯片和专用产 品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。 FPGA/CPLD 是近几年集成电路中发展最快的产品。由于 PLD 性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片推向高端和超复杂应用。可编程逻辑器件依然是集成电路中最具活力和前途的产业。 FPGA 与 CPLD 在价格、性能、逻辑规模和封装(包括 EDA 软件性能) 等方面各有千秋,如表 1-1 所示 表 1-1 FPGA 与 CPLD 比较 器件 比较点 FPGA CPLD 结构工艺 SRAM EEPROM 或 FLASH 基本结构 LUT 查找表 乘积项 Pin-pin 的时延 不定 确定 配置存储器 需外挂 ROM 不需 保密性能 无保密性 可加密 工作电压 3.3V 或 2.5V 5V nts吉林大学本科毕业论文 (设计 ) 8 编程工艺 通过 PC 机并行口或专用编程器或单片机进行配置 ISP 在线编程 应用 主要针对要求不是很高,设计逻辑较复杂的系统,适合于完成时序较多的逻辑电路 主要针对速度要求高,但 设计逻辑又不是很复杂的系统,适合于完成各类算术和组合逻辑 1.4 本课题所能 实现的功能: ( 1)准确计时,以数字形式显示时,分,秒的时间。 ( 2)小时的计时要求为 “24翻 1”,分和秒要求为 60进位。 ( 3)校正时间,能够对 “分 ”和 “小时 ”进行调整。 ( 4)定时闹钟(时间可通过按钮任意修改) ( 5)数字跑表(具体启动 /暂停,清零) ( 6)日历 ( 7)日历功能 _yy/mm/dd显示 年,月,日统计和计数,只显示年份的后两位 (0099),可统计 100年,已加入闰年的算法,不用考虑千年问题则只需年份的两后位能够 被 4整除,天和月的计数应从 1开始计数,天的计数以小时满 24的进位信号作为触发时钟,当月份为 1、 3、 5、 7、 8、 10、 12为大月,天数满 31发出一个月份加一信号; 4、 6、 9、 11为小月,天数满 30发出一个月份加一信号; 2月需要判断年数是否能被 4整除,可以的话为闰年,天数满 29发出一个月份加一信号,反之就是平年,天数满 28发出一个月份加一信号。nts吉林大学本科毕业论文 (设计 ) 9 第 二章 总体方案的设计 2.1 万年历电子钟的设计原理: 万年历电子钟主要是用来显示时间(年:月:日:时:分:秒)。设计要求的精度是 1 秒 ,时钟部分显示的时间范围时 00 分 00 秒到 23 时59 分 59 秒之间。万年历部分显示的是 100 年以内的年份。一般来说电子钟 除计时以外,还应具有校时,校分的功能,在本设计中可以通过按键来控制,报时分两步来实现, 计数到整点时报时,考虑采用数声长音表示:每到 00 分 00 秒时则以响一声短音的方式结束报时。 基于 FPGA 的电子钟可以实现电子钟的显示时间,校对时间,达到电子钟的要求 ,并且具有查找万年历 的功能 。利用 VHDL 硬件描述语言完成万年历 电子 钟系统的设计与分析。 数字电路中,时钟是整个电路最重要、最特殊的信号。 FPGA 中通常已经配置一定数量的 PLL 宏单元, 并有针对时钟优化的全局时钟网络,一般是经过 FPGA 的特定全局时钟管脚进入 FPGA 内部,后经过全局时钟 BUF 适配到全局时钟网络的,这样的时钟网络可以保证相同的时钟沿到达芯片内部每一个触发器的延迟时间差异是可以忽略不计的。因此时钟单元也是需要进行转换的。 万 年历电子钟有一片 EPF10K10LC84-4芯片实现,外围器件包括: 13个 七段数码管( LED) ( 第一组有年、月、日 6个 数码管组成 ,第二组有星期、时 (秒点 )、分、秒 7个 数码管组成 ) 及驱动电路,一个 1kHz的时钟振荡器和一个扬声器。 其电路组成图 2-1。 nts吉林大学本科毕业论文 (设计 ) 10 图 2-1 万 年历电子钟电路框图 万年历电子钟的全部逻辑功能由 EPF10K10LC84-4 芯片产生,下面根据自顶向下的设计方法确定万年历电子钟的设计方案。 首先介绍功能模块的划分。万年历电子钟的实现可以通过四个功能块,计时电路、显示电路、校时电路、整点报时电路,功能模块结构如 图 2-2 所示。 图 2-2 万年历电子钟模块 根据自顶向下的设计方法确定电子钟的设计方案;为完成上层 4 个功能块,还可以进一步的向下进行功 能划分,进入再下一层的设计。其具体设计在第三章中详细讲解。 EPF10K10LC84-4 校时按键 13 个 数码 管 扬 1kHz 时钟 nts吉林大学本科毕业论文 (设计 ) 11 2.2 FPGA 的设计方法 2.2.1 FPGA 的器件设计流程 FPGA 器件的设计一般可以分为设计输入、设计实现、设计仿真和下载编程四个步骤,如图 2-3 示。 图 2-3 仿真流程图 一、设计输入 设计输入就是将设计者所设计的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中。设计输入有多种表达方式,最常用的是原理图和硬件描述语言两种。 1.原理图。原理图是图形化的表达方式,使用元件符号和连线等符号来描述设计。其特点是适合描述连接关系和接口 关系,而描述逻辑功能则很繁琐。原理图输入对用户来讲很直观,尤其对描述层次结构、模块化结构更为方便。但它要求设计工具提供必要的元件库或逻辑宏单元。如果输入的是较为复杂的逻辑或者元件库中不存在需要的模型,采用原nts吉林大学本科毕业论文 (设计 ) 12 理图输入方式往往很不方便,就需要采用硬件描述语言输入了。 2硬件描述语言。硬件描述语言是采用文本的方式描述设计,其逻辑描述能力强,而不适合描述接口和连接关系。硬件描述语言一般有普通硬件描述语言和行为硬件描述语言两种。普通的硬件描述语言,如ABEL-HDL、 CUPL 和 MINC-HDL,它们支持布尔方程、真 值表、状态机等逻辑描述方式,适合对计数器、译码器、比较器和状态机等逻辑功能的描述。行为描述语言,如 Verilog HDL 和 VHDL,行为描述类似于 C语言,在描述复杂设计时,非常简洁,具有很强的逻辑描述和仿真功能,已被采用为国际标准。 可编程逻辑器件的设计往往采用层次化的设计方法,分模块、分层次地进行设计描述。描述器件总功能的模块放置在最上层,称为顶层设计;描述器件最基本功能的模块放置最下层,称为底层设计。顶层和底层之间的关系类似于软件中主程序和子程序的关系。层次化设计的方法比较自由,可以在任何层次使用原理图 或硬件描述语言进行描述。一般的做法是,在顶层设计中,使用连接关系和芯片内部逻辑到管脚的接口;在底层设计中,使用硬件描述语言描述逻辑功能。 二、设计实现 从设计输入文件到熔丝图文件( FPGA)的编译过程,称为设计实现。此部分对开发系统来讲是核心部分,但对用户来讲,它的实现过程究竟如何并不关心。设计者只能通过设置“设计实现策略”等参数来控制设计实现过程。 三、设计仿真 这一部分的最大功能是便于用户查看自己的设计思想是否得到实现。我们可以在设计的过程中对整个系统乃至各个模块进行仿真,即在计算机上用软件验证连接功能 是否正确,各部分的时序配合是否正确。nts吉林大学本科毕业论文 (设计 ) 13 如果有问题,可以很方便地修改错误,从而不必再硬件上动手脚。高级的仿真软件还可以对整个系统设计的性能进行估计。规模越大的设计,越发需要设计仿真。仿真不消耗资源,不浪费时间,以致有人认为仿真是 EDA 的精髓。 设计仿真包括前仿真、后仿真和实验验证 3 个部分。在设计输入阶段进行的是仿真检验逻辑功能,所以又称前仿真;后仿真又叫时延仿真,在选择了具体器件并完成布局布线后进行的定时关系仿真。由于不同器件的内部时延不一样,不同的布局、布线方案也给延时造成了很大的影响,因此在设计实现后,对网 络和逻辑块进行时延仿真、分析定时关系、估计设计性能是非常必要的;在器件编程后,需要利用实验手段测试器件最终的功能和性能指标,这是具有边界扫描测试能力和在系统可编程能力的器件,测试起来就较其它器件方便。 四、下载编程 下载编程时将设计阶段生成的 JEDEC文件或位流文件装入到可编程器件中。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的 CPLD 器件需要一种编程专用设备(编程器)完成器件编程。 2.2.2 MAX+plus开发工具 MAX+plus开发工具是 Altera 自行设计的 EDA 软件 ,其全称是Multiple Array Matrix and Programmable Logic User System(多阵列矩阵和可编程用户系统 )。 MAX+plus是完全集成开发环境的软件,可不需要第三方软件,支持 3 万门以下所有设计,其主要特点如下: 1、与结构无关。 MAX+plus Complier(编译程序 )是 MAX+plus系统的核心,它支持 Altera 的 Classic、 MAX5000、 EPS464、 MAX7000、FLEX8000 和 FLEX8000M 可编程逻辑器件系列,提供工业界中唯一真nts吉林大学本科毕业论文 (设计 ) 14 正 与结构无关的可编程逻辑设计环境。该编译器还提供强有力的逻辑综合与最小化功能,使用户比较容易将其设计集成到器件中。 2、多平台。 MAX+plus的设计输入、处理与校验功能一起提供了全集成化的一套可编程开发工具,可以加快动态调试,缩短开发周期。 3、模块组合式工具软件。设计者可从各种设计输入、设计处理和设计校验选项中进行选择,从而使设计环境用户化。需要时,还可保留初始的工具投入,并增添新的功能。由于 MAX+plus支持各种器件系列,设计者不必学习新工具即可支持新结构。 4、硬件描述语言。 MAX+plus支 持各种 HDL 设计输入选项,包括 VHDL、 Verilog HDL 和 Altera 硬件描述语言 AHDL。 5、开放的界面。 Altera 的工作与 EDA 厂家联系密切, MAX+plus可与其他工业标准设计输入、综合与校验工具链接。它与 EDA 工具的接口符合 EDIF200 和 209、参数模块库( LPM)、 Verilog、 VHDL 及其他标准。设计者可以使用 Altera 或标准的 EDA 设计输入工具去建立逻辑设计,使用 MAX+plus Complier 对 Altera 器件进行编译,并使用 Altera 或其他 EDA 校验工具进行器件或板 级仿真。 6、多平台。可良好运行于普通 PC 机上,也可运行于工作站上。 7、完全集成化。 MAX+plus的设计输入、处理与校验全部都集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。 MAX+plus将用户所设计的电路原理图或电路描述转变为 CPLD内部的基本逻辑单元 ,写入芯片中,从而在硬件上实现用户所设计的电路。 MAX+plus的具体功能主要包括:支持原理图和文本( AHDL、VHDL、 Verilog HDL)设计;自带综合器、仿真器;支持波形输入;支持波形模拟;时间分析;编译及下载。 MAX+plus的设计过程是由设计输入、设计处理、设计校验和器件nts吉林大学本科毕业论文 (设计 ) 15 编程四部分组成,如图 2-4 所示 。 图 2-4 MAX+plus的设计图 1、设计输入 MAX+plus设计输入的方法有多种,包括原理图输入方式、文本设计输入方式、高级设计输入方式、波形设计输入方式、层次设计输入方式和底层设计输入方式。最常用的是原理图输入和文本输入两种方式。 ( 1)原理图输入是指用 MAX+plus提供的各种原理图库进行设计输入,是一种最直观的输入方式,但是输入效率低。 ( 2)文本设计输 入是指设计者用 VHDL、 Verilog HDL 或 AHDL 编写HDL 源程序进行输入。采用这种方法描述的优点是效率高,结果也较容易仿真,在不同的设计库之间的转换非常方便。 2、项目编译 MAX+plus处理一个设计时, Complier 在设计文件中读取信息并产生编nts吉林大学本科毕业论文 (设计 ) 16 译文件和仿真文件, Timing Analyzer 可分析设计定时, Message Processor 可自动定位错误。 ( 1)自动错误定位。 Message Processor 与 MAX+plus的所有应用程序通信,可以给出信息(错误、警告等)。设计者可以 利用它打开有错误源的文件,并以高亮显示。 ( 2)逻辑综合与适配。 MAX+plus Complier 的 Logic Synthesize(逻辑综合 )模块对设计方案进行逻辑综合并能看到真正的结果。 Fitter(适配)模块应用试探法可把综合的设计最恰当地用一个或多个器件实现,使设计者得以从冗长的布局布线工作中解脱出来。 ( 3)设计规则检查。 Complier 中的 Design Doctor 程序能检查每一个设计文件。用户可以选择预先定义好的三组检查规则中的一种,也可以建立自己的规则。 ( 4)编译文件的产生。 Assemble(装配程序)模块已为编译的设计创建烧写文件( .pof)。 3、项目校验 设计校验包括设计仿真和定时分析两部分。其作用是测试逻辑操作和设计的内部定时。 ( 1)仿真。电路设计输入完之后,首先须检查其输入是否正确,这是一项简单的逻辑检查。 MAX+plus提供了功能编译选项,此时,只运行仿真网表的提取,而不作布局布线。所有延时为零延时,在仿真时需加入激励信号,激励信号可以用波形编译器直接编译成波形文件,也可以先用文本编译器按软件给定的语法规则编译成文本再转换成波形文件,如检查到错误则需修改原设计方案。 功能仿 真无误后,需要进行后仿真。首先进行完全编译,每个设计项目都有一个配置文件( .acf)所有配置参数都存放在这里。如果需要修nts吉林大学本科毕业论文 (设计 ) 17 改配置,既可以在菜单上修改,也可以直接修改此文件。对于相对简单的设计,也可以只做一步仿真,即后仿真。 ( 2)定时分析。 Timing Analyzer 可以计算点到点的器件延时矩阵,确定器件引脚上的建立时间与保持时间,还可以计算最高时钟频率。Message Processor 可以找出 Timing Analyzer 在设计文件中已证实的关键路径,并在适当的设计编辑中加以实现。 4、器件编程 MAX+plus Programmer 是使用 Compiler 生成的烧写文件( .pof)对 Altera器件进行编程的。它可以用来对器件编程、校验、检查是否空白以及进行功能测试。 2.2.3 VHDL 语言 VHDL 的英文全称是 VHSIC( Very High Speed Integrated Circuit)Hardware Description Language),即超高速集成电路硬件描述语言。它是最早被接纳为 IEEE 标准的硬件描述语言,可以说,它是数字系统设计描述的标准语言,绝大多数的 EDA 工具都支持 VHDL 语言 。 VHDL 是一种全方位的硬件描述语言,包括从系统到电路的所有层次设计。在描述风格上 VHDL 支持结构、数据流和行为 3 种描述形式的混合描述。行为描述以过程语句来表达,数据流描述实际上是寄存器传输级( RTL 级)语言的扩展,因此 VHDL 几乎覆盖了以往各种语句描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用 VHDL来完成。 利用 VHDL 语言设计数字系统具有以下 4 个优点: ( 1)设计技术齐全、方法灵活、支持广泛。 VHDL 语言可以支持自上而下和基于库的设计方法,还支持同步电路、异步电路以及其他随机电路的设计 。目前大多数 EDA 工具几乎在不同程度上都支持 VHDLnts吉林大学本科毕业论文 (设计 ) 18 语言,这给 VHDL 语言进一步推广和应用创造了良好的环境。 ( 2)系统硬件描述能力强。 VHDL 具有多层次描述系统硬件功能的能力 ,其描述的对象可以从系统的数学模型知道门级电路。 ( 3) VHDL 语言可以与工艺无关编程。 VHDL 设计硬件系统时,可以编写与工艺无关的信息,但是,与大多数 HDL 语言不同的是,当门级或门级以上层次的描述通过仿真验证后,可以用相应的工具将设计映射成不同的工艺(如 MOS、 CMOS 等)。这样,工艺更新时,就无须修改程序,只需修改相应的映射工具 。所以在 VHDL 中,电路设计的编程可以与工艺相 互独立。 ( 4) VHDL 语言标准、规范,易于共享和复用。 VHDL 语言的语法较严格,给阅读和使用都带来了极大的好处。再者, VHDL 作为一种工业标准,设计成果便于复用和交流,反过来也能进一步推动 VHDL的推广和普及。 2.3 系统设计方案 设计过程中应用 MAX+plus开发工具,使用 TOP DOWN,即自顶向下的设计方法,底层设计分为两个模块分别利用硬件描述语言进行描述,顶层设计利用原理图描述,完成整个设计。 nts吉林大学本科毕业论文 (设计 ) 19 第三章 系统的硬件设计与实现 3.1 功能 模块 设计 利 用 VHDL硬件描述语言结合 FPGA可编程器件进行数字钟的设计 ,并通过数码管驱动电路动态显示计时结果。 本系统采用的是 Altera公司的FPGA器件 Flex10K EPF10K10LC84-4,FLEX(灵活逻辑单元矩阵 )系列是Altera应用非常广泛的产品,这些器件具有比较高的集成度及丰富的寄存器资源,采用了快速,可预测延时的连续式布线结构,是一种将 CPLD和FPGA的优点结合于一体的器件 。 该系统 硬件结构 框图如下图 3-1所示。 图 3-1万年历电子钟 的硬件结构 由于电子钟的全部功能集成在一个芯片上,所以将 EPF10K10LC84-4的主要应用管脚的芯片简化图描述如图 3-2。 小时 /分 主机 电源 星期 日 月 年 年 月 日 小时 /分 星期 主机及电源 nts吉林大学本科毕业论文 (设计 ) 20 图 3-2 应用管脚图 ( 1)输入信号: reset:复位信号,低电平有效。复位后电子钟处于初始状态。 clk: 计数时钟信号 。用来计数脉冲, 同 1kHz 时钟源 相连。 clkdsp: 扫描时钟信号 CLKDSP, 同 32kHz时钟源 相连 . Set: 6个 调 节 键。 用来调节年、月、日、时、分、秒。 en:使能信号。当 en= 1时,允许计时;当 en= 0时,禁止计时。 ( 2)输出信号: Speaker:接扬声器,主要用于报时和定点时的报声功能。 Sel0 6:扫描显示的驱动信号管脚。 Lam0 13: 14 个 LED 为了实现电子钟的上述功能将其分为四个功能模块,报时模块、控制计时模块、校时模块、显示模块。 四个模块的功能如下: 1. 控制 计时模块: nts吉林大学本科毕业论文 (设计 ) 21 计时模块的主要功能时计时。计时信号的产生可以根据一般的计时方法,即对基准的时钟脉冲进行计数,就可以产生秒、分、时的信号。我们选择的基本时钟频率为 1kHz,因此产生的秒信号的计数应为模 100计数器;产生的分的时钟信号需要对秒信号模 60的计数;产生的小时 的时钟信号需要对对分信号 60膜技术,而小时的进位需要模 24 计数器。日历的 计数与时间的相同。 2. 报时模块: 整点报时电路在整点时产生报时信号。在 59分 50 59秒时,每一秒产生一个低音(频率较低信号),在 00分 00秒时响一声高音(频率较高信号)。报时电路也可以用基本的逻辑门电路来实现。 3. 校时模块: 校时电路 用来完成对计时时间的修改与校正。校时可以用开关或几个按键控制,即校时允许控制开关,校按键。校时允许控制端为高电平时,允许对计时电路中时间值的分、时、 日、月、年进行校正。校时电路为异步时序电路,可以用基本的逻 辑门电路来实现。 4. 显示模块: 显示模块用来对计时的时间及日期在数码管中显示出来。 计时电路中产生的时间值为 BCD码的形式。所以必须有一个 BCD/七段译码器,用来驱动七段 LED数码管。为了节省可编程逻辑器件的 I/O资源(这在复杂数字系统设计时尤为重要),数码管采用扫描显示的形式,即一次只驱动一位数码显示管,所有数码管轮流显示,只要扫描的速度足够快,由于视觉暂留的效果,眼睛就基本察觉不出闪烁。因此,显示电路还可以进一步划分为扫描电路 BCD/七段译码器两个部分。 3.2 系统功能实现 万年历电子钟采用分层设计,采取用 VHDL 硬件描述语言进行底层nts吉林大学本科毕业论文 (设计 ) 22 的控制计时模块、校时模块、报时模块、显示模块四个模块的设计。原理图进行顶层元件电子钟的设计的 TOP DOWN 自顶向下的设计方法。 3.2.1 底层元件设计 底层元件设计分为四个部分,分别为( 1)控制计时的设计;( 2)计时模块的设计;( 3)校时模块的设计;( 4)显示模块设计。设计过程如下: 一、 控制计时的设计: 计时模块的时间计时部分包括两个模 60 的计数器和一个模 24 的计时器。两个模 60 的计数器分别用来产生秒和分的时钟信号并为下一级计数(时和分)提供计数脉冲。模 24 的计数器用来产生小时的 信号。第一个模 60 计数器(输出秒信号)的计时时钟 clk 为 1 秒时钟计数慢 60, 输出 端输出一个正脉冲。第二个模 60 的计数器(输出分钟信号)的计数时钟 clk 为 1 分钟时钟,计数慢 60 时 输出 端输出一个正脉冲。模 24 计数器(输出小时信号)的计数时钟 clk2 为 1 小时时钟。以此规律,日、月、年的计数器也产生相应的时钟。 其详细模块电路在顶层元件设计中具体讲解。 1.模 60 计数器 其硬件描述语言: (秒和分共用些模块) module count_60(clk_count_60,clear,load,load_data,out,update,count_60_carry); input clk_count_60,clear,load,update;/update 为计数器加 1 input7:0 load_data; output7:0 out; output count_60_carry; reg7:0 out; wire count_60_carry; nts吉林大学本科毕业论文 (设计 ) 23 assign count_60_carry=(out=8h59)&(clk_count_60=1)?1:0)&(!update)?1:0; /定 义进位信号 ,在校时模式下通过 update 键校分时控制不向小时进位,在计时模式下则能正常进位 always (negedge clk_count_60 or negedge clear) /异步模式,下降沿触发 begin if(!clear) out4); /判断是否为闰年 if(temp=0) /被 4 整除商为 0 则为 29 天 begin if(days=8h29) begin days=1; nts吉林大学本科毕业论文 (设计 ) 30 day_carry=1; end else if(days3:0=9) begin days3:0=0; days7:4=days7:4+1; end else if(days3:09) days3:0=days3:0+1; else day_carry=0; end else /反之则为 28 天 begin if(days=8h28) begin days=1; day_carry=1; end else if(days3:0=9) begin days3:0=0; days7:4=days7:4+1; end else if(days3:09) days3:0=days3:0+1; else day_carry=0; end nts吉林大学本科毕业论文 (设计 ) 31 end end endmodule 二、 校时模块:( 在主体程序设计中体现 ) 三、 报时模块: ( 在主体程序设计中体现 ) 四、 显示模块: 显示模块用来将即使信号输 出至七段数码管。因此计数的结果为 BCD码,所以首先要改成 BCD-七段码的译码。显示采用扫描的形式,所有数码管轮流显示,一次只驱动一个数码管。 显示模块的硬件描述语言:(此程序只完成时钟的功能,由于日历的功能基本相似,不做重复)
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
2:不支持迅雷下载,请使用浏览器下载
3:不支持QQ浏览器下载,请用其他浏览器
4:下载后的文档和图纸-无水印
5:文档经过压缩,下载后原文更清晰
|