毕业设计(论文)基于FPGA自动售货机控制器设计.doc

上传人:laozhun 文档编号:3979271 上传时间:2023-03-30 格式:DOC 页数:33 大小:472.50KB
返回 下载 相关 举报
毕业设计(论文)基于FPGA自动售货机控制器设计.doc_第1页
第1页 / 共33页
毕业设计(论文)基于FPGA自动售货机控制器设计.doc_第2页
第2页 / 共33页
毕业设计(论文)基于FPGA自动售货机控制器设计.doc_第3页
第3页 / 共33页
毕业设计(论文)基于FPGA自动售货机控制器设计.doc_第4页
第4页 / 共33页
毕业设计(论文)基于FPGA自动售货机控制器设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)基于FPGA自动售货机控制器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA自动售货机控制器设计.doc(33页珍藏版)》请在三一办公上搜索。

1、目 录第一章 前 言8第二章 EDA技术92.1 EDA定义92.1.1 系统级设计112.2.2 EDA技术的主要特征及常用软件13第三章 FPGA 概述173.1 FPGA简介173.1.1 FPGA工作原理和配置模式173.1.2 FPGA软、硬件仿真的相关介绍193.1.3 用FPGA嵌入式处理器实现您的构想20第四章 FPGA自动售货机系统设计和开发264.1 自动售货机主控制系统的组成和功能264.1.1自动售货机系统总体结构264.1.2 自动售货机系统工作原理274.2 主控制系统FPGA的软件设计及仿真294.2.1 软件结构294.2.2 投币模块功能仿真294.2.3 商

2、品选择模块功能仿真304.2.4 退币模块功能仿真304.2.5 价格比较模块功能仿真304.3 自动售货机控制系统的实现314.3.1 自动售货机功能描述及控制系统组成314.3.2 自动售货机控制功能的状态描述314.3.3 自动售货机功能控制模块的VHDL实现314.3.4 投币输入信号电路的设计与实现34结 论36致 谢37参考文献38摘 要本论文简要介绍了FPGA的应用与发展情况,Altera的开发软件MAX+PLUS II的功能、以及运用该软件平台进行数字电路设计和方法;阐述了VHDL语言的一些特点及语法结构;介绍了自动售货机系统的基本原理、系统组成和主要功能;并分析了用VHDL语

3、言开发自动售货机系统设计流程。该次设计利用Altera公司的开发软件MAX+PLUS II平台,采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在软件MAX+PLUS II平台上进行编译和电路仿真,最后生成目标文件下载到实验台内的FPGA芯片以实现系统,并在实验台上对设计进行验证。最终完成的自动售货机系统具有投币处理、商品选择、购货撤销、异常退币、计算机存货等主要功能,整个系统的开发体现了软件MAX+PLUS II软件平台上用VHDL设计数字控制系统的实用性。【关键词】EDA;FPGA;VHDL第一章 前 言 自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式

4、,同时自动售货机又被称为24小时营业的微型自助超市,它的销货领域非常广泛,是发达国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明发达程度的重要标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化城市环境,受到消费者的欢迎。 本论文系统地介绍了有关编程逻辑器件的基础知识以及相关软件的使用方法着重讲述了自动售货机的原理以及本次设计的思路和方法。第一章阐述了EDA技术的发展历史、基本特征以及Altera公司的一些器件、开发工具等。第二章简单介绍了FPGA的应用,现场可编程门阵列的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果,它允许电

5、路设计者利用基于计算机开发平台,经过设计输入、仿真、测试、和校验,直到达预期的效果。第三章介绍VHDL语言,其中主要介绍了VHDL语言的特点、优点,VHDL语言的基本程序结构、语法以及主要放的一些程序语句。第四章介绍了自动售货机的基本功能、外观及设计流程,同时也阐述自动售货机系统的设计实现,分析部分波形仿真结果并对设计的正确性进行验证。第二章 EDA技术2.1 EDA定义EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。ED

6、A技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软

7、件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于在综合器中已指定的目标器件系列。硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA

8、和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。制作PCB原理图设计设计元件符号库元件模型库自动布局布线PCB后分析系统设计系统实现系统仿真图2-1 电路级设计工作流程仿真通过后,根据原理图产生的电气连接网络表进行PCB板的自动布局布线。在制作 PCB板之前还可以进行后分析,包括热分析、噪声及窜扰分析、电磁兼容分析、可靠性分析等,并且可以将分析后的结果参数反标回电路图,进行第二次仿真,也称为后仿真,这一次仿真主要是检 验PCB板在实际工作环境中的可行性。 由此可

9、见,电路级的EDA技术使电子工程师在实际的电子系统产生之前,就可以全面地 了解系统的功能特性和物理特性,从而将开发过程中出现的缺陷消灭在设计阶段,不仅缩短了开发时间,也降低了开发成本。2.1.1 系统级设计 进入90年代以来,电子信息类产品的开发出现了两个明显的特点:一是产品的复杂程 度加深,二是产品的上市时限紧迫。然而电路级设计本质上是基于门级描述的单层次设计,设计的所有工作(包括设计输入,仿真和分析,设计修改等)都是在基本逻辑门这一层次上进行的,显然 这种设计方法不能适应新的形势,为此引入了一种高层次的电子设计方法,也称为系统级的设计方法。 高层次设计是一种概念驱动式设计,设计人员无须通过

10、门级原理图描述电路,而是 针对设计目标进行功能描述,由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的概念构思与方案上,一旦这些概念构思以高层次描述的形式输入计算机后,EDA系统就能以规则驱动 的方式自动完成整个设计。这样,新的概念得以迅速有效的成为产品,大大缩短了产品的研制周 期。不仅如此,高层次设计只是定义系统的行为特性,可以不涉及实现工艺,在厂家综合库的支持 下,利用综合优化工具可以将高层次描述转换成针对某种工艺优化的网表,工艺转化变得轻松容 易。具体的设计流程见图2-2。系统划分VHDL代码或图形方式输入编译器适配报告器件编程文件代码及功能仿真综合器适配后时序仿真适配前时序仿真

11、厂家综合库适配前时序仿真CPLD/FPGA实现ASIC实现适配器图2-2 系统级设计工作流程 高层次设计步骤如下:第一步: 按照自顶向下的设计方法进行系统划分。第二步: 输入VHDL代码,这是高层次设计中最为普遍的输入方式。此外,还可以采用图形输入 方式(框图,状态图等),这种输入方式具有直观、容易理解的优点。第三步:将以上的设计输入编译成标准的VHDL文件。对于大型设计,还要进行代码级的功能仿 真,主要是检验系统功能设计的正确性,因为对于大型设计,综合、适配要花费数小时,在综合前 对源代码仿真,就可以大大减少设计重复的次数和时间,一般情况下,可略去这一仿真步骤。第四步:利用综合器对VHDL源

12、代码进行综合优化处理,生成门级描述的网表文件,这是将高层次 描述转化为硬件电路的关键步骤。 综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的 厂家综合库支持下才能完成。综合后,可利用产生的网表文件进行适配前的时序仿真,仿真过程不 涉及具体器件的硬件特性,较为粗略。一般设计,这一仿真步骤也可略去。第五步:利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底 层器件配置、逻辑分割、逻辑优化和布局布线。适配完成后,产生多项设计结果:适配报告,包 括芯片内部资源利用情况,设计的布尔方程描述情况等;适配后的仿真模型;器件编程文件。 根据适配后的仿真模型

13、,可以进行适配后的时序仿真,因为已经得到器件的实际硬件特性(如时延 特性),所以仿真结果能比较精确地预期未来芯片的实际性能。如果仿真结果达不到设计要求,就 需要修改VHDL源代码或选择不同速度品质的器件,直至满足设计要求。第六步:将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中。 如果是大批量产品开发,通过更换相应的厂家综合库,可以很容易转由ASIC形式实现。 2.2.2 EDA技术的主要特征及常用软件EDA技术的主要特征 作为现代电子系统设计的主导技术,EDA具有几个明显特征:(1) 用软件设计的方法来设计硬件 硬件系统的转换是由有关的开发软件自动完成的,设计

14、输入可以是原理图VHDL语言,通过软件设计方式的测试,实现对特定功能硬件电路的设计,而硬件设计的修改工作也如同修改软件程序一样快捷方便,设计的整个过程几乎不涉及任何硬件,可操作性、产品互换性强。(2) 基于芯片的设计方法 EDA设计方法又称为基于芯片的设计方法,集成化程度更高,可实现片上系统集成,进行更加复杂的电路芯片化设计和专用集成电路设计,使产品体积小、功耗低、可靠性高;可在系统编程或现场编程,使器件编程、重构、修改简单便利,可实现在线升级;可进行各种仿真,开发周期短,设计成本低,设计灵活性高。(3) 自动化程度高 EDA技术根据设计输入文件,将电子产品从电路功能仿真、性能分析、优化设计到

15、结果测试的全过程在计算机上自动处理完成,自动生成目标系统,使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果,设计自动化程度高,减轻了设计人员的工作量,开发效率高。(4)自动进行产品直面设计 EDA技术根据设计输入文件(HDL或电路原理图),自动地进行逻辑编译、化简、综合、仿真、优化、布局、布线、适配以及下载编程以生成目标系统,即将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成。EDA的技术要点:(1) 可编程逻辑器件-PLD 数字逻辑器件的发展直接反映了从分立元件、中小规模标准芯片过渡到可编程逻辑器件的过程。ISP技术和HDP

16、LD器件使设计人员能够在实验室中方便地开发专用集成数字电路芯片ASIC。当前,国内外许多著名厂商均已开发出新一代ISP器件以及相应的开发软件(如Synario、EXPERT、Fundation、MAX+Plus2等)。(2) “自顶而下”的设计方法 10年前,电子设计的基本思路还是选择标准的集成电路“自底向上”(Bottom-Up)地构造出一个新的系统。这样的设计方法如同一砖一瓦建造楼房,不仅效率低、成本高而且容易出错,高层次的设计给我们提供了一种“自顶向下”(Top-Down)的全新设计方法,这种方法首先从系统入手,在顶层进行功能方框图的划分和结构设计,在方框图一级进行仿真、纠错,并用硬件描

17、述语言对高层的系统进行描述,在系统一级进行验证,然后用综合优化工具生成具体的门电路网表,其对应的物理实现级可以是印刷电路板或专用集成电路,由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工时的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。 数字的电路设计 20世纪90年代以来,电子信息类产品的开发明显出现两个特点:一是产品的复杂程度加深;二是产品的上市时限紧迫。随着计算机性价比的提高及可编程逻辑器件的出现,对传统的数字电子系统设计方法进行了解放性的革命,现代电子系统设计方法是设计师自己设计芯片来实现电子系统的功能,将传统的固件选用及

18、电路板设计工作放在芯片设计中进行。然而电路设计本质上是基于门级描述的单层次设计(主要以数字电路为主),设计的所有工作(包括设计输入、仿真和分析、设计修改等)都是在基本逻辑门这一层次上进行的,显然这种设计方法不能适应新的形势,为此引入一种高层次的电子设计方法,也称为系统的设计方法。数字电路设计性本身就是一种综合性的设计,其设计电路中一般包含不同类型的电路,在设计过程中,不可避免地存在许多错误和不足 如果直接按照这一设计的电路在电路板上进行安装、调试,其结果往往使电路调试费时费力,甚至会引起元器件和仪器设备损坏等问题,导致设计不能达到预期效果。应用EDA技术在仿真软件平台上设计数字电路,能帮助熟悉

19、和掌握最先进的电路设计方法和技能。在电子技术高速发展的今天,新器件、新电路不断涌现,而设计条件受经费等因素的制约,一般不能及时更新。采用软件仿真的方法,在计算机上虚拟一个先进测试仪器、元器件品种齐全的电子工作台,可进行验证性、测试性、设计性等实验的针对性训练,培养使用计算机及分析、应用和创新电路的能力。“以仿代实”, “以软代硬”应该成为当代设计发展的潮流之一。 EDA技术的常用软件:EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。 利用EDA工具,电子设计师可以从概念、

20、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。 EDA设计可分为系统级、电路级和物理实现级。 EDA工具层出不穷,目前进入我国并具有广泛影响的EDA

21、软件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。 第三章 FPGA 概述3.1 FPGA简介 FPGA是英文FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专

22、用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。3.1.1 FPGA工作原理和配置模式FPGA工作原理:FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中

23、试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。F

24、PGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA配置模式:FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需

25、要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。原理图:3.1.2 FPGA软、硬件仿真的相关介绍一软件仿真频率细化过程的分析与实现频率细化是在信号处理和模态分析中广泛应用的一种技术,它能够提高频率的分辨率,将选定的频率域上的特性曲线放大,从而使系统的频率特性能更清楚地显示出来,如图3-1所示: dB (b) f1 f m图3-1 频率细化示意图设系统的采样频率为fs,采样点数为NO,则频率分辨率为:ffs/NO从上式可以看出,要进行频率细化

26、,即提高频率分辨率,使f变小,有两种方法:增加采样点数NO和降低采样频率fs,这里只介绍降低采样频率的方法。这种方法主要是基于移频原理,如图3-2所示: -fs/2 -fp 0 fp -f fs/2 -fs/2/-fp -2ps -fp 0 fs/2/-fp图3-2 移频后频率刻度设想要移频部分的频率为fp,其角频率为p2fp,令f(t)exp(jpt)。时域信号x(t)与f(t)卷积后,则在频域上,该信号的fp频率就移到了原点处。信号频率移到低频后,经过低通滤波,就可以用低的采样频率进行采样,从而达到提高频率分辨率、频率细化的目的。具体过程如图3-2所示:3.1.3 用FPGA嵌入式处理器实

27、现您的构想 在采用数值处理技术创建嵌入式应用时,通常以整数或定点表示法来确保算术运算尽量简单,这一点至关重要。因其不仅有助于使成本和功耗降至最低,且还能尽可能地加速硬件部署。 FPGA 非常适用于执行定点运算,并能在逻辑或基于软件或硬件处理器的实施方案中创建高度并行的数据路径解决方案。Virtex-5 FPGA 产品系列中 FXT 系列的最新硬件处理器 Xilinx PowerPC 440 可提供超标量功能,让用户能够对器件编程,使其以高达 550 MHz 的时钟速率并行执行一个或两个定点运算。 尽管用户能通过对器件进行编程来执行大多数采用整数或定点算术的运算,但通常须重新运算并插入比例运算以

28、确保计算结果足够精确。对于复杂运算而言,这不仅耗时,而且还会导致程序变为专用型且不可重用。理想的替代方法是采用标准浮点表示法来提供一种适用于多个应用的高动态范围。这样人们就无需修改算法即可获得适用于任何特定应用或操作环境的定点实施方案,也无需为随后的项目及应用而大范围地修改代码。 虽然赛灵思(Xilinx)为基于 IBM 浮点性能库的 PowerPC 440 处理器提供了一种行之有效的仿真浮点解决方案,但处理器内核仍需占用数十个周期来执行每条运算。而采用浮点运算单元 (FPU) 形式的浮点运算硬件加速功能可缩短该运算周期。Virtex-5 FXT 系列中的 PowerPC 440 处理器提供了

29、有效接口,能够将赛灵思软 FPU 等硬件加速器连接至该处理器内核。该方案可通过结构协处理器总线 (FCB) 将 PowerPC 440 处理器上的 128 位辅助处理器单元 (APU) 接口桥接至协处理器。使用该类协处理器(赛灵思 LogiCORE IP Virtex-5 APU-FPU),Virtex-5 FXT 用户可以选择软件仿真或者专用软逻辑 FPU 在 PowerPC 上自如地实现浮点运算。图 3-3 显示了通过 FCB 将 PowerPC 440 处理器连接至 Virtex-5 APU-FPU 的典型实施方案。图3-3,包含 APU-FPU 内核的嵌入式处理器系统关于 PowerP

30、C 440 FPU赛灵思针对嵌入在 Virtex-5 FXT FPGA 中的 PowerPC 440 处理器专门设计了 APU-FPU。FPU 通过 APU 接口与处理器的紧密结合可让浮点运算单元直接执行原生 PowerPC 浮点指令,这相对软件仿真而言,速度一般可提高 6 倍。 除少数情况外,赛灵思 PowerPC FPU 一般符合单精度和双精度浮点运算的 IEEE-754 标准。赛灵思提供了为 2:1和 3:1 APU-FPU 时钟速率而优化的变量,使 PowerPC 处理器能够以最高频率运行。自发性指令发送不仅会隐藏运算时延,而且还会减少每条指令的周期。此外,这些优化的实施方案可充分发挥

31、器件的高性能 DSP 特性,以缩短运算符时延并减少逻辑计数与功耗。赛灵思在其嵌入式开发套件 (EDK) 中支持 APU-FPU 流。图3-4,Virtex-5 FXT PowerPC 440 浮点协处理器架构图 3-4 为 FPU 架构的整体框架图。APU-FPU 由执行单元、寄存器文件、总线接口以及所有管理浮点指令执行情况所必需的控制逻辑组成。 FPU 含有两个变量。双精度变量可执行除 PowerPC ISA 图形子集(fsel、fres 和 frsqrte)以外的所有浮点指令,其中也包括单精度变量执行的指令。这意味着您能使用带各种商用编译器和操作系统的 FPU赛灵思编译器支持的 APU-F

32、PU 单精度变量使用的资源较少。当 FPU 被占用时,双精度操作将通过软件仿真来执行。软 FPU 比软件仿真法平均快 6 倍。单精度 FPU 通常比双精度快 13%。将 APU-FPU 连接至 PowerPC 440有两种方法可将 APU-FPU 连接至 PowerPC 440 处理器:1、利用赛灵思 Platform Studio 设计工具中的 Base System Builder (BSB) 向导;2、将 APU-FPU 单元添加至当前设计方案中即可。您首先需利用 BSB 向导确定目标板和所期望的处理器(PowerPC 或 MicroBlaze),然后通过一系列复选框和下拉菜单选择设计中

33、所需的 IP。借助 BSB 向导,能够轻松快速地组装并测试基础处理器系统。您只需勾选您要选择的 FPU 框,即可实现APU-FPU 连接(见图 3-5 顶部)。该向导可实现一个经过优化能以处理器时钟三分之一速率运行的双精度 FPU。您也可定制更高时钟速率的FPU 和单精度 FPU。 图3-5,通过 BSB 向导(顶部)以及系统组装视图将 FPU 添加至现有 PowerPC 处理器设计方案中如果不想使用向导,您也可通过另一种方法来实现,即按照系统组装视图拖动 IP Catalog 下的 APU- FPU IP,然后对 FPU 进行配置即可。图 3-5 底部图片显示了 IP Catalog (见左

34、下方)和系统组装视图中新添加的 FPU。右击 FPU 并选择 Configure IP,然后您便可选取想要的精度(单精度或双精度)并确定您希望该 FPU 是针对低时延(三分之一时钟速率)或是高速率(二分之一时钟速率)而进行优化;最后将 FPU 连接至 FCB 并将 FPU/FCB 时钟链接至适当的时钟(通常是二分之一或三分之一处理器时钟速率。) Virtex-5 APU-FPU 提供免费的 Platform Studio,支持浮点定制。您可分别采用约 2500 个或约 4900 个 LUT 寄存器对来实现单或双精度 FPU,也可在无需添加 FPGA 逻辑的情况下运行具有浮点仿真功能的软件应用。

35、 性能水平可预先选择:选择适当的 FPU,或实施设计并确定软件仿真是否满足要求;如未满足,可升级软 FPU。 显而易见,如果能从软件仿真中获得足够的性能,则无需 FPU。但如果需要更高的性能,可使用 APU-FPU。如果应用需要 FPU 或正在使用与之配套的编译器,可选择双精度 FPU。如果应用仅需单精度运算且您正在使用赛灵思 GNU 编译器,则单精度 FPU 会降低逻辑要求。谨记,如果选择双精度 FPU,它将执行单精度运算,然后将运算结果进行四舍五入,以提供单精度 FPU 的精确度。典型性能增益:当您在评估是需要硬 FPU 还是软 FPU 时,应首先确定代码的浮点密集程度。代码通常包括不同浮

36、点、整数、存储器以及逻辑运算等。因此,尽管基准可作为潜在性能提升的指示器,但运行您自己的代码会更好。表 1 列出了 400 MHz Virtex-5 FXT PowerPC 440 处理器、软件仿真以及与该处理器相连的 200 MHz 双精度 APU-FPU 的基准数据,透过该表可清晰了解 APU-FPU 执行浮点密集代代码的性能表现。 表中所列数据是赛灵思用于评估处理器浮点单元性能的一组基准数据的子集。平均而言,软 FPU 可比软件仿真快6倍,而单精度 FPU 可比双精度 FPU 快13倍。 在浮点占主导地位的情况下,可通过优化代码来提高软 FPU 的性能,以充分利用 FPU 管线。FIR

37、滤波器基准就是一例很好的潜在性能增益。未经优化的代码是典型的“教科书代码”,虽便于阅读,但大多数 FPU 执行时往往效率低下。然而,通过实施循环展开、最大限度地延长 FPU 寄存器中常数的保留时间,以及交叉存取其他代码与浮点指令,设计方案的性能可得到显著提高。在本例中,优化滤波器代码比未经优化的代码快 3.8 倍,比软件仿真快 30 倍。总之,Virtex-5 FXT 借助其 PowerPC 440 处理器可为嵌入式应用提供众多选择。您可在有无 FPU 的情况下执行设计方案、用性能较高的 FPU来替代软件仿真技术、为 Virtex-5 FXT 量身定制处理能力资源。第四章 FPGA自动售货机系

38、统设计和开发4.1 自动售货机主控制系统的组成和功能 随着科技的发展及人们生活水平的提高,自动售货机市场的发展呈现出多元化及个性化的需求,通过自动售货机进行自助购物正逐渐成为市民的一种新的消费时尚和追求高品质生活的需要。传统的自动售货机控制系统采用单片机作为控制核心,不仅需要在输入输出接口上做大量的工作,而且系统的抗干扰性也比较差。FPGA具有可靠性高、编程简单、维护方便等优点,已在工业控制领域得到广泛应用。本文详细介绍了一种用FPGA实现的自动售货机主控制系统的硬件设计和软件设计,并进行了软件仿真和硬件设计实验,实验表明该控制系统是可行。4.1.1自动售货机系统总体结构 自动售货机作为一种完

39、全独立的售货设备,集接收货币、顾客自选商品、售出商品和找零等功能于一体。具体的说,一个完整的售货机控制系统一般应包含如图所示的设备和模块。 (1)人机交互设备:通过显示设备和输入设备实现,顾客通过使用键盘输入需要购买的商品编号,根据液晶显示器给出的提示信息进行投币、取商品、接受找零等操作;系统管理人员可以使用键盘在显示器所提供的可视化界面下对售货机的各种运行参数进行设置; (2)(Multi-Drop Bus / Internal Communication Protocol)通信接口3:协议是欧洲售货机制造者协会制定的一套用于协调自动售货机的主控制器(VMC)与多个外设之间的通信协议,用于协

40、调自动售货机的主控制器(VMC)与多个外设之间的通信,所有外围设备与主控制器之间的通信式都一致。由于其简洁明了、功能强大、可扩展性强,并且对外设数目没有限制,成为理想的自动售货系统内部总线协议; (3)主控制器:主要包括对各种外设获取的信息加以处理,对于售货机的整个销售流程进行控制,运行执行机构正常工作所需的各种算法等; (4)信息采集模块:主控制器所需采集的信息主要包括自动售货机箱体内的温度,售出的货物是否正常掉落到顾客取货区,电机运行有无异常状态。 (5)货道电机驱动模块:主要指商品通道的驱动电机阵列。根据输入的所选商品的通道号,主控板驱动相应的小型直流电机转动,将货物推送至顾客取货区。作

41、为自动售货机的最终执行机构,电机驱动控制部分的性能以及可靠稳定性直接影响商品销售,是自动售货机控制器设计中非常重要的一部分。 4.1.2 自动售货机系统工作原理根据系统控制要求,编写了控制系统的程序总框图,如图2所示。 从投币口送入货币,然后经过传感器采集数据、识别器判别人民币的真伪并判别面值。识别器把信息数据传给通信模块。通信模块与售货机的主控系统通信,主控系统显示面值,启动售货机的面板键,显示出哪个货道有货,哪个货道已售完,并等待顾客按键选择商品。顾客选择商品后,售货机自动把商品送出,等待顾客取走。显示余额,如果金额足够多,顾客可以选择找币或继续买商品;如果款额不足,售货机经过延时予以退币

42、。退币分2种情况:一种是由纸币识别器完成退纸币,另一种是由硬币的通信模块完成退硬币。系统复零,完成售货。4.2 主控制系统FPGA的软件设计及仿真4.2.1 软件结构 根据控制系统的工作原理及硬件设计,该系统的软件采用模块化的设计方法,其主要由初始化、投币过程、价格比较过程、商品选择、显示、退币和报警等模块组成,其中一些主要模块的功能如下: (1)投币模块:在投币过程中,每投下一枚硬币,经钱币识别传感器把信号传递给PLC,该模块将完成辨别硬币的真伪和判定具体的币值,可以进行钱币的叠加,并显示出相应的币值,余额也增加同样的币值; (2)价格比较模块:投币完成后,系统对余额中钱币数据和可以购买的饮

43、料价格进行区间比较:若大于或等于商品的价格,则可以购买该商品,指示灯亮; (3)商品选择模块:此模块可以实现用户对商品的选择购买; (4)退币模块:系统可在顾客购买完商品后退回余币。在退币过程中,最主要的是要完成退币的运算过程,运算结果放在数据寄存器,根据结果起动退币电动机工作,输出相应的钱币,退币结束时还要给程序中使用到的某些寄存器重新赋零。4.2.2 投币模块功能仿真 系统可以接受4种钱币的投入,RESET可以复位,系统内部的计数器将对投入的钱币总数,进行自加计数,仿真波形如图3所示。4.2.3 商品选择模块功能仿真 系统允许顾客对4种物品进行选择。同时系统内部计数器将进行自减计数,内部变

44、量还会自动记录顾客购买的各种物品数目并由LTEM_OUT端口输出顾客购买物品的种类仿真波形如图4所示。4.2.4 退币模块功能仿真系统可以找出2种钱币。当顾客键入END_BY后,系统开始找钱,原则为从大往小找,在找钱的同时,不允许顾客投入钱币。系统内部的计数器将进行自减计数,直至到零为止。同时,系统将记录找出各种钱币的数目并输出找出钱币面值。4.2.5 价格比较模块功能仿真投币完成后,系统会将在余额中钱币数据和可以购买的饮料价格进行区间比较:若大于或等于商品的价格,则可以购买该商品,指示灯亮。 本文介绍了一种基于FPGA的自动售货机主控制器的整体设计方案和工作原理,详细阐述了主控制模块FPGA

45、的软件设计与实现及主要功能模块仿真,在以FPGA为核心的自动售货机控制系统中,当需要增加可选择的商品数量时,该控制系统的硬件只需要增加相应的输入信号,其硬件的原有接线不需要改变,软件则可以根据不同的控制要求进行修改,具有较强的适应性,因此在自动售货机行业中得到广泛的应用。经实践,整个系统工作稳定可靠。4.3 自动售货机控制系统的实现 4.3.1 自动售货机功能描述及控制系统组成 设计一个自动售货机的逻辑控制电路。它有两个投币口分别为一元投币口和五角投币口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动给出一瓶矿泉水,投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币。4.

46、3.2 自动售货机控制功能的状态描述 取投币信号为输入逻辑变量,投入一枚一元硬币时用A=1表示,未投入时A=0。投入一枚五角硬币用B=1表示,未投入时B=0。给出矿泉水和找钱为两个输出变量,分别用Z和Y表示,给出矿泉水时Z=1,不给时Z=0,找回一枚五角硬币时Y=1,不找时Y=0。 根据上面的功能描述,可用三个状态S0,S1,S2表示,未投币前的初始状态为S0,投入五角硬币以后为S1,投入一元硬币后(包括投入一枚一元硬币和投入两枚五角硬币的情况)为S2,再投入一枚五角硬币后电路返回S0,同时输出为Z=1,Y=0;如果投入的是一枚一元硬币,则电路也应能返回S0,同时输出为Z=1,Y=1。4.3.3 自动售货机功能控制模块的VHDL实现 用VHDL语言中的CASE_WHEN结构和IF_THEN_ELSE语句实现控制功能,源程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY shj_ctrl IS PORT(A,B:IN STD_LOGIC; clk:IN STD_LOGIC;Z,Y:OUT STD_LOGIC); END shj_ctrlARCHI

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号