基于quartusⅡ的通用运算器的设计与实现学士学位论文.docx
《基于quartusⅡ的通用运算器的设计与实现学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于quartusⅡ的通用运算器的设计与实现学士学位论文.docx(71页珍藏版)》请在冰豆网上搜索。
基于quartusⅡ的通用运算器的设计与实现学士学位论文
基于quartusⅡ的通用运算器的设计与实现学士学位论文
摘要
在集成电路设计领域中,各类微处理器已经成为了整个芯片系统的核心。
运算器作为其核心部件,得到广泛的发展。
与此同时,为了增加电子产品产出效率,降低制造成本,诸如QuartusII9.0等电子仿真软件相继出现,为产品开发提供了良好的开发平台。
本文根据运算器具有物美价廉、使用方便、功能性强等特点,分别对半加器、全加器、乘法器、除法器进行了仿真设计。
首先本文介绍了课题的背景、意义、发展现状及未来走向,并对研究内容及设计方案进行了简单介绍。
其次对设计环境QuartusⅡ平台及VHDL做了介绍。
之后对半加器、全加器、乘法器、除法器的设计进行了详细描述,包括工作原理、真值表及流程图,还把乘法器分成各个模块,并对各个模块进行了详细的介绍与设计分析。
随后对半加器、全加器、乘法器、除法器进行了编程、仿真以及在QuartusⅡ平台上对仿真结果进行验证。
从而做到了从理论到实践,学以致用。
关键词:
运算器;QuartusⅡ;VHDL
Abstract
Inthefieldofintegratedcircuitdesign,allkindsofmicroprocessorshasbecomethecoreofthewholechipsystem.Unitasitscorecomponent,iswidelydevelopment.Atthesametime,inordertoincreasetheelectronicproductsoutputefficiency,reducemanufacturingcost,suchastheQuartusII9.0electronicsimulationsoftwareappeared,suchasforproductdevelopmentprovidesagooddevelopmentplatform.
Basedonthearithmeticunithasthegoodandinexpensive,easytouse,functionalcharacteristics,respectively,halfadder,fulladder,multiplieranddividerdesignhascarriedonthesimulation.Firstthisarticleintroducesthetopicbackground,significance,statusquoandfuturedevelopment,andresearchcontentsandthedesignschemeofasimpleintroduction.SecondlyonthedesignenvironmentQuartusIIplatformandVHDLispresented.Afterfulladderandfulladder,multiplieranddividerdesignaredescribedindetail,includingtheworkingprinciple,thetruthtableandflowchart,alsothemultiplierisdividedintovariousmodules,andeachmoduleareanalyzedindetailanddesign.Thenhalfadder,fulladder,multiplieranddividerforprogramming,simulation,andintheQuartusIIplatformofsimulationresultstovalidate.Thusdiditfromtheorytopractice,topractice.
Keywords:
Arithmeticunit;VHDL;QuartusII
1引言
1.1课题背景及意义
QuartusII具有界面友好、操作简单的特点,作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的QuartusII平台。
运用基于VHDL语言的技术优越性体现在可以缩短设计周期,提高设计活动的效率、可靠性和正确性。
用VHDL语言编写的源程序,可以转化成电路原理图的形式输出,而且VHDL语言作为归档文件的优点是:
资料量小,便于保存,便于阅读,阅读者不需要太多的硬件知识和经验就可以很容易的从程序中看出某一硬件电路的工作原理和逻辑关系;可继承性好,设计者在设计其他硬件电路时,可以方便的使用某些已经设计好的局部硬件电路。
本课题是将两者的优越性结合起来,用VHDL语言在QuartusII的开发环境下实现运算器的加法器、半加器、全加器、乘法器和除法器。
运算器在当今社会起着举足轻重的作用,随着科技的飞速发展,运算器在计算机、电视机、一些特定电路的开关以及许多非线性变换领域等都有着广泛应用。
1.2课题的现状与发展
在集成电路设计领域中,各类微处理器已经成为了整个芯片系统的核心,人们对其性能要求越来越高,使得其每一个部件性能都在不断提升。
运算器作为其核心部件,已经成为高性能计算和数字信号处理的重要指标,它的发展影响着微处理器性能,关于提高其性能一直是国内外研究的重要课题,这里介绍的QuartusII9.0它的简单易用,方便快捷,给设计者减少了难度,使用QuartusII9.0设计运算器与传统的运算器相比较具有开放性、可编程性强、设计空间大、时间灵活等特点,并具有较高的实验效率。
1.3研究内容与设计方案
查阅相关资料,熟悉QuartusII软件,熟悉运算器的工作原理,了解运算器的各部分功能;在QuartusII平台上设计并实现半加器、全加器、乘法器以及除法器。
在QuartusII平台上的实现半加器、全加器、加法器、移位加法乘法器、除法器的运算过程,基于VHDL语言,硬件简单,性能稳定,可以充分体现可编程器件在数字电路中的优越性。
首先确定运算器所要实现的功能,根据功能的要求确定实现运算器的模块,大致分为下面几个步骤,首先在QuartusII软件上创建BlockDiagram/SchematicFile文件,实现功能电路,画出运算器电路。
然后在QuartusII软件上对该运算器的程序进行编译,输入程序之后,创建VWF文件,在文件中编辑波形,进行仿真,并且得出运算结果。
2开发环境
2.1QuartusII平台介绍
2.1.1QuartusII简介
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。
该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。
Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。
支持MAX7000/MAX3000等乘积项器件
2.1.2QuartusII总体设计
1、总体设计
AlteraQuartusII设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。
QuartusII软件含有FPGA和CPLD设计所有阶段的解决方案如流程框图图2.1所示。
图2.1QuartusII设计流程
此外,QuartusII软件为设计流程的每个阶段提供QuartusII图形用户界面、EDA工具界面以及命令行界面。
可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同界面。
本章介绍适用于每个设计流程的选项。
本手册其余章节详细说明设计流程的各个阶段。
2、图形用户界面设计流程
您可以使用QuartusII软件完成设计流程的所有阶段;它是一个全面易用的独立解决方案。
图2.2显示QuartusII图形用户界面在设计流程每个阶段中所提供的功能。
图2.2QuartusII图形用户界面的功能
QuartusII软件包括一个模块化编译器。
编译器包括以下模块(标有星号的模块表示在完整编译时,可根据设置选择使用):
■分析和综合
■分区合并
■适配器
■汇编器
■标准时序分析器和TimeQuest时序分析器
■设计助手
■EDA网表写入器
■HardCopy网表写入器
要将所有的编译器模块作为完整编译的一部分来运行,在processing菜单中单击StartCompilation。
也可以单独运行每个模块,从Processing菜单的Start子菜单中单击您希望启动的命令。
还可以逐步运行一些编译模块。
此外,还可以通过选择CompilerTool(Tools菜单),在CompilerTool窗口中运行该模块来分别启动编译模块。
在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。
以下步骤描述了使用QuartusII图形用户界面的基本设计流程:
(1)在File菜单中,单击NewProjectWizard,建立新工程并指定目标器件或器件系列。
(2)使用文本编辑器建立VerilogHDL、VHDL或者Altera硬件描述语言(AHDL)设计。
使用模块编辑器建立以符号表示的框图,表征其他设计文件,也可以建立原理图。
(3)使用MegaWizard插件管理器生成宏功能和IP功能的自定义变量,在设计中将它们例化,也可以使用SOPCBuilder或者DSPBuilder建立一个系统级设计。
(4)利用分配编辑器、引脚规划器、Settings对话框、布局编辑器以及设计分区窗口指定初始设计约束。
(5)(可选)进行早期时序估算,在适配之前生成时序结果的早期估算。
(6)利用分析和综合对设计进行综合。
(7)(可选)如果您的设计含有分区,还没有进行完整编译,则需要通过PartitionMerge将分区合并。
(8)(可选)通过仿真器为设计生成一个功能仿真网表,进行功能仿真。
(9)使用适配器对设计进行布局布线。
(10)使用PowerPlay功耗分析器进行功耗估算和分析。
(11)使用仿真器对设计进行时序仿真。
使用TimeQuest时序分析器或者标准时序分析器对设计进行时序分析。
(12)(可选)使用物理综合、时序逼进布局、LogicLock功能和分配编辑器纠正时序问题。
(13)使用汇编器建立设计编程文件,通过编程器和Altera编程硬件对器件进行编程。
(14)(可选)采用SignalTapII逻辑分析器、外部逻辑分析器、SignalProb功能或者芯片编辑器对设计进行调试。
(15)(可选)采用芯片编辑器、资源属性编辑器和更改管理器来管理工程改动。
3、设计方法和设计规划
在建立新设计时,应重视考虑QuartusII软件提供的设计方法,包括自上而下或自下而上的渐进式设计流程以及基于模块的设计流程。
不管是否使用EDA设计输入和综合工具,都可以使用这些设计流程。
(1)自上而下与自下而上的设计方法比较
QuartusII软件同时支持自上而下和自下而上的编译流程。
在自上而下的编译过程中,一个设计人员或者工程负责人在软件中对整个设计进行编译。
不同的设计人员或者IP提供者设计并验证设计的不同部分,工程负责人在设计实体完成后将其加入到工程中。
工程负责人从整体上编译并优化顶层工程。
设计中完成的部分得到适配结果,当设计的其他部分改动时,其性能保持不变。
自下而上的设计流程中,每个设计人员在各自的工程中对其设计进行优化后,将每一个底层工程集成到一个顶层工程中。
渐进式编译提供导出和导入功能来实现这种设计方法。
作为底层模块设计人员,您可以针对他们的设计,导出优化后的网表和一组分配(例如LogicLock区域)。
然后,工程负责人将每一个设计模块作为设计分区导入到顶层工程中。
在这种情况下,工程负责人必须指导底层模块设计人员,保证每一分区使用适当的器件资源。
在完整的渐进式编译流程中,您应该认识到,如果以前出于保持性能不变的原因而采用自下而上的方法,那么现在可以采用自上而下方法来达到同样的目的。
这一功能之所以重要是出于两方面的原因。
第一,自上而下流程要比对应的自下而上流程执行起来简单一些。
例如,不需要导入和导出底层设计。
第二,自上而下的方法为设计软件提供整个设计的信息,因此,可以进行全局优化。
在自下而上的设计方法中,软件在编译每一个底层分区时,并不知道顶层设计其他分区的情况,因此,必须进行资源均衡和时序预算。
(2)自上而下渐进式编译设计流程
自上而下渐进式编译设计流程重新使用以前的编译结果,确保只对修改过的设计重新编译,因此能够保持设计性能不变,节省编译时间。
自上而下的渐进式编译流程在处理其他设计分区时,可以只修改设计中关键单元的布局,也可以只对设计的指定部分限定布局,使编译器能够自动优化设计的其余部分,从而改进了时序。
在渐进式编译流程中,您可以为设计分区分配一个设计实体实例,然后使用时序逼近布局图和LogicLock功能为分区分配一个器件物理位置,进行完整的设计编译。
在编译过程中,编译器将综合和适配结果保存在工程数据库中。
第一次编译之后,如果对设计做进一步的修改,只有改动过的分区需要重新编译。
完成设计修改后,您可以只进行渐进式综合,节省编译时间,也可以进行完整的渐进式编译,不但能够显著节省编译时间,而且还可以保持性能不变。
在这两种情况中,QuartusII软件为所选的任务合并所有的分区。
由于渐进式编译流程能够防止编译器跨分区边界进行优化,因此编译器不会像常规编译那样对面积和时序进行大量优化。
为获得最佳的面积和时序结果,建议您记录设计分区的输入和输出,尽量将设计分区数量控制在合理范围内,避免跨分区边界建立过多的关键路径,不要建立太小的分区,如数量少于1000的逻辑单元和自适应逻辑模块(ALM)分区。
2.1.3QuartusII总体仿真
使用EDA工具进行设计仿真
QuartusII软件的EDANetlistWriter模块生成用于功能或时序仿真的VHDL输出文件(.vho)和Verilog输出文件(.vo),以及使用EDA仿真工具进行时序仿真时所需的StandardDelayFormatOutput文件(.sdo)。
QuartusII软件生成StandardDelayFormat2。
1版的SDF输出文件。
EDANetlistWriter将仿真输出文件放在当前工程目录下的专用工具目录中。
此外,QuartusII软件通过NativeLink功能为时序仿真和EDA仿真工具提供无缝集成。
NativeLink功能允许QuartusII软件将信息传递给EDA仿真工具,并具有从QuartusII软件中启动EDA仿真工具的功能。
建立一个新工程时,或者在Settings对话框(Assignments菜单)EDAToolSettings下的Simulation页面中,可以在NewProjectWizard(File菜单)中选择EDA仿真工具。
Simulation页面允许您选择仿真工具并为Verilog和VHDL输出文件及其对应SDF输出文件的生成指定选项,以及功耗分析和SignalActivityFile的选项。
2.2VHDL语言介绍
2.2.1VHDL语言概述
甚高速集成电路硬件描述语言(Veryhighspeedinteratedcircuithardwaredescriptionlanguage,VHDL)广泛用于电路设计的文档记录、设计描述的逻辑综合及电路仿真等方面。
与一般的高级语言比较,具有如下的特点:
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言对行为进行描述的能力为设计大规模复杂数字系统或单片系统提供了重要保证。
VHDL语言是一种硬件描述语言,具有严谨的语言结构和强大的硬件描述能力。
近年发展起来的描述混合系统和描述单片系统的AMS-VHDL,就是以VHDL语言为基础的。
VHDL是EDA开发环境中最重要的一环,VHDL语言设计文档描述电子系统结构、行为或功能,要经过EDA编译器、综合器、优化器、布局布线器、模拟器及编程器等一系列处理,才能转化为物理实现,显然,VHDL设计文档是这一序列工作的起点,具有重要的意义。
VHDL支持自上而下的设计思想,可以把一个大型设计分解为若干易于实现的子模块。
VHDL支持设计的再利用,使得大型设计可以由多人或多个开发组共同工作来完成。
2.2.2VHDL语言介绍
1、利用VHDL实现数字系统的设计流程
利用VHDL和可编程逻辑器件实现数字逻辑的流程见图2.3,该流程揭示了设计进程中各个EDA工具的输人输出情况,在整个设计过程中,设计者的主要工作是完成VHDL设计文档,并对以后的处理进程加以简单的引导,设计的大部分工作由EDA工具完成,设计者的工作主要转向高层次的规划和管理以及电路系统的结构与功能的可行性分析。
图2.3VHDL语言程序设计技术的体系结构
VHDL语言具有强大的功能。
学习语言,要从基本元素、语法、常用电路的描述方法人手,逐步掌握层次设计的思想。
2、VHDL的基本元素
实体(entity):
实体是一个设计的外部界面。
VHDL表达的所有设计均与实体有关,实体是设计中最基本的模块,实体的通信点是端口,端口必须定义信号名、模式和信号类型。
结构体(architecture):
所有能被仿真的实体都有一个结构体描述,结构体描述实体的行为功能,包含两类语句:
并行语句和顺序语句。
子程序:
由过程和函数组成过程能返回多个变量,函数只能有一个返回值。
程序包(package):
是一种重要的设计再利用机制,为了使一组数据类型、常量和子程序对多个设计实体都成为可见的,VHDL提供了该结构。
库(library):
用来存放预编译的程序包,预定义的程序包可以在其它设计中被调用,因此,库也是一种重要的设计再利用机制。
运算符(operator):
VHDL为构造表达式提供了算术、关系、逻辑、连接4种运算符。
进程(process):
用于实现顺序发生的算法流程,进程只能包含在结构体中,一个结构体可以包含多个进程语句,进程语句包含3部分:
敏感表、进程语句、结束语句。
数据对象:
包括信号、常量、变量、文件4类。
元件(component):
是对VHDL模块的说明,使它能在其它模块中被调用。
3、VHDL的常用语句
VHDL语句分并行语句和顺序语句,并行语句体现了硬件电路执行的并发性,主要包括:
布尔方程、条件赋值语句with-selcet-when、when-else及元件例化语句等,存在于结构体之中、进程之外。
顺序语句与其它高级语言类似,是对算法流程的描述,包括if-then-else、case-when等语句,必须包含在进程内。
4、常用电路的VHDL描述
利用VHDL设计数字系统,必须熟练掌握一些基本电路的描述方法。
①组合电路的描述:
如逻辑门、编码器、译码器、选择器、加法器、乘法器等;
②寄存器的描述掌握书写同步/异步电路的方法,描述时钟上升沿、敏感表、同步复位、异步复位、同步置数等功能;
③锁存器的描述:
掌握D型锁存器、SR型锁存器等的描述方法;
④输出使能的描述:
VHDL没有直接表示的oe,所以需要掌握描述oe的方法;
⑤双向信号的描述:
理解双向模式的内外驱动源的差别,正确使用双向信号;
⑥三态缓冲器的描述:
掌握利用信号实现三态缓冲器的方法;
⑦计数器的描述:
掌握可控的二进制、BCD加/减计数器的描述方法;
⑧移位寄存器的描述:
掌握可控算术移位/逻辑移位及左移/右移的描述方法;
⑨状态机:
掌握状态机的设计思想及实现方法,理解状态编码对设计的面积、速度等方面的影响,能够自定义状态编码,能够熟练使用“一位有效编码”方式;
⑩RAM/ROM/FIFO的设计:
能够利用VHDL基本语法设计存储阵列,能够设计简单的读写驱动电路,掌握描述多时钟工作的方法;
2.2.3VHDL应用开发介绍
VHDL语言支持大规模复杂的数字系统设计,其核心思想是层次化设计。
VHDL语言对层次化设计的支持机制为:
库、程序包、可重用的元件及元件例化语句。
库是用来存放可编译的设计单元的地方,通过目录可查看或调用程序包、元件的介绍见前元件例化语句是高层设计调用低