基于FPGA的计算器设计.docx

上传人:b****5 文档编号:6220028 上传时间:2023-01-04 格式:DOCX 页数:41 大小:228.58KB
下载 相关 举报
基于FPGA的计算器设计.docx_第1页
第1页 / 共41页
基于FPGA的计算器设计.docx_第2页
第2页 / 共41页
基于FPGA的计算器设计.docx_第3页
第3页 / 共41页
基于FPGA的计算器设计.docx_第4页
第4页 / 共41页
基于FPGA的计算器设计.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

基于FPGA的计算器设计.docx

《基于FPGA的计算器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的计算器设计.docx(41页珍藏版)》请在冰豆网上搜索。

基于FPGA的计算器设计.docx

基于FPGA的计算器设计

基于FPGA的计算器设计

摘要:

本文介绍了一个简单计算器的设计,该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言VHDL在Altera公司的QuartusⅡ软件上实现仿真。

系统由计算部分、存储部分、显示部分和输入部分四个部分组成,计算部分为加法器、减法器、乘法器和除法器,存储部分需要3个存储器来实现:

内部累加器(acc)、输入寄存器(reg)以及结果暂存器(ans)。

显示部分由四个七段译码管组成,分别来显示输入数字,输入部分采用外接键盘,由0—9十个数字按键,加减乘除四个运算符按键,一个等号按键和一个清零按键组成的。

通过外部的按键可以完成四位数之内的‘加’、‘减’、‘乘’、‘除’四种功能运算,其结构简单,易于实现。

关键词:

FPGA;VHDL;计算器

 

ThedesignofcalculatorbasedonFPGA

Abstract:

Thisarticledescribesthedesignofasimplecalculator,thedesignusesFieldProgrammableGateArrayFPGAbasedonVHDLhardwaredescriptionlanguagetodesignandAltera'sQuartusⅡinsoftwareforemulation.Thissystemiscomponenttedbythecalculationsection,storagesection,displayandinputsectionofthefourparts,thecomputingpartincludeadder,subtractor,multiplieranddivider,Storagepartneedsthreememorytohelpachieved:

internalaccumulator(acc),inputregister(reg)aswellastheresultsofregisters(ans).Displaypartismadeupthreedecoderof7sections,respectivelytoshowthenumberofinput.Inputparthastennumberkeys,from0–9,alsohasadditionandsubtractionandmultiplicationanddivisionarithmeticoperatorkeys,abuttonandofequalsignandtheclearkey.Buttonscanbedonethroughexternalwithinthefour-digit'add','subtract','multiple','divede'thefourkindsoffunctionaloperations,itsstructureissimpleandeasytoimplement.

Keywords:

FPGA;VHDL;calclute

 

第一章引言

1.1课题研究的目的与意义

在人类学会交易的时候,计算也随之产生,而算盘作为计算最实用的工具存在了几千年。

算盘亦称珠算,是中国人民创造的一种计算工具,素有“中国计算机”之称。

算盘产生于汉代之前,是由古代的“筹算”演变而来的,珠算一词,最早见于汉末三国时代徐岳撰《数术记遗》,书中有“珠算,控带四时,经纬三才”的记述。

南宋数学家杨辉的《乘除通变算宝》中有“九归”口诀,元代刘因亦有算盘诗,明人吴敬《九章详注比类算法大全》记载了珠算的有关算法。

明清时期,算盘的应用已很广泛,关于算盘制造规格,明万历年间柯尚迁的《数学通轨》载有13档算盘图,上2珠,下5珠,呈长方形,四周为木框,内有轴心,俗称“档”,档中间用一根横梁隔开,运算时定位后拨珠运算。

后来出现的各种规格的算盘,都是在此基础上发展起来的。

算盘构造简单,便于掌握,使用方便,成为计算理财不可缺少的工具。

算盘从明代开始传入朝鲜、日本等东亚国家。

清代时算盘随着经济文化交往被传入东南亚诸国,二次世界大战后,美国也从日本引进了算盘,可见算盘在人们的日常生活中起着非常重要的作用,不管是大商人还是小商贩都需要使用算盘进行计算。

可是随着人类文明的进步和科学技术的不断发展。

算盘已经越来越不能满足一些高强度、高难度、高速度的复杂计算。

这时,一种新的电子产品问世了,它就是电子计算器。

电子计算器的发明是跨时代的,它比算盘计算的速度要快几百几千倍,计算的结果要比算盘更精确,操作的方法要更方便,更简单易学,计算的范围更广,并且小巧、轻便。

它已经成为人们日常生活中不可缺少的一种计算工具,为我们的生活提供了很大的方便。

而随着计算机的普及,越来越多人在使用计算机,越来越多的工作离不开计算机,可以说计算机已经成为现代社会中不可或缺的工具,而电子计算器功能也以软件的形式进入计算机的软件世界,这不仅给人们带来了更大的便利,更为人们引入了更快的计算速度和更强大的运算功能。

1.2国内外发展现状

(1)国外情况

在国外,电子计算器在集成电路发明后,只用短短几年时间就完成了技术飞跃,经过激烈的市场竞争,现在的计算器技术己经相当成熟。

计算器已慢慢地脱离原来的“辅助计算工具”的功能定位,正向着多功能化、可编程化方向发展,在各个领域都得到了广泛的应用。

用计算器不仅可以实现各种各样复杂的数学计算还可以用来编制、运行程序,甚至解方程组,图形计算器还可以进行图形处理。

计算器内置的软件允许用户进行类似于对计算机的文件和目录管理等操作,允许用户对图形界面进行定制,同时各种新技术也被应用到计算器里使计算器功能越来越强大。

可以说,计算器就是一个“微微型”的计算机。

(2)国内情况

国内也有厂商利用计算器芯片开发新的产品,但对计算器技术的研究、计算器芯片的设计还处于起步阶段。

计算器的主要功能还是在于“计算”,不妨称之为“低档计算器”。

即便是对这种计算器,很多厂商也只从事计算器的组装、销售业务。

一些IC设计公司、芯片提供商也开始研究计算器技术。

1.3课题的主要技术路线

本次设计基于现场可编程逻辑器件FPGA进行设计,应用硬件描述语言VHDL编程并在Altera公司的QuartusⅡ软件上实现仿真。

需要进行计算器的常用运算功能的实现,通过外接键盘输入、LED数码显示来达成运算目的。

 

第二章FPGA技术及硬件描述语言

2.1FPGA技术的发展现状及与CPLD的比较

(1)FPGA技术的发展现状

FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输入输出模块IOB(InputOutputBlock)和内部连线(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(自顶向下)的设计方法。

先将系统划分为各个功能子模块,在系统级层次上进行行为描述,再对这些子模块进一步进行行为描述。

(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核是将锁相环做到芯片里面的,在变成的时候可以对某个寄存器进行设置从而达到分频和倍频的目的。

而将DSP核嵌入到FPGA里面去实现强大的计算功能是Altera公司近期推出的一系列芯片的一个优点。

Altera公司的StratixII系列芯片采用内嵌的DSP核,但是其DSP核的计算速度比现在业界上最快的DSP芯片还要快几个数量级。

2.2FPGA设计方法

在FPGA设计中,有许多重要的原则和规律可循,掌握这些原则和规律,人们可以设计出许多高性能的电子系统。

(1)硬件原则

硬件原则主要针对HDL代码编写而言的。

硬件描述语言,它通过对硬件的抽象,最终实现在芯片内部的实际电路。

因此评判一段HDL代码的优劣的最终标准是:

其描述并实现的硬件电路的性能(主要是指面积和速度)。

评价一个设计的代码水平,主要从设计工程师所构想的硬件实现方案的效率以及合理性来分析。

(2)系统原则

一个硬件系统,通过何种方式进行模块划分与任务分配,使用算法和实现功能,以及FPGA的规模估算、数据接口设计等,具体到FPGA的设计就要求对设计的全局有个宏观上的合理安排。

一般来说实时性要求高、频率快、功耗小的功能模块适合使用CPLD实现。

而FPGA与CPLD相比,更适合实现规模较大、频率较高、寄存器资源使用较多的设计。

(3)面积和速度的平衡与互换原则

这是在进行FPGA设计时的一个重要原则。

这里“面积”是指一种设计所要消耗的FPGA/CPLD的逻辑资源的数量,对于FPGA可以用所消耗的触发器(FF)和查找表(LUT)来衡量,更一般的衡量方式可以用设计所占用的等价逻辑门数。

“速度”是指设计在芯片上稳定运行,所能够达到的最高频率,这个频率由设计的时序状况决定,和设计满足的时钟周期,时钟建立时间(ClockSetupTime),时钟保持时间(ClockHoldTime)等众多时序特征量密切相关。

面积和速度是对立统一的矛盾体。

要求一个设计同时具备运行频率最高而且面积最小是不现实的。

科学的设计方法是在满足设计时序要求的前提下,占用最小的芯片面积。

或者在所规定的面积下,频率更高。

这两种目标充分体现了面积和速度的平衡思想。

相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时,采用速度优先的准则。

(4)同步设计原则

采用同步时序设计是FPGA设计的一个重要原则。

它可以使静态时序分析变得简单而且可靠,能有效地避免毛刺的影响,使设计更加有效,还可以减小环境对芯片的影响。

在遵循这一原则的时候,应该尽可能的在设计中使用同一时钟,时钟走全局网络,同时避免使用混合时钟采样数据。

2.3利用硬件描述语言(HDL)的硬件电路设计方法

硬件描述语言,就是可以描述电路的功能、信号连接关系及定时关系的语言。

它能比电路图更有效地表示硬件电路的特性。

利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是该设计方法的一个重要特征。

随着大规模专用集成电路(ASIC)的开发和研制,为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发时间,各ASIC研制和生产厂家相继开发了用于各自目的的硬件描述语言。

其中最有代表性的是美国国防部开发的VHDL语言,Verilog公司开发的VerilogHDL以及日本电子工业振兴协会开发的UDL/I语言。

利用硬件描述语言(HDL)的硬件电路设计方法具有以下特点:

(1)采用自上而下的设计方法

(2)系统中可大量采用ASIC芯片

由于目前众多的制造ASIC芯片的厂家,他们的工具软件都可以支持HDL语言的编程,因此,硬件设计人员在设计硬件电路时,无须受只能使用通用元器件的限制,而可以根据硬件电路设计的需要,设计自用的ASIC芯片或可编程逻辑器件。

这样最终会使系统电路设计更趋合理,体积也可大为缩小。

(3)采用系统早期仿真

从自上至下的设计过程可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。

也就是说进行系统数学模型的仿真、系统数据流的仿真和系统门级电路原理的仿真。

这三级仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题。

(4)降低了硬件电路设计难度

在采用传统的硬件电路设计方法时,往往要求设计者在设计电路前应写出该电路的逻辑表达式或真值表(或时序电路的状态表)。

这一工作是很困难和繁杂的,特别是在系统比较复杂时更是如此。

在用HDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦。

这样使硬件电路的设计难度有了大幅度的下降,从而也缩短了硬件电路的设计周期。

(5)主要设计文件是用HDL语言编写的源程序

在传统的硬件电路设计中,最后形成的主要文件是电原理图,而采用HDL语言设计系统硬件电路时,主要的设计文件是用HDL语言编写的源程序。

如果需要也可以转换为电原理图形式输出。

用HDL语言源程序作为归档文件有很多好处。

其一是资料量小,便于保存。

其二是可继承性好。

当设计其它硬件电路时,可以使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。

其三是阅读方便。

阅读程序比阅读原理图要更容易一些。

阅读者很容易在程序中看出某一硬件电路的工作原理和逻辑关系。

而阅读电原理图,推知其工作原理却需要较多的硬件知识和经验,而且看起来也不那么一目了然。

2.4VHDL语言的特点

VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点。

支持从系统级到逻辑门级电路所有层次的设计,适合于复杂逻辑电路和系统的设计。

作为一种高级硬件描述语言,VHDL语言有如下特点:

ⅰ.与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。

强大的行为描述能力是避开具体的器件结构、从逻辑行为上描述和设计大规模电子系统的重要保证。

ⅱ.VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能检查系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能的可行性做出判断。

ⅲ.用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。

这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生地错误,降低了开发成本。

利用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高速的电路系统。

反过来,设计者还可以容易地从综合和优化的电路中获得设计信息,返回去更新修改VHDL设计描述,使之更加完善。

ⅳ.VHDL对设计的描述具有相对独立性。

设计者可以不懂硬件的结构,也不必顾及最终设计的目标器件是什么,而进行独立的设计。

正因为VHDL得硬件描述与具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现目标器件有广阔的选择范围。

ⅴ.由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻而易举地改变设计的规模和结构。

ⅵ.VHDL本身的生命周期长。

因为VHDL得硬件描述与工艺无关,不会因工艺变化而使描述过时。

而与工艺技术有关的参数可通过VHDL提供的属性加以描述,当生产工艺改变时,只需要修改相应程序中的属性参数即可。

2.5QuartusⅡ概述及其设计流程

(1)QuartusⅡ概述

QuartusⅡ是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusⅡ可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

  QuartusⅡ支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusⅡ通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII的更新支持,QuartusⅡ与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusⅡ中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。

AlteraQuartusⅡ作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

Altera的QuartusⅡ可编程逻辑软件属于第四代PLD开发平台。

该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。

Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。

改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。

支持MAX7000/MAX3000等乘积项器件。

(2)QuartusⅡ设计流程

ⅰ.建立新工程:

首先将所设计工程项目划分为若干子模块,将每个子模块单独存放在一个文件夹中,并分别进行编译,验证通过后,将每个子模块的VHDL文本文件添加到总工程文件夹中,并建立图元(建立图元block,右键点击.V文件,选择createsymbolfilesforcurrentfiles),将各个图元(亦即子模块)连接起来构成总体设计项目。

ⅱ.设计各子模块:

编写各子模块相应的代码,并分别进行编译,验证通过后将各子模块VHDL文件添加到顶层设计中,创建图元,进行连接以完成总体项目的设计。

这部分就是将管脚连好。

在原理图编辑中,英文的大小写代表相同的含义,只要器件连接线的节点名称相同就会默认为是连接的,总线(Bus)在图形编辑窗口显示的是一条粗线,总线必须在名称的后面加上“[a..b]”,表示一条总线内所含有的节点编号,原理图编辑的文件扩展名为“.bdf”,在QuartusII中工程名称必须与顶层实体名称相同,且VHDL设计中实体名称亦为相同的名字,否则不能进行编译。

ⅲ.编译工程

ⅳ.仿真:

波形矢量文件的扩展名为“.vwf”,仿真分为功能仿真和时序仿真,也称为前仿真和后仿真,功能仿真是忽略延时后的仿真,是最理想的仿真,时序仿真则是加上了一些延时的仿真,是最接近于实际的仿真,在设计中通常先做功能仿真验证逻辑的正确性,后做时序仿真验证时序是否符合要求,需注意默认为时序仿真,在设置功能仿真后需要生成功能仿真网络表。

 

第三章系统总体设计

系统总体设计框图如图3.1所示。

此设计由计算部分、存储部分、显示部分和输入部分组成。

 

图3.1计算器的系统组成框图

3.1计算器的计算部分

在这一部分中,可以将每一个数均表示成8位或者4位二进制数统一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1