基于fpga的饭店点菜系统的设计和实现.docx
- 文档编号:5217119
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:29
- 大小:836.59KB
基于fpga的饭店点菜系统的设计和实现.docx
《基于fpga的饭店点菜系统的设计和实现.docx》由会员分享,可在线阅读,更多相关《基于fpga的饭店点菜系统的设计和实现.docx(29页珍藏版)》请在冰豆网上搜索。
基于fpga的饭店点菜系统的设计和实现
毕业设计(论文)
题目:
基于FPGA的饭店点菜系统的设计和实现
专业:
信息工程
学生姓名:
班级学号:
指导教师:
指导单位:
摘要
餐饮行业是一个具有悠久历史的行业,随着人们步入信息时代的脚步加快,餐饮企业的运作管理模式也在不断的完善更新。
以前依靠人工处理顾客垂询、服务落单送到厨房,厨房依照菜单存根制作菜肴,最后由服务员将菜肴递送给顾客的传统模式,随着餐厅的规模及顾客的流量日益增大,经常会给酒店的经营与管理者带来了很多的烦恼和不必要的经济损失。
从而有些企业发掘了电子系统的优点。
本文设计了一种基于可编程逻辑阵列(FPGA)饭店点菜系统的数字化方案。
该系统包括三个模块:
键盘模块,控制模块,显示模块。
系统基于QUARTUSII软件平台,采用硬件描述语言VHDL进行仿真。
仿真结果显示,在系统使用时状态稳定,所以该点菜系统能够满足用户使用时的信息实时性和准确性的要求。
关键词:
饭店点菜系统;现场可编程门阵列(FPGA);硬件描述语言(VHDL)
ABSTRACT
Thecateringindustryisanindustrywithalonghistory,withthepaceandpeopleenteredtheinformationage,theoperationandmanagementmodeofthefoodandbeveragecompaniesarealsoconstantlyimprovetheupdate.Relyonmanualhandlingofcustomerinquiries,serviceplacinganordertothekitchen,kitchendishesfollowthemenustubtomakedishesthewaiterwilldelivertothetraditionalmodelofthecustomer,increasingthesizeoftherestaurantandthecustomerflow,andoftengivehoteloperatorsandmanagersbroughtalotoftroubleandunnecessaryeconomicloss.Sosomecompaniesexploretheadvantagesofelectronicsystems.BasedontheEDAchipdesignisbecomingthemainstreamofelectronicsystemdesign.Thispaperstressesbasedonaprogrammablelogicarray(FPGA)RestaurantSelectfoodsystemofdigitalprograms.Thesystemincludesthreemodules:
thekeyboardmodule,controlmoduleanddisplaymodule.AnditisbasedontheQUARTUSIIsoftwareplatform,usinghardwaredescriptionlanguageVHDLtosimulate.Simulationresultsshowthatthestablestateinthesystemwhenitwasused.SotherestaurantSelectfoodsystemcanmeettherequirementsoftheuser’sinformationreal-timeandaccuracy.
Keywords:
RestaurantSelectfoodsystem;FPGA;VHDL
第一章绪论
1.1课题背景
1.1.1我国饭店点菜系统的实际意义
“民以食为天“这话一直是我国饭店老板的创业灵感的来源,而随着社会的发展传统的服务模式(目前在饭店用餐时,顾客都是通过人工方式,即当顾客点菜时,服务员向顾客推荐各种菜品,并记录顾客所点的菜,然后再将菜单送至总服务台。
使用这种传统的方式)已不再符合消费者的需求,怎样在饭店顾客比较多的时候,服务员也能够应接不暇,是每个老板们所追求的利润最大的梦想,人工有时还会忙中出错,这样不仅耽误了顾客的时间,还影响了顾客对饭店的印象。
如果采用电子点菜系统,客人点菜的时候就免去了人工点菜的烦琐,而且能实时地了解菜的口味和价格,方便了顾客的消费,同时也减轻了餐馆的服务压力。
这不仅为提高饭店的服务质量和扩大知名度奠定了基础,更顺应了当前信息时代的服务行业科技。
1.1.2饭店点菜系统的研究要求
随着数字化的普及,各行各业都以高速发展的电子产品取代了以前陈旧的工作模式,例如:
以IC卡式收取水电费取代了以往员工上门收取;用基于FPGA的表决器取代了人工唱票的环节,节约的大量的时间与人力资源;老百姓能够用微波炉取代传统烹饪方式等等。
这一次次的改变是否可以应用在饭店行业呢!
为了克服传统点菜的弊端,从而设计出一系列的电子产品,目前在国内外大中型酒店通常使用的电子点菜系统有两种,一种是在WindowsCE嵌入式操作系统下设计的PDA掌上点菜机,另一种是触摸屏式点菜POS机,这两种点菜机无线传输的距离长,功能强,但是要与性能很高的PC作为服务器才能得以实施,成本较高。
基于现场可编门阵列(FPGA)硬件设计电子点菜系统是一种全新的设计思想,用户可根据需要对FPGA进行重新编程,在最短时间内,以较低的成本设计出自己的专用集成电路。
1.2课题研究内容
本文对基于FPGA设计饭店电子点菜系统进行了设计。
按照模块化的设计思想结合题目的要求来设计题目中所要求的电路模块,采用VHDL语言设计出键盘输入模块、显示模块、控制模块及信息调整模块。
然后进行模拟编译,生成电路元件,然后使用QUARTUSII软件综合原理图和VHDL程序做出仿真图,经过仿真确认整个系统准确可靠。
这种方式功能齐全并且成本较小,必将成为下一代高性能低成本电子点菜系统设计的一个新趋势。
1.3论文结构安排
第一章:
绪论说明课题研究的社会价值与意义,阐述了课题研究方法与思路。
第二章:
对现场可编程门阵列(FPGA)进行了描述,从它不同的角度,详细阐述了使用过程的意义,还有本文所使用的软件QUARTUSⅡ说明以及所用语言(VHDL)的描述。
第三章:
是对论文总体设计方案的讲解,从设计思路到实际操作的过程。
第四章:
详细的描述了饭店点菜系统单元设计的具体方案与过程。
第五章:
通过QUARTUSⅡ对各模块进行仿真。
第二章相关软件及技术介绍
现场可编程门阵列(FPGA,FieldProgrammableGateArray)的出现是超大规模集成电路(VLSI)技术和计算机软件仿真技术发展的结果。
FPGA器件集成度高,体积小,具有通过用户编程实现专门应用的功能。
它允许电路设计者利用基于计算机的开发平台,经过设计输入,仿真,测试和校验,直到达到预期效果。
目前市场上提供各种类型的FPGA芯片,包括系统级的芯片,使得采用FPGA器件来设计系统,可以大大缩短研制周期,减少资金投入。
而且采用FPGA器件还使的原来的电路板级产品可能集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对投入进行在线修改,使得FPGA器件成为研制开发的理想器件,特别适合于产品样机开发和小批量生产。
2.1FPGA简介
2.1.1FPGA的结构
FPGA按逻辑功能块的大小可分为细粒度FPGA和粗粒度FPGA;从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构;根据FPGA内部连线的结构不同,可分为分段互联型和连续互联型;根据编程方式FPGA可分为一次编程和可重复编程两种。
FPGA一般可由三种可编程电路和一个用于存放编程数据的SRAM组成。
这三种可编程电路是:
可编程逻辑块(CLB),输入/输出模块(IOB)和互联资源(IR)。
各种FPGA在结构上的差异主要反映在可编程逻辑块CLB上,常见的结构主要有3种类型,即查找表结构,多路开关结构和多级与非门结构。
2.1.2FPGA的设计
EDA出现以前,人们用传统的硬件电路设计方法来设计系统,即自上而下的设计方法,其主要步骤是:
根据系统对硬件的要求.详细编制技术规格,并画出系统控制流程图,然后根据技术规格书和系统控制流程图,对系统的功能进行分化合理的划分功能模块,并画出系统功能框图,接着就是进行各功能模块的细化和电路设计,各个模块的功能调试完以后,将各个模块的硬件电路连接起来,再进行调试,最后就完成整个系统的硬件电路设计。
这种传统的电路设计方法的系统仿真和调试要在系统的硬件完成后才能进行。
因此存在的问题只有在后期才能发现,一旦考虑不周,就要重新设计。
使得设计的费用和周期大大的增加。
另外,由于设计文件是电原理图,如果设计的系统比较复杂,那么其原理图就要成千上万张,给存档、阅读和修改都带来了不便。
这种自上而下的设计方法的主要特点是:
1、电路设计更趋合理
硬件设计人员在设计硬件电路时使用PLD器件,就可以自行设计所需的专用功能模块,而无需受通用元器件的限制,从而使电路设计更趋合理,其体积和功耗也大为缩小。
2、采用系统早期仿真
在自上而下的设计过程中,每级都进行仿真。
从而可以在系统设计的早期发现设计存在的问题,这样就可以大大缩短系统设计的周期并且降低费用。
3、降低了硬件电路设计难度
使用传统的硬件电路设计方法时,往往要求设计人员设计电路前写出该电路的逻辑表达式和真值表,然后进行化简等,这些工作是相当困难和烦杂的,特别是在设计复杂系统时工作量大,也容易出错。
FPGA使用HDL语言(硬件描述语言)避免编写逻辑表达式或真值表,使设计难度大幅度下降,从而也缩短了设计周期。
4、主要设计文件使用VHDL语言编写的源程序
EDA设计方法中主要使用的是HDL语言,并可以将VHDL语言编写的源程序转换成电路原理图形式输出。
用VHDL语言编写的源程序作为归档文件有很多好处:
一是资料量小,便于保存;二是可继承性好;三是阅读方便。
可编程逻辑器件的设计流程一般为设计准备、设计输入、功能仿真、设计处理、时序仿真、器件编程和测试等七个步骤。
2.1.3FPGA的应用设计流程
FPGA和CPLD器件的设计一般可以分为设计输入、设计实现和编程三个设计步骤,及相应的功能仿真、时序仿真和测试三个验证过程,如图2.1所示:
图2.1大规模可编程逻辑器件的设计流程
2.1.4设计实现
从设计输入文件到熔丝图文件(CPLD)或位流文件(FPGA)的编译过程,称为设计实现。
设计实现是器件设计的核心环节,由计算机软件自动完成。
设计者只能设置“设计实现策略”等参数来控制设计实现过程。
设计实现通过以下几个相关的任务完成:
1、优化(Optimization)。
2、合并(Merging)。
3、映射(Mapping)。
4、布局(Placement)。
5、布线(Routiing)。
6、生成编程数据文件(JEDDC或BitstreamGeneration)。
2.1.5器件编程
同“编程”相同的概念是“下载”和“配置”,即将编程数据放到具体的可编程器件中,有时又把编程器件经过编程的功能称器件的逻辑组态。
器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。
普通的CPLD器件和OTP的FPGA需要一种编程专用设备(即编程器)完成器件编程,基于SRAM的FPGA可以由PROM或微处理器配置,如果使用PROM配置,PROM也需要使用编程器。
在系统可编程的器件,即ISP器件,如ISPLSI不需要编程器。
2.2QUARTUSⅡ简介
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等乘积项器件的VHDL语言的理解。
AlteraQuartusII设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。
它是单芯片可编辑系统(SOPC)设计的综合环境。
QuartusII软件拥有FPGA和CPLD设计的所有阶段的解决方案。
QuartusII软件允许在设计流程的每个阶使用QuartusII图形用户界面、EDA工具界面或命令行界面。
可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同的选项。
图2.2QuartusII设计的流程图
QuartusII设计的流程图如图2.2所示,可以使用QuartusII软件完成设计流程的所有阶段。
它是完整且易用的独特解决方案,其设计流程主要包含设计输入、综合、布局布线、仿真、时序分析、编程和配置。
QuartusII支持多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
2.3VHDL硬件语言介绍
2.3.1硬件描述语言VHDL的特点
1985年在美国国防部的支持下正式推出了超高速集成电路硬件描述语言(VHDL),它是目前世界上标准化程度最高的一种硬件描述语言。
它源于美国国防部提出的超高速集成电路计划,最初的目的是为了承担国防部获得集成电路厂家之间建立一个统一的设计数据和文档交换格式。
由于美国国防部是财力集中、范围广泛的特殊用户,因此它的要求很快得到了响应。
IEEE于1987年将VHDL采纳为硬件描述语言标准IEEE1076。
VHDL是一种全方位的硬件描述语言,包括从系统到电路的所有设计层次。
在描述风格方面,VHDL支持结构、数据流和行为3种描述形式的混合描述。
行为描述以过程语句来表达,数据流描述是寄存器传输级(RTL级)语言的扩展,因此VHDL几乎覆盖了以往各种描述语言的功能,整个自顶向下和自底向上的电路设计过程都可以用VHDL来完成。
VHDL除了作为一种计算机语言应具备的特征,与软件编程语言比较,还有以下的特点:
1、数据类型丰富
VHDL不仅有整数、布尔数、字符、字符串等数据类型外,还有位型(Bit)、位矢量型(BitVector)、时间型(Time)等数据类型。
位型、位矢量型分别是电路信号连线或总线状态的数字抽象,时间型用于表达电路的延迟和定时。
VHDL中的这些数据类型具有鲜明的物理意义,因此VHDL是强类型语言,表达式中操作数必须与操作的数据类型一致,否则为语法错误,除非有合法的强制类型转换。
除了以上所提的标准数据类型外,VHDL也允许设计者自己定义数据类型,自己定义的数据类型可以使标准数据类型复合而成的枚举、数组、或纪录(Record)。
2、层次结构性
VHDL把一个数字系统当成一组模块来描述,每一个模块具有与其它模块的接口和模块内容的描述。
VHDL把它们分别放在不同的单元中:
实体(Entity)与构造体(Architecture)。
实体定义了模块被调用时所需要的信息,包括输入输出信号接口与有关参数。
构造体描述模块内部的结构和行为状态,这种分开描述有助于层次化的设计的方法。
3、串行性与并行性
软件编程语言一般是串行,不能表现并行行为。
VHDL构造体是一个电路模块的行为结构描述,它由一系列的并发语句组成,这些语句在仿真时是并行运行的,它们可以分为两类:
进程性语句和元件调用语句。
进程性语句包括进程、信号赋值和过程调用。
并发信号赋值语句和并发过程调用语句是相应进程的缩小,因此它们本质上也是进程。
4、支持结构性描述和行为描述
对同一电路,VHDL支持多种描述方法。
元件调用是非进程性的并发语句,用来表达各子模块的相互连接。
进程内包含串行语句,它可以像普通的程序那样描述模块的行为特征,这是设计者集中注意模块的功能,而不是具体实现结构,因此它更为抽象。
一般VHDL设计中同时采用结构描述和行为描述,一部分用行为描述,另一部分用结构描述。
设计人员可以灵活地运用两种不同的设计风格。
如图2.3所示:
图2.3“自顶向下”与“自底向上”设计方法简图
在“自顶向下”的设计中,首先需要进行行为设计,要确定该电子系统或VLSI芯片的功能、性能机能需要的芯片面积和成本等。
接着进行结构设计,根据该电子系统和芯片的特点,将其分解为接口清晰、相互关系明确、尽可能简单的子系统,得到总体结构。
这个结构可能包括有算术运算单元、控制单元、数据通道、各种算法状态机等。
下一步是把结构转换成逻辑图,即进行逻辑设计,在这一步中,希望尽可能采用有规则的结构来实现利用经过考验的逻辑单元或模块。
接着进行电路设计,逻辑图将进一步转换成电路图,在很多的情况下,这时需进行硬件仿真,以最终确定逻辑设计的正确性。
最后是进行版图设计,即将电路图转换成版图。
对于“自底向上”的设计,一般是在系统划分和分解的基础上先进行单元设计,在单元的精心设计后逐步向上进行功能设计,然后再进行子系统的设计,最后完成系统的总设计。
2.3.2VHDL基本结构简介
VHDL设计描述包括一个实体和一个结构体,一个VHDL源文件模块主要包括程序包、实体、结构体和配置4个部分,下面分别加以介绍。
1、程序包(package)
程序包是一个可任选的设计单元,用于把共享的定义放置其中,在此例中,它应该放在USE子句前,设计人员把一些常用的设计源代码放在一个自己定义的库中,这个建立的库,可以在别的程序中利用程序包的功能共享。
2、实体(entity)
设计实体是VHDL中的基本单元和最重要的抽象。
它可以代表整个系统、一块电路板、一个芯片或一个门电路。
它可以代表像微处理器那样复杂的电路,也可以代表像单个逻辑门那样的电路,对于设计实体可以代表什么几乎没有限制。
在VHDL层次化设计中引用低层次的设计实体,就好像结构图中调用基本符号并把它们连接起来。
实体中可以有一个或多个输入、输出端口(port)的定义,为了表示信息通过端口时的流动方向,VHDL提供了以下端口模式:
①IN流入实体;
②OUT流出实体,被说明为OUT模式的端口不允许读入;
③INOUT双向端口,既可以流入,又可流出;
④BUFFER也是双向端口,但限定端口只能有一个元。
3、结构体(architecture)
结构体是实体的实际描述。
如果把实体定为结构图中的功能块符号,则结构体描述该功能的内部情形,结构体中包含着并行语句和顺序语句,允许一个实体有多个结构体。
在某一特定的情况下,该实体到底和哪一个结构体“绑定”在一起,可以使用配置说明语句(configurationdeclaration)来指定。
结构体分为两部分,说明部分和描述部分。
结构体的说明部分时关键字architecture和begin之间的区域,设计者可以在这里说明一些局限于该结构体内部的对象。
描述部分是关键字begin和end之间的区域,行为描述、结构描述都在这里进行。
4、配置(configuration)
大型设计一般采用层次化的设计方法,高层次设计实体需要将低层次实体作为元件加以利用,这就要用到配置制定或配置说明,配置用于把例化元件和相应的实体,结构体“绑定”起来,配置说明为大型设计提供配置管理手段。
第三章总体设计方案
由于本点菜系统是针对中小型餐饮企业设计开发的,因此该系统设计主要突出了操作设备成本低廉,安装简易,数据传输快捷,用户操作方便,客户查询界面清晰,最终消费过程明了等应用特点,为餐饮企业解决劳动力密集、管理过程繁杂、易出现跑冒滴漏等问题,并杜绝由此引起的不良后果;同时,针对餐饮企业的规模和开放式点菜特点,要求该系统在容量、稳定性、严密性等方面有良好的表现,实现从点菜、出菜、加菜、撤菜到结账的全过程自动化。
其工作过程是:
餐厅服务员引导顾客到餐台就座,服务员根据顾客要求通过键盘输入完成点菜或由顾客自己完成点菜,点菜后通过终端显示设备为顾客显示菜品价钱确认。
3.1饭店点菜系统的设计要求
设计要求:
采用电子菜谱,客人点菜的时候,基本不需要服务员的陪伴,而且能实时地了解菜的特色,且对已点过的菜的数量和价钱一目了然,方便了顾客的消费,同时也减轻了餐馆的服务压力。
具体要求:
(1)基于可编程逻辑阵列(FPGA)设计饭店点菜系统;
(2)按照模块化的设计思想,采用硬件描述语言VHDL实现键盘模块、控制模块、显示模块等;(3)仿真环境为Altera公司的QuartusII,完成功能仿真,并对所作设计进行全面的分析。
3.2系统组成框图
饭店点菜系统首先是为了解决人工点菜的弊端而设计的,它就要求:
餐厅服务员引导顾客到餐台就座,服务员根据顾客要求通过键盘输入完成点菜或由顾客自己完成点菜,点菜后通过终端显示设备为顾客显示菜品价钱确认。
整体结构如图3.1所示:
图3.1系统结构图
顾客可以通过数字键盘选择自己的菜肴,这也能够在控制器的功能下在LED上显示出来,顾客能够看到菜价与数量等信息。
3.2.1键盘输入部分
键盘是由数字键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 fpga 饭店 点菜 系统 设计 实现