VHDL设计FPGA数字系统:计算器_第1页
VHDL设计FPGA数字系统:计算器_第2页
VHDL设计FPGA数字系统:计算器_第3页
VHDL设计FPGA数字系统:计算器_第4页
VHDL设计FPGA数字系统:计算器_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连海事大学装订线毕 业 论 文二一四年六月VHDL设计FPGA数字系统:计算器专业班级: 通信工程10-3班 姓 名: 马哈得 指导老师: 严 飞 信息科学技术学院摘要本文针对FPGA的计算器数字系统的设计,进行了软件硬件的仿真与实现。实现了计算器控制系统的最基本的加减法功能设计。本设计所研究的数字系统是由四个不同的模块完成的,包括键盘输入模块、译码模块、计算主控制模块以及数码管显示模块。当键盘输入信号时,依次通过这几个模块,完成数据的运算及显示。其中计算主控制模块完成加减运算,是系统核心模块。本设计利用EDA技术,用VHDL语言来编程实现四个模块的基本功能,在Quartus II软件中实现

2、模块的设计、编译、综合、优化、仿真直至生成器件之后下载到 FPGA目标芯片上。在ZY11EDA13BE实验系统中完成计算器控制系统的功能的实现,通过键盘等操作输入数值、运算符号,通过数码管及指示灯显示系统运行结果,从而可以更清晰的观察了计算器的运行情况。关键词:计算器;EDA;FPGA;QuartusIIABSTRACTThis article for FPGA of the calculator digital system design, conducted a software hardware Simulation and Realization. A calculator to ac

3、hieve the control system the most basic functions designs.This design studied Digital System is composed of added and subtracted of module to complete, including the keyboard input module, decoding module, calculate the main control module and a digital tube display module. When the keyboard input s

4、ignal passes through these modules, complete data display computing requirements. This calculation control system Math four computing module is the core.This design, with the aid of VHDL language to the programming four modules of the basic functions, is in Quartus II software realize the connection

5、 and function modules simulation, comprehensive optimization generation device until after the download to FPGA target chip. In the ZY11EDA13BE experimental system mid complete the calculator control function of the system the realization of, through the keyboard, etc. operation input numerical valu

6、e, computing symbols, through the digital pipe and indicator shows the operation of the system, and a clear view of the operation.Keywords: Calculator; EDA; FPGA; QuartusII;目录第一章绪论错误!未定义书签。1第一章绪论11.1计算器研究的背景和发展错误!未定义书签。11.1计算器研究的背景和发展11.2课题研究任务错误!未定义书签。21.2课题研究任务21.3文章小结错误!未定义书签。21.3文章小结2第二章项目基础错误!未

7、定义书签。3第二章项目基础32.1软件与硬件介绍错误!未定义书签。32.1软件与硬件介绍32.1.1EDA错误!未定义书签。32.1.1EDA32.1.2EDA的特点及发展错误!未定义书签。32.1.2EDA的特点及发展32.2Quartus II错误!未定义书签。42.2Quartus II42.2.1QUARTUS 软件的用户界面错误!未定义书签。42.2.1QUARTUS 软件的用户界面42.2.2Quartus的开发流程错误!未定义书签。52.2.2Quartus的开发流程52.3VHDL语言错误!未定义书签。6 2.3VHDL语言62.3.1VHDL发展现状错误!未定义书签。62.3

8、.1VHDL发展现状62.3.2VHDL程序结构错误!未定义书签。62.3.2VHDL程序结构62.3.3VHDL语言的特点错误!未定义书签。72.3.3VHDL语言的特点72.4FPGA错误!未定义书签。82.4FPGA82.4.1FPGA的概念错误!未定义书签。82.4.1FPGA的概念82.4.2FPGA的基本特点错误!未定义书签。82.4.2FPGA的基本特点82.5ZY11EDA13BE实验系统介绍错误!未定义书签。9 2.5ZY11EDA13BE实验系统介绍92.6本章小结错误!未定义书签。102.6本章小结10第三章计算器数字系统设计方案介绍错误!未定义书签。11第三章计算器数字

9、系统设计方案介绍113.1总体方案设计错误!未定义书签。113.1总体方案设计113.1.1计算器功能和要求错误!未定义书签。113.1.1计算器功能和要求113.1.2计算器设计流程图错误!未定义书签。123.1.2计算器设计流程图123.2系统设计框图错误!未定义书签。133.2系统设计框图133.3本章小结错误!未定义书签。143.3本章小结14第四章计算器系统主要模块设计错误!未定义书签。15第四章计算器系统主要模块设计154.1输入模块错误!未定义书签。154.1输入模块154.1.1键盘输入模块错误!未定义书签。154.1.1键盘输入模块154.1.2译码模块错误!未定义书签。15

10、4.1.2译码模块154.2计算器数字系统运算的实现错误!未定义书签。164.2计算器数字系统运算的实现164.2.1控制模块错误!未定义书签。164.2.1控制模块164.2.2加法器错误!未定义书签。164.2.2加法器17174.2.3减法器错误!未定义书签。174.2.3减法器18184.3显示模块错误!未定义书签。184.3显示模块19194.4计算器控制系统的顶层原理图错误!未定义书签。204.4计算器控制系统的顶层原理图204.5本章小结错误!未定义书签。214.5本章小结21第五章硬件实现计算器系统主要模块设计错误!未定义书签。22第五章硬件实现计算器系统主要模块设计225.1

11、计算器数字系统管脚锁定错误!未定义书签。225.1计算器数字系统管脚锁定225.2实验箱结果展示错误!未定义书签。225.2实验箱结果展示225.3本章小结错误!未定义书签。255.3本章小结25第六章结束语错误!未定义书签。26 结束语26参考文献- 27 -27参考文献27致谢错误!未定义书签。29致谢29V VHDL设计FPGA数字系统:计算器VHDL设计FPGA数字系统:计算器第1章 绪论1.1 计算器研究的背景和发展 在算术运算中,想要节省时间,精力,并排除人为错误的愿望,可能与算术科学本身一样久远!此愿望使得各种以小物件计算的辅助工具的设计和制造得以实现,如卵石,起初零散使用,之后

12、放在控制板上用以计数,随后再以线串珠子并固定于框架上用以计数,名曰算盘。此工具可能由犹太人种族发明,并随后由印度人使用,并从那里向西传播至整个欧洲,向东至中国和日本1。如图1.1所示。算盘发展后,在1617年John Napier设计他的编号棒或 Napier骨之前,算盘都没有进一步的发展。骨制的多样形式出现,这些已与机械计算的开始相接近,但是直到1642年Blaise Pascal才给我们发明了感觉上与今天相似的机械式计算机。如图1.2所示。图1.1 中国算盘图1.2 1725年Lépine发明的一个机器和四个Pascal计算器现代电子计算器包含带按钮的键盘用以数字和算术功能。有的

13、计算器键盘甚至包含00和000键以便输入大数字。最基本的计算器对每个按键分配唯一一个数字或运算符。然而,在更复杂的计算器上,一个按钮可以执行多个功能。如今,计算器通常拥有液晶显示器作为数据的显示输出。在更多的细节上进行了技术改进。分数如1/3被显示为小数的近似值,例如四舍五入至0.33333333。8 计算器也有将号码存储到内存的能力。这种基本数据的存储速度非常快。更复杂的计算器能够存储变量表示的数据。这些变量也可以用于构造公式。某些计算器有扩展存储容量的能力,从而可以存储更多的数据;扩展的地址被称为数组索引2。 计算器的电源是电池,太阳能电池或电力(老机型)与一个开关或按钮接通。有些型号甚至

14、没有关闭按钮,但它们提供了一些方法来关闭电源,例如,长时间没有操作、覆盖太阳能电池板,或关闭它们的盖子。1.2课题研究任务本实验计算器采用VHDL语言来设计实用加减法计算器。在了altera公司的QuartusAltera公司的Quartus II 软件平台上进行编程、编译、综合优化、仿真,最后下载到FPGA目标芯片上,在ZY11EDA13BE实验系统实现计算器系统的功能。通过外接键盘输入操作数和运算符,通过数码管和LED指示灯来显示操作数和运算结果。如此,达到运算目的,可以更清晰的观察计算器的运行情况。本次通过对加减法计算器数字系统的设计,为更复杂的计算器数字系统的实现提供基础。1.3 文章

15、小结本章介绍这几世纪以来的计算器发展,还有本次设计的研究任务,为后续的设计打下基础。第二章项目基础2.1 软件与硬件介绍2.1.1 EDA电子设计自动化(英语:Electronic design automation,缩写:EDA)即电子设计自动化技术,是利用计算机工作平台,从事电子系统和电路设计的一项技术3。EDA的广义定义范围包括:半导体工艺设计自动化、可编程器件设计自动化,电子系统设计自动化,印刷电路板设计自动化,仿真、测试、故障诊断自动化,形式验证自动化统称为EDA工程。随着集成电路规模的扩大、半导体技术的发展,电子设计自动化的重要性急剧增加。这些工具的使用者包括半导体器件制造中心的硬

16、件技术人员,他们的工作是操作半导体器件制造设备并管理整个工作车间。一些以设计为主要业务的公司,也会使用电子设计自动化软件来评估制造部门是否能够适应新的设计任务。电子设计自动化工具还被用来将设计的功能导入到类似现场可编程逻辑门阵列的半定制可程式逻辑装置,或者生产全定制的特殊应用积体电路。硬件描述语言 HDL (Hardware Description Language ) 是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计4。2.1.2 EDA的特点及发展现在人类社会已经步入了信息时代,各种各

17、样的信息技术在我们的生活当中发挥着越来越重要的作用。信息时代的高速发展离不开电子设计技术的发展和相关电子产品的进步,而他们的核心就是EDA技术。 EDA代表了当今电子设计技术的最新发展方向,是在电子CAD的技术基础上发展起来的计算机软件系统,以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理技术及智能化技术的最新成果,来进行电子产品的自动设计,主要能辅助进行IC设计,电子电路设计和PCB设计三方面的设计工作。从70年代开始,EDA依次经历了CAD、CAE和ESDA三个阶段。有了EDA工具,电子产品从电路的设计、性能的分析到PCB设计的整个过程都可以在计算机上自动处理完成。这主要是因为

18、EDA技术利用计算机,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,完成对于特定目标的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用的集成芯片。电子设计人员根据“自顶向下”的设计方法,从系统设计着手,在顶层进行功能方框图的划分和结构设计,用硬件描述语言对高层次的系统进行描述,然后用综合优化工具生成具体门电路的网络表。这种方式大大解放了设计人员,他们的工作仅是利用软件的方式来完成对系统硬件功能的实现,这有利于早期发现设计上的错误,同时还减少了逻辑功能仿真的工作量,提高了设计的效率。EDA技术是电子设计领域的一

19、场革命,已经取得了日新月异的发展,每年都有新的EDA工具问世,使得EDA软件的功能日益完善,他们被应用到我们生产生活中的方方面面,如机械、电子、通信、航空航天、医疗、生物、军事等各个领域。在进入21世纪的今天,EDA技术必将朝着使用普及化、应用广泛化、功能多样化和成本低廉化的方向发展。7由于相关的其他领域的技术取得不断的发展,如半导体技术、集成技术和计算机技术等等,电子系统的设计方法和设计手段发生了很大的变化,使得EDA软件可以不断地更新和增加。电子技术已经广泛应用到了EDA领域,各个学科之间的交叉越来越多,电子领域各学科应用更加广泛,使得EDA软件的功能更加强大,传统的固定功能集成块的设计方

20、法正逐步地退出历史的舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。2.2 Quartus II2.2.1 QUARTUS 软件的用户界面(1)标题栏标题栏中显示当前工程的路径和工程名。(2)菜单栏菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成。(3)工具栏工具栏中包含了常用命令的快捷图标。(4)资源管理窗口资源管理窗口用于显示当前工程中所有相关的资源文件。(5)工程工作区当Quartus实现不同的功能时,此

21、区域将打开对应的操作窗口,显示不同的内容,进行不同的操作,如器件设置、定时约束设置、编译报告等均显示在此窗口中。(6)编译状态显示窗口此窗口主要显示模块综合、布局布线过程及时间。(7)信息显示窗口该窗口主要显示模块综合、布局布线过程中的信息,如编译中出现的警告、错误等,同时给出警告和错误的具体原因。2.2.2Quartus的开发流程Altera公司的Quartus软件提供了一个综合开发环境。Quartus集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(器件 (PLD)设计)设计,综合,布局和布线,验证和仿真。Quartus设计软件根据设计者需要提供了一个完整的多平台开发环境,

22、它包含整个FPGA和CPLD设计阶段的解决方案。图2.1 说明了Quartus软件的开发流程。设计输入综合调试布局、布线时序逼近时序分析仿真编程、配置图2.1 Quartus软件的开发流程由流程图可知,利用Quartus软件进行开发可以分为以下四个步骤:(1) 输入设计文件,常用的输入文件格式有以下几种:原理图(.bdf、.gdf、.bsf) VHDL(.vhd), Verilog HDL(.v),AHDL(.tdf));(2) 编译设计文件;(3) 仿真设计文件;(4) 编程下载设计文件。(5)(6)(7)(8)2.3 VHDL语言2.3.1 VHDL发展现状VHDL,全称超高速集成电路硬件

23、描述语言(VHSIC hardware description language),在基于复杂可程式逻辑装置( CPLD(CPLD) 、现场可编程逻辑门阵列( FPGA(FPGA) 和特殊应用积体电路 (ASIC) 的数字系统设计中有着广泛的应用。VHDL语言诞生于1983年,1987年被美国国防部和IEEE确定为标准的硬件描述语言。自从IEEE发布了VHDL的第一个标准版本IEEE 1076-1987后,各大EDA公司都先后推出了自己支援VHDL的EDA工具。VHDL在电子设计行业得到了广泛的认同。此后IEEE又先后发布了IEEE 1076-1993和IEEE 1076-2000版本。VHD

24、L语言翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。VHDL主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后

25、,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。72.3.2 VHDL程序结构注:VHDL不区分大小写;libraryieee;-库声明,声明工程中用到的库,这里声明的是IEEE库use ieee.std_logic_1164.all;-包声明,声明工程中用到的包,这里声明的是IEEE的STD_LOGIC_1164包实体entity它负责宣告一个器件的外部输入与输出,下面的程序是一个简单的范例(尖括号内为必填,方括号内为可选):ENTITY 实体名 IS4 GENERIC(常数名:数据类型:设定值 ; 常数名:数据类型:设定值 ); PORT(端

26、口名:端口模式数据类型; 端口名:端口模式数据类型); END ENTITY 实体名;结构体architecture它负责实现内部的硬体电路。ARCHITECTURE 结构体名; 说明语句 BEGIN 功能描述语句 END ARCHITECTURE 结构体名;配置Configuration配置用来描述各种层与层的连接关系以及实体与结构体之间的关系,此处不赘述。2.3.3 VHDL语言的特点VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点。支持从系统级到逻辑门级电路所有层次的设计,适合于复杂逻辑电路和系统的设计。作为一种高级硬件描述语言,VHDL语言有如下特点6:(1)与其

27、他的硬件描述语言相比,VHDL具有更强的行为描述能力。强大的行为描述能力是避开具体的器件结构、从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能检查系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能的可行性做出判断。(3)用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的实现芯片)。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生地错误,降低了开发成本。利用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成

28、一个更小、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路中获得设计信息,返回去更新修改VHDL设计描述,使之更加完善。(4)VHDL对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必顾及最终设计的目标器件是什么,而进行独立的设计。正因为VHDL得硬件描述与具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现目标器件有广阔的选择范围。(5)由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻而易举地改变设计的规模和结构。(6)VHDL本身的生命周期长。因为VHDL得硬件描述与工艺无关,不会因工艺变

29、化而使描述过时。而与工艺技术有关的参数可通过VHDL提供的属性加以描述,当生产工艺改变时,只需要修改相应程序中的属性参数即可。2.4 FPGA 2.4.1FPGA的概念5 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configur

30、able Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。2.4.2FPGA的基本特点(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。(2)FPGA可做其它全定制或半定制ASIC电路的测试样片。(3)FPGA内部有丰富的触发器和IO引脚。(5)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。(6)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。(7)FPGA编程多样,可反复使用。它是由存放在片内RAM中的程序来设置其工作状态的,因此,工

31、作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。(8)FPGA的使用非常灵活。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。(9)可以在FPGA中设计完全并行的算法处理方案,非常快速。(10)目前的FPGA设计一般采用Top-down(自顶向下)的

32、设计方法。先将系统划分为各个功能子模块,在系统级层次上进行行为描述,再对这些子模块进一步进行行为描述。2.5 ZY11EDA13BE实验系统介绍10(1) ZY11EDA13BE实验系统特点采用主板A基本实验系统+适配板B(扩展板)+扩展板C(适配板)的结构,配置灵活,可扩展性强。主板是一个标准配置系统,是一个最简 EDA工具系统,包含了核心芯片A(EP1K30QC208),在主板系统基础上扩展了不同系统,比如主板+单片机+扩展板构成单片机系统,以及主板+扩展CPLD/FPGA等多重系统。另外实验系统还有所有I/O口开放,数字EDA与模拟EDA混合实验与开发,编程下载通用性强,良好的混合电压(

33、MV)兼容功能,以及基于EDA技术的免连实验系统等特点。(2) ZY11EDA13BE实验系统主板组成通用编程模块、液晶显示模块、数码显示模块、A/D、D/A转换模块、LED显示模块、数字可调信号源、滤波模块、信号调节模块、逻辑笔模块、配置模块、模式选择模块、模拟信号源、4x4键盘模块、开关按键模块、电源模块、分立元件模块、喇叭模块、I/O口插孔、核心芯片A、适配板B插座、适配板C插座、40PIN插座。本次设计使用了电源模块、键盘模块、数字可调信号源、数码管显示模块与LED显示模块。核心芯片A为CPLD/FPGA器件的通用下载电路模块,可以对ALTERARAaltera芯片、LATTICE、

34、XILINX等国际著名的PLD公司几乎所有ISP或现场配置的CPLD/FPGA进行编程下载,且能自动识别。本次设计目标FPGA芯片是:EP1K30QC208-2)2.2 ZY11EDA13BE实验系统2.3图altera芯片EP1K30QC208-22.6本章小结本章主要介绍了EDA的概念、本次设计使用到的软硬件工具,为后续的设计提供了基础。第3章计算器数字系统设计方案介绍3.1总体方案设计3.1.1计算器功能和要求设计一个多功能计算器,可以完成基本的计算。设计要求:(1)具备整型数据的算术(加法器、减法器)运算功能。依次输入第一个运算数、运算符(+ ,-)、第二个运算数,等号,然后输出结果。

35、结果可以作为下一个运算的第一运算数。按“A”清零。例如:输入:2 + 5=,输出:7 (2)实现单运算符表达式计算的功能。输入的操作数可以是多位整数。例如:输入:2 5 + 9 =,输出:34当2 5被输入,它通过键盘扫描模块获得,数字25被编码和发送到X寄存器。接着,当+键被按下时,“加法”指令也被编码并传送到标志寄存器。随后,第二个数字9被编码并传送到X寄存器。这时,第一个数字(25)“被推”到寄存器Y。当=键被按下时,从标志寄存器发送一个“消息”告诉控制模块:操作做的是“加法”。在X和Y寄存器中的数字,由控制模块送到加法模块,执行加法操作。答案:34被送回到X寄存器。同时,它转换成十进制

36、数(通常为二进制编码的十进制BCD码),在数码管上显示。存储显示是否按键?存储操作数存储并显示第一个操作数何种运算符?输入“=”?输入“=”?加法器运算减法器运算结束复位开始去抖译码存储显示存储并显示第二个操作数存储并显示第二个操作数存储并显示结果系统清零清零输入清零/运算符?输入运算符?YY3.1.2计算器设计流程图N YNY“+”“-”NN运算符图3.1 计算器设计流程图根据功能要求,计算器设计流程图如图3.1所示。3.2系统设计框图根据设计要求,将计算器系统分为四个模块(输入模块,控制模块,计算模块,显示模块),系统框图如图3.2所示。系统采用模块化设计理念使程序设计更加层次分明。输入信

37、号输入模块控制模块计算模块FPGA显示模块输出信号图3.2计算器的系统框图根据计算器设计要求,输入模块包括键盘输入,译码两部分,通过键盘输入操作数和运算符,完成去抖译码操作,存储到相应寄存器中,计算模块分为三个部分:控制电路分析处理数据,加法器执行加法操作,减法器执行减法操作,显示模块通过译码电路来完成数码管动态扫描显示输入的数值以及数值运算结果。计算器数字系统具体的结构框图如图3.3所示。0123456789C=+-译码电路控制电路加法器减法器译码图3.3 计算器数字系统结构框图3.3本章小结本章根据功能要求,将计算器分成各功能模块,并画出了计算器系统的设计框图,采用模块化设计理念使程序设计

38、更加层次分明。第4章计算器系统主要模块设计4.1输入模块输入模块包括两个部分:键盘输入和译码电路。4.1.1键盘输入模块这个键盘输入模块的作用是让计算器完成1、2、3、4、5、6、7、8、9、0等十个数字、“+”“-”运算符、清零信号的申请。键盘输入模块经VHDL编程后,编译完成,生成器件如图4.1所示。图4.1键盘输入模块键盘输入模块是通过将列扫描信号作为输入信号,控制行扫描信号输出,最后根据行与列的扫描结果进行译码。端口说明:clk1: 键盘扫描的时钟信号,kbrow3.0: 输入键值信号,kbcol3.0: 行扫描的键值信号,en: 输出使能信号,at3.0输出的: 8421BCD码,表

39、示的是按键0-F。4.1.2译码模块图4.2译码模块由于计算器的输入信号有不同的功能,因此采用译码模块来实现键盘输入信号转化成计算器控制器的数值、运算符选择信号。译码模块经VHDL编程后,编译完成,生成器件如图4.2所示。端口说明:d3.0是输入端口,与键盘输入模块的at3.0相连,用8421BCD码来表示0-9的十进制数,a31.0:第一个操作数,b31.0:第二个操作数,alu_op1.0:加减的选择,numchoose1.0:区分计算器显示的三种状态,分别为显示第一个操作数、显示第二个操作数、显示结果。4.2计算器数字系统运算的实现计算器的运算首先通过控制模块确定进行加法或减法运算,而后

40、由加法器或减法器完成运算。4.2.1 控制模块控制模块就是一个二选一数据选择器,通过译码模块送来的alu_op1.0信号,确定要进行加法操作还是减法操作。控制模块的模块图如图4.3所示。图4.3 控制模块a31.0:第一个操作数,b31.0:第二个操作数,alu_op1.0:加减的选择,ci:进位输入,s31.0: 发送到二选一的模块(mux),count:运算finish结束4.2.2加法器本次设计的加法器属于多位加法器的范畴,可按其进位方式的不同分为两类:串行进位加法器和并行进位加法器9。串行进位加法器是将多个一位全加器级联,低位全加器的进位输出送给相邻高位全加器作为进位输入,以此构成多位

41、加法器。这种设计思路简单明了且占用资源少,但运算速度较慢。并行进位方式则是在各位的加法环节之外,另外设有进位产生逻辑电路,各位的进位输入信号同时产生,从而各位可以同时完成全加运算,输出最后结果。并行进位方式具有较快的运算速度,但是相对于串行进位方式来说,却往往占用更多的资源。尤其是当运算位数增加的时候,相同位数的并行进位和串行进位加法器的资源占用差距也越来越大。因此,常常需要设计者在运算速度和资源占用量之间做出折中平衡。而经过实践证明,4位二进制并行进位加法器和串行级联加法器占用的资源几乎相同。因此,可以用两个4位二进制并行加法器级联构成8位二进制加法器,这是一种较为合理的选择,加法器的原理框

42、图如图4.4所示。图4.4 加法器的原理框图加法器要有被加数、加数和进位位的输入端口。设a端口为被加数,b端口为加数,ci为输入进位。此加法器还有两个输出端口,分别是加法运算的最终结果输出和进位位的输出,设s为结果的输出端口,co为进位的输出端口。当输入被加数与加数后,两个8位二进制数开始相加,之后,再与输入进位位相加,这样得到的最终结果就是加法器加法运算的最终结果。加法器通过VHDL编程,经Quartus编译后建立波形仿真文件。假设被加数a为0010000,即十进制数16,加数b为10110000,即十进制数176,仿真后所得结果如图4.5所示。16+176192,仿真结果正确,可知此加法器

43、设计有效。图4.5 加法器的仿真:16+1761924.2.3减法器减法的原理框图如图4.6所示。由图可以看出,此减法器共需要两个输入端口和一个输出端口。减法器的设计可以引用加法器,即通过对减数的求补,再与被减数相加得到最终的结果,所以需要增设一个进位位输入端口和进位位的输出端口。图4.6 减法器的原理框图可以设a端口为被减数,b端口为减数,ci为输入借位位,s为结果的输出端口,co为借位的输出端口。减法器的运算过程中首先要引用加法器,在此不再赘述。而且此减法器可以进行位数扩展,每增加一位需要多引用一个加法器。为使图形原理简洁,所以此处只列出四位减法器。减法器通过VHDL编程,经Quartus

44、编译后建立波形仿真文件,设置被减数a为1111,即十进制数15,设置减数b为1001,即十进制数9,仿真后所得结果如图4.7所示。15-96,仿真结果正确,可知此减法器设计有效。图4.7 减法器仿真15-964.3显示模块本模块用来显示计算器输入数值以及运算的结果。图4.8数码管显示模块显示部分是系统的输出部分,用于显示按键值及计算结果。数码管显示模块如图4.8所示。端口说明:CLK_seg:输入信号,动态扫描时钟信号,data31.0:输入信号,用8个8421BCD码表示8位数字,data_out7.0:输出的数码管七段码。seg_sel2.0:输出的数码管扫描信号。本次设计要用到8个数码管

45、,由于实验环境要求,必须使用动态扫描显示方式。由于数字系统的数据运算的操作数和运算结果都是BCD码,要由数码管显示出来,就要对BCD码进行译码。首先通过八选一数据选择器对要显示的8个数码管内容选择一个,而后进行译码,成为数码管显示信号(data_out7.0),数码管显示与BCD码对应关系如表4.1所示。数码管显示信号输出给数码管的h、g、f、e、d、c、b、a管脚。数码管的结构图如图4.9所示。图4.9数码管结构图同时,根据八选一数据选择器的时钟信号CLK_seg,确定数码管扫描信号(seg_sel2.0),送给实验系统的74138译码器的地址输入端。通过三位的数码管扫描信号,即译码器的地址

46、端,确定选择8个数码管中的一个进行显示。比如当数码管扫描信号(seg_sel2.0)为“000”时,选择1号数码管,其他的数码管处于等待状态,以此类推,当传输来的数码管扫描信号(seg_sel2.0)为“111”时,选择8号数码管。 由于数码管扫描信号转换的频率比较高,人眼具有余辉暂留效果,所以看起来数码管是同时显示,这就是数码管的动态显示。4.4 计算器控制系统的顶层原理图 将各功能模块连接在一起,形成计算器控制系统的顶层原理图,如图4.10所示。图4.10计算器控制系统的顶层原理图4.5本章小结本章主要描述了计算器系统的各模块功能,对其端口信息进行了详细的介绍,并描述分析了软件仿真结果,看

47、到了计算器加减运行的仿真结果。第5章硬件实现计算器系统主要模块设计5.1 计算器数字系统管脚锁定在对计算器各模块进行编译仿真后,确定目标芯片:EP1K30QC208-2芯片,而后锁管脚,如表5.1所示。表5.1计算器数字系统的管脚锁定实验箱按键显示管脚锁定功能按键0-9计算器数值输入0-9按键A清零键按键B等于号键按键C加号键按键D减号键按键E乘号键按键F除号键开关K1Pin45复位键GCK1(可调)Pin79时钟频率输入LED1灯Pin19加法数值溢出灯显示LED2灯Pin24减法出现负数灯显示锁定了管脚之后,再次编译,而后下载生成的网表文件。5.2 实验箱结果展示锁定了管脚之后,再次编译,而后下载生成的网表文件。下载完成后,按下时钟脉冲,经过多次试验选择合适的频率,计算器时钟在1024Hz 的频率比较合适。按照表4.1管脚锁定的对应键进行操作,完成计算器系统的基本功能。图5.1-5.6为实验系统实现计算器系统的硬件显示。加法运算,如:计算99999997+4=100000001图5.1 输入被加数99999997图5.2 输入加数4加法运算溢出指示灯图5.3 显示99999997+4的和:100000001减法运算,如:计算666-999=-333图5.4 输入被减数666图5.5 输入减

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论