logo资料库

基于FPGA的计算器设计.doc

第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
资料共44页,剩余部分请下载后查看
第一章 引言
1.1 课题研究的目的与意义
1.2 国内外发展现状
1.3课题的主要技术路线
第二章 FPGA技术及硬件描述语言
2.1 FPGA技术的发展现状及与CPLD的比较
2.2 FPGA设计方法
2.3 利用硬件描述语言(HDL)的硬件电路设计方法
2.4 VHDL语言的特点
2.5 Quartus Ⅱ概述及其设计流程
第三章 系统总体设计
3.1 计算器的计算部分
3.2 计算器的存储部分
3.3 计算器的显示部分
3.4 计算器的输入部分
第四章 计算器的VHDL设计
4.1加法器的设计与仿真
4.2减法器的设计与仿真
4.3乘法器的设计与仿真
4.4 除法器的设计与仿真
第五章 结束语
参考文献
附 录
目 录 摘要................................................................................................................................................................. I Abstract.........................................................................................................................................................II 第一章 引言..............................................................................................................................................1 1.1 课题研究的目的与意义.............................................................................................................1 1.2 国内外发展现状...........................................................................................................................1 1.3 课题的主要技术路线................................................................................................................. 2 第二章 FPGA 技术及硬件描述语言...........................................................................................3 2.1 FPGA 技术的发展现状及与 CPLD 的比较............................................................................ 3 2.2 FPGA 设计方法............................................................................................................................. 5 2.3 利用硬件描述语言(HDL)的硬件电路设计方法............................................................6 2.4 VHDL 语言的特点........................................................................................................................ 7 2.5 Quartus Ⅱ概述及其设计流程................................................................................................7 第三章 系统总体设计......................................................................................................................10 3.1 计算器的计算部分....................................................................................................................10 3.2 计算器的存储部分....................................................................................................................10 3.3 计算器的显示部分....................................................................................................................11 3.4 计算器的输入部分....................................................................................................................12 第四章 计算器的 VHDL 设计....................................................................................................... 14 4.1 加法器的设计与仿真............................................................................................................... 14 4.2 减法器的设计与仿真............................................................................................................... 15 4.3 乘法器的设计与仿真............................................................................................................... 16 4.4 除法器的设计与仿真............................................................................................................... 18 第五章 结束语...................................................................................................................................... 20 致谢.............................................................................................................................. 错误!未定义书签。 参考文献....................................................................................................................................................21 附录.............................................................................................................................................................. 22 I
基于 FPGA 的计算器设计 摘要: 本文介绍了一个简单计算器的设计,该设计采用了现场可编程逻辑器件 FPGA 设计,并基于 硬件描述语言 VHDL 在 Altera 公司的 Quartus Ⅱ软件上实现仿真。系统由计算部分、存储部分、显 示部分和输入部分四个部分组成,计算部分为加法器、减法器、乘法器和除法器,存储部分需要 3 个存储器来实现:内部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。显示部分由四个 七段译码管组成,分别来显示输入数字,输入部分采用外接键盘,由 0—9 十个数字按键,加减乘除 四个运算符按键,一个等号按键和一个清零按键组成的。通过外部的按键可以完成四位数之内的 ‘加’、‘减’、‘乘’、‘除’四种功能运算,其结构简单,易于实现。 关键词:FPGA;VHDL;计算器 I
The design of calculator based on FPGA Abstract : This article describes the design of a simple calculator, the design uses Field Programmable Gate Array FPGA based on VHDL hardware description language to design and Altera's Quartus Ⅱ in software for emulation. This system is componentted by the calculation section, storage section, display and input section of the four parts, the computing part include adder, subtractor, multiplier and divider,Storage part needs three memory to help achieved: internal accumulator (acc), input register (reg) as well as the results of registers (ans). Display part is made up three decoder of 7 sections, respectively to show the number of input. Input part has ten number keys, from 0 – 9, also has addition and subtraction and multiplication and division arithmetic operator keys, a button and of equal sign and the clear key. Buttons can be done through external within the four-digit 'add', 'subtract', 'multiple', 'divede' the four kinds of functional operations, its structure is simple and easy to implement. Key words:FPGA;VHDL;calclute II
第一章 引言 1.1 课题研究的目的与意义 在人类学会交易的时候,计算也随之产生,而算盘作为计算最实用的工具存在了几 千年。算盘亦称珠算,是中国人民创造的一种计算工具,素有“中国计算机”之称。算盘 产生于汉代之前,是由古代的“筹算”演变而来的,珠算一词,最早见于汉末三国时代徐 岳撰《数术记遗》,书中有“珠算,控带四时,经纬三才”的记述。南宋数学家杨辉的《乘 除通变算宝》中有“九归”口诀,元代刘因亦有算盘诗,明人吴敬《九章详注比类算法大 全》记载了珠算的有关算法。明清时期,算盘的应用已很广泛,关于算盘制造规格,明 万历年间柯尚迁的《数学通轨》载有 13 档算盘图,上 2 珠,下 5 珠,呈长方形,四周 为木框,内有轴心,俗称“档”,档中间用一根横梁隔开,运算时定位后拨珠运算。后来 出现的各种规格的算盘,都是在此基础上发展起来的。算盘构造简单,便于掌握,使用 方便,成为计算理财不可缺少的工具。算盘从明代开始传入朝鲜、日本等东亚国家。清 代时算盘随着经济文化交往被传入东南亚诸国,二次世界大战后,美国也从日本引进了 算盘,可见算盘在人们的日常生活中起着非常重要的作用,不管是大商人还是小商贩都 需要使用算盘进行计算。可是随着人类文明的进步和科学技术的不断发展。算盘已经越 来越不能满足一些高强度、高难度、高速度的复杂计算。这时,一种新的电子产品问世 了,它就是电子计算器。电子计算器的发明是跨时代的,它比算盘计算的速度要快几百 几千倍,计算的结果要比算盘更精确,操作的方法要更方便,更简单易学,计算的范围 更广,并且小巧、轻便。它已经成为人们日常生活中不可缺少的一种计算工具,为我们 的生活提供了很大的方便。而随着计算机的普及,越来越多人在使用计算机,越来越多 的工作离不开计算机,可以说计算机已经成为现代社会中不可或缺的工具,而电子计算 器功能也以软件的形式进入计算机的软件世界,这不仅给人们带来了更大的便利,更为 人们引入了更快的计算速度和更强大的运算功能。 1.2 国内外发展现状 (1)国外情况 在国外,电子计算器在集成电路发明后,只用短短几年时间就完成了技术飞跃,经 过激烈的市场竞争,现在的计算器技术己经相当成熟。计算器已慢慢地脱离原来的“辅 助计算工具”的功能定位,正向着多功能化、可编程化方向发展,在各个领域都得到了 广泛的应用。用计算器不仅可以实现各种各样复杂的数学计算还可以用来编制、运行程 序,甚至解方程组,图形计算器还可以进行图形处理。计算器内置的软件允许用户进行 1
类似于对计算机的文件和目录管理等操作,允许用户对图形界面进行定制,同时各种新 技术也被应用到计算器里使计算器功能越来越强大。可以说,计算器就是一个“微微型” 的计算机。 (2)国内情况 国内也有厂商利用计算器芯片开发新的产品,但对计算器技术的研究、计算器芯片 的设计还处于起步阶段。计算器的主要功能还是在于“计算”,不妨称之为“低档计算器”。 即便是对这种计算器,很多厂商也只从事计算器的组装、销售业务。一些 IC 设计公司、 芯片提供商也开始研究计算器技术。 1.3 课题的主要技术路线 本次设计基于现场可编程逻辑器件 FPGA 进行设计,应用硬件描述语言 VHDL 编 程并在 Altera 公司的 Quartus Ⅱ软件上实现仿真。需要进行计算器的常用运算功能的实 现,通过外接键盘输入、LED 数码显示来达成运算目的。 2
第二章 FPGA 技术及硬件描述语言 2.1 FPGA 技术的发展现状及与 CPLD 的比较 (1)FPGA 技术的发展现状 FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在 PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路 (ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有 可编程器件门电路数有限的缺点。 FPGA 采用了逻辑单元阵列 LCA(Logic Cell Array)这样一个概念,内部包括可配 置逻辑模块 CLB(Configurable Logic Block)、输入输出模块 IOB(Input Output Block) 和内部连线(Interconnect)三个部分。FPGA 的基本特点主要有: ⅰ.采用 FPGA 设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片。 ⅱ.FPGA 可做其它全定制或半定制 ASIC 电路的测试样片。 ⅲ.FPGA 内部有丰富的触发器和 I/O 引脚。 ⅳ.FPGA 是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 ⅴ.FPGA 采用高速 CHMOS 工艺,功耗低,可以与 CMOS、TTL 电平兼容。 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此,工作时需要对 片内的 RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时, FPGA 芯片将 EPROM 中数据读入片内编程 RAM 中,配置完成后,FPGA 进入工作状 态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA 的编程无须专用的 FPGA 编程器,只须用通用的 EPROM、PROM 编程器即可。当需要 修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据, 可以产生不同的电路功能。因此,FPGA 的使用非常灵活。 与 FPGA 对应的还有 DSP 处理器,DSP 处理器速度虽然很快,并对许多 DSP 应用 来说很有用,但仍有一些应用要求性能再进一步提升,而 FPGA 提供了更高的性能。 FPGA 可以生成一个定制硬件设计,从而控制逻辑能够在硬件中实现,不必再利用精确 的时钟周期来实现控制功能。此外,通过裁减硬件架构,FPGA 可以提供额外的性能。 如果最重要的设计考虑因素是速度,那么可以在 FPGA 中设计完全并行的算法处理方 案。现在,许多系统已经包含了一个 FPGA,用于协议转换、胶合逻辑或一些其它系统 功能。如果那个 FPGA 没有被完全利用,那么把 DSP 功能加入其中可以为系统节约成 本。而且如果标准发生改变,使用 FPGA 就不会有任何风险。FPGA 的配置文件能够像 软件那样升级,尽管它们必须被存储在系统的非易失性存储器中。 目前的 FPGA 设计一般采用 Top-down(自顶向下)的设计方法。先将系统划分为 3
各个功能子模块,在系统级层次上进行行为描述,再对这些子模块进一步进行行为描述。 (2)FPGA 与 CPLD 的比较 FPGA 是现场可编程逻辑门阵列的简称,是电子设计的一个里程碑。CPLD 是复杂 可编程逻辑器件的简称。尽管 FPGA 和 CPLD 都是可编程 ASIC 器件,有很多共同特点, 但由于 CPLD 和 FPGA 结构上的差异,具有各自的特点: ⅰ.CPLD 更适合完成各种算法和组合逻辑,FPGA 更适合于完成时序逻辑。换句话 说, FPGA 更适合于触发器丰富的结构,而 CPLD 更适合于触发器有限而乘积项丰富的 结构。 ⅱ.CPLD 的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而 FPGA 的 分段式布线结构决定了其延迟的不可预测性。 ⅲ.在编程上 FPGA 比 CPLD 具有更大的灵活性。CPLD 通过修改具有固定内连电路 的逻辑功能来编程, FPGA 主要通过改变内部连线的布线来编程; FPGA 可在逻辑门 下编程,而 CPLD 是在逻辑块下编程。 ⅳ.FPGA 的集成度比 CPLD 高,具有更复杂的布线结构和逻辑实现。 ⅴ.CPLD 比 FPGA 使用起来更方便。CPLD 的编程采用 E2PROM 或 FASTFLASH 技术,无需外部存储器芯片,使用简单。而 FPGA 的编程信息需存放在外部存储器上, 使用方法复杂。 ⅵ.CPLD 的速度比 FPGA 快,并且具有较大的时间可预测性。这是由于 FPGA 是门 级编程,并且 CLB 之间采用分布式互联,而 CPLD 是逻辑块级编程,并且其逻辑块之 间的互联是集总式的。 ⅶ.在编程方式上,FPGA 大部分是基于 SRAM 编程,编程信息在系统断电时丢失, 每次上电时,需从器件外部将编程数据重新写入 SRAM 中。其优点是可以编程任意次, 可在工作中快速编程,从而实现板级和系统级的动态配置。 CPLD 主要是基于 EEPROM 或 FLASH 存储器编程,编程次数可达 1 万次,优点是系统断电时编程信息也不丢失。 CPLD 又可分为在编程器上编程和在系统编程两类。 ⅷ.一般情况下,CPLD 的功耗要比 FPGA 大,且集成度越高越明显。 随着 FPGA 门数以及性能的提高,可以将现在的许多数字电路部分下载到 FPGA 上, 实现硬件的软件化,包括 51 核,DSP 核以及其他的一些数字模块,到最后一个系统板 子就剩下电源、模拟电路部分,接口部分以及一块 FPGA。FPGA 可以说是芯片级的 PCB 板,在一个芯片里设计原来的电子系统的所有数字电路部分。 现在也有将 ARM 核嵌入到 FPGA 里面的,比如 Altera 公司的 Nois 核。Nois 是一 个软核,是有软件编写的一个 32 位处理器,并不是硬件上存在的处理核,该核工作频 率为 50HZ,现在用于许多图像处理以及其他的很多网络设备。利用锁相环技术可以将 频率成倍提升,一般的 ARM 核是将锁相环做到芯片里面的,在变成的时候可以对某个 4
寄存器进行设置从而达到分频和倍频的目的。而将 DSP 核嵌入到 FPGA 里面去实现强 大的计算功能是 Altera 公司近期推出的一系列芯片的一个优点。Altera 公司的 Stratix II 系列芯片采用内嵌的 DSP 核,但是其 DSP 核的计算速度比现在业界上最快的 DSP 芯片 还要快几个数量级。 2.2 FPGA 设计方法 在FPGA设计中,有许多重要的原则和规律可循,掌握这些原则和规律,人们可以 设计出许多高性能的电子系统。 (1) 硬件原则 硬件原则主要针对HDL代码编写而言的。硬件描述语言,它通过对硬件的抽象,最 终实现在芯片内部的实际电路。因此评判一段HDL代码的优劣的最终标准是:其描述并 实现的硬件电路的性能(主要是指面积和速度)。评价一个设计的代码水平,主要从设 计工程师所构想的硬件实现方案的效率以及合理性来分析。 (2) 系统原则 一个硬件系统,通过何种方式进行模块划分与任务分配,使用算法和实现功能,以 及FPGA的规模估算、数据接口设计等,具体到FPGA的设计就要求对设计的全局有个宏 观上的合理安排。一般来说实时性要求高、频率快、功耗小的功能模块适合使用CPLD 实现。而FPGA与CPLD相比,更适合实现规模较大、频率较高、寄存器资源使用较多的 设计。 (3) 面积和速度的平衡与互换原则 这是在进行FPGA设计时的一个重要原则。这里“面积”是指一种设计所要消耗的 FPGA/CPLD的逻辑资源的数量,对于FPGA可以用所消耗的触发器(FF)和查找表(LUT) 来衡量,更一般的衡量方式可以用设计所占用的等价逻辑门数。“速度”是指设计在芯片 上稳定运行,所能够达到的最高频率,这个频率由设计的时序状况决定,和设计满足的 时钟周期,时钟建立时间(Clock Setup Time),时钟保持时间(Clock Hold Time)等众 多时序特征量密切相关。面积和速度是对立统一的矛盾体。要求一个设计同时具备运行 频率最高而且面积最小是不现实的。科学的设计方法是在满足设计时序要求的前提下, 占用最小的芯片面积。或者在所规定的面积下,频率更高。这两种目标充分体现了面积 和速度的平衡思想。相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时, 采用速度优先的准则。 (4) 同步设计原则 采用同步时序设计是 FPGA 设计的一个重要原则。它可以使静态时序分析变得简单 而且可靠,能有效地避免毛刺的影响,使设计更加有效,还可以减小环境对芯片的影响。 5
分享到:
收藏