EDA自动售货机设计.doc

上传人:小飞机 文档编号:3957007 上传时间:2023-03-28 格式:DOC 页数:21 大小:126KB
返回 下载 相关 举报
EDA自动售货机设计.doc_第1页
第1页 / 共21页
EDA自动售货机设计.doc_第2页
第2页 / 共21页
EDA自动售货机设计.doc_第3页
第3页 / 共21页
EDA自动售货机设计.doc_第4页
第4页 / 共21页
EDA自动售货机设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《EDA自动售货机设计.doc》由会员分享,可在线阅读,更多相关《EDA自动售货机设计.doc(21页珍藏版)》请在三一办公上搜索。

1、摘 要人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式,自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,是发达国家商品零售的一种主要方式。本设计要实现自动售货机的基本功能,如投币处理、商品选择、购货撤销、异常退币、计算存货等功能。采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,与一般的软件开发不同,VHDL编程

2、更需要熟悉一些底层的硬件知识,特别是数字逻辑电路的设计,因此VHDL编程的方法、思路都要更多的与硬件电路联系起来。完成系统各个功能模块的硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行验证。关键字:自动售货机;VHDL编程;编译;电路仿真AbstractHuman society has entered into a highly developed information community, social development of information on electronic products pr

3、ogress. the modern electronic products in the performance, the increased complexity of the same time, the price has been a downward trend, and the pace of product faster and faster, the realization of this progress is that of manufacturing technology and electronic design of technology.The coin is i

4、n the 70s of 20th century in japan, and develop a new and vending machine is called open 24 hours in the cafeteria, it is very widespread area of sale in retail in the developed countries, is a major way. this is designed to enable automatic machines in the basic functionality, such as a coin, choos

5、e and purchases of goods, money is retired, stock and functions. Complete system of the various functional modules of hardware, software design process in the compilation and circuit emulation, the target file download to the test stand in the chip to implement the system fpga, and on the stage of d

6、esign validation.Keywords: Vending machine;Vhdl programming;Compilation;Circuit simulation目 录引言- 1 -1 EDA技术简介- 2 -1.1 EDA技术的发展概况- 2 -1.2 EDA技术的基本特征- 2 -1.2.1“自顶向下”的设计方法- 2 -1.2.2高层次设计- 3 -2工作原理- 3 -2. 1任务概述- 3 -2.2系统设计- 3 -2.3系统组成方框图- 3 -2.4工作过程- 4 -3设计方案- 4 -3.1自动售货机VHDL程序- 4 -3.2各功能部件系统仿真图- 8 -结 论

7、- 11 -参考文献- 12 -引言自动售货机能够根据投入钱币自动收货的机器,是商业自动化的常用设备。不受时间、地点的限制,能节省人力物力。现代售货机的功能、结构根据商品的种类而异。货币装置时售货机的核心,其主要功能是确认投入币数及面值,计算余额,找兑余额。因此,自动售货机在商业,食品业越来越普及,更方便消费者购买自己所需的商品。使用方便、可靠、节省人力的自动售货机将在社会生活中成为一种趋势。新浪腾讯QQ空间搜狐网易谷歌凤 凰 网新浪微博新 华 网人 民 网中国移动中国政府网人 人 网开 心 网天涯社区汽车之家4399游戏太平洋电脑东方财富中华英才网中 彩 网赛 尔 号智联招聘携程旅行网CNT

8、V中国电信58同城淘 宝 网湖南卫视大众点评网工商银行凡客诚品中关村在线国美电器易 车 网去哪儿网京东商城苏宁易购新功能刷卡购物功能:在网络环境支持情况下,具备多种电子支付功能,如信用卡、储值卡、手机卡等刷卡消费。 多种货币识别功能:电控系统可以配合纸币、硬币识别器增加代金券功能,可以识别纸质和硬币类型的代金券。 数据下载功能:应用USB技术,使用一个优盘,就能轻松下载售货机的运营信息,然后使用PC机对下载的数据进行处理,便于运营商掌握不同地区、不同机器、不同商品的售卖情况。无线网络运营管理功能:将自动售货机当前运营的数据,包括系统状态、系统故障、料道故障、缺货情况、销售数据通过安装在自动售货

9、机上的GPRS模块无线传输到售货机网络服务器,运营人员可以在任何一台联网的电脑上掌握售货机的这些信息,实现自动售货机的大规模运营和网络化管理。 EDA技术是以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。利用EDA工具可以极大地提高设计效率。利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是EDA设计方法的一个重要特征。VHDL(Very High Speed Integrated Circuit Hardware Description La

10、nguage,超高速集成电路硬件描述语言)是硬件描述语言的一种,对系统硬件的描述功能很强而语法又比较简单。VHDL具有强大的行为描述能力,设计者可以不懂硬件的结构,只需集中精力进行电子系统的设计和性能优化;具有方便的逻辑仿真与调试功能,在设计早期就能查验系统的功能,方便地比较各种方案的可行性及其优劣。目前,VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域已经成为事实上通用硬件描述语言。本文采用VHDL作为工具描述了自动售货机控制模块的逻辑控制电路,并在FPGA上实现。该自动售货机能够根据投入硬币额度,按预定的要求在投入硬币大于规定值时送出饮料并找零。设计方案

11、本文所设计的简易自动售货机可销售矿泉水,假设每瓶1.5元。设两个投币孔,分别接收1元和5角两种硬币,两个输出口,分别输出购买的商品和找零。假设每次只能投入一枚1元或5角硬币,投入1元5角硬币后机器自动给出一瓶矿泉水;投入2元硬币后,在给出一瓶矿泉水的同时找回一枚5角的硬币。另外设置一复位按钮,当复位按钮按下时,自动售货机回到初始状态。开发软件选用功能强大的Altera公司的最新可编程逻辑器件开发工具Quartus II 8.0,实现芯片选用Altera公司FLEX10K系列的EPF10K10LC84-4;首先在计算机上完成程序设计、编译及时序仿真,然后将经过验证的设计文件下载到选择的可编程逻辑

12、器件中,并在电子设计自动化实验系统中进行硬件模拟和测试。状态机VHDL程序设计有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、简化次态方程等,而利用VHDL可以避免这些烦琐的过程,直接利用状态转换图进行状态机的描述。此外,与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。状态机有摩尔(Moore)型和米立(Mealy)型两种。Moore型状态机的输出信号只与当前状态有关;M

13、ealy型状态机的输出信号不仅与当前状态有关,还与输入信号有关。结合本文设计,由于输出仅与状态有关,选用了Moore型状态机设计自动售货机控制模块,状态转换图如图1所示。图1 自动售货机状态转换图1)状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。2)输入信号:取投币信号为输入逻辑变量,用两位的矢量state_inputs表示。state_inputs(0)表示投入1元硬币,state_inputs(1)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。3)输出信号:给出矿泉水和找零为两个输出变量,用两位

14、的矢量comb_outputs表示。comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱。输出信号为1表示输出货物或找零,输出信号为0表示不输出货物或不找零。EDA技术是以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。利用EDA工具可以极大地提高设计效率。利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是EDA设计方法的一个重要特征。VHDL(Very High Speed Integrated Circui

15、t Hardware Description Language,超高速集成电路硬件描述语言)是硬件描述语言的一种,对系统硬件的描述功能很强而语法又比较简单。VHDL具有强大的行为描述能力,设计者可以不懂硬件的结构,只需集中精力进行电子系统的设计和性能优化;具有方便的逻辑仿真与调试功能,在设计早期就能查验系统的功能,方便地比较各种方案的可行性及其优劣。目前,VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域已经成为事实上通用硬件描述语言。本文采用VHDL作为工具描述了自动售货机控制模块的逻辑控制电路,并在FPGA上实现。该自动售货机能够根据投入硬币额度,按预定的

16、要求在投入硬币大于规定值时送出饮料并找零。设计方案本文所设计的简易自动售货机可销售矿泉水,假设每瓶1.5元。设两个投币孔,分别接收1元和5角两种硬币,两个输出口,分别输出购买的商品和找零。假设每次只能投入一枚1元或5角硬币,投入1元5角硬币后机器自动给出一瓶矿泉水;投入2元硬币后,在给出一瓶矿泉水的同时找回一枚5角的硬币。另外设置一复位按钮,当复位按钮按下时,自动售货机回到初始状态。开发软件选用功能强大的Altera公司的最新可编程逻辑器件开发工具Quartus II 8.0,实现芯片选用Altera公司FLEX10K系列的EPF10K10LC84-4;首先在计算机上完成程序设计、编译及时序仿

17、真,然后将经过验证的设计文件下载到选择的可编程逻辑器件中,并在电子设计自动化实验系统中进行硬件模拟和测试。状态机VHDL程序设计有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、简化次态方程等,而利用VHDL可以避免这些烦琐的过程,直接利用状态转换图进行状态机的描述。此外,与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。状态机有摩尔(Moore)型和米立(Mealy)型两种

18、。Moore型状态机的输出信号只与当前状态有关;Mealy型状态机的输出信号不仅与当前状态有关,还与输入信号有关。结合本文设计,由于输出仅与状态有关,选用了Moore型状态机设计自动售货机控制模块,状态转换图如图1所示。图1 自动售货机状态转换图1)状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。2)输入信号:取投币信号为输入逻辑变量,用两位的矢量state_inputs表示。state_inputs(0)表示投入1元硬币,state_inputs(1)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。3

19、)输出信号:给出矿泉水和找零为两个输出变量,用两位的矢量comb_outputs表示。comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱。输出信号为1表示输出货物或找零,输出信号为0表示不输出货物或不找零。根据图1所示的状态转换图,用VHDL中的CASE_WHEN结构和IF_THEN_ELSE语句实现控制功能,源程序如下:LIBRARY IEEE; -库和程序包的使用说明USE IEEE.STD_LOGIC_1164.ALL;ENTITY sellmachine IS -实体定义PORT(clk,reset: IN std_logic;state_inpu

20、ts:IN std_logic_vector(0 TO 1);comb_outputs:OUT std_logic_vector(0 TO 1);END sellmachine;ARCHITECTURE state OF sellmachine IS -结构体TYPE fsm_st IS (S0,S1,S2,S3,S4); -状态枚举类型定义SIGNAL current_state,next_state:fsm_st; -状态信号的定义BEGINreg:PROCESS(reset,clk) -时序进程BEGINIF reset=1 THEN current_state=S0; -异步复位ELS

21、IF rising_edge(clk) THENcurrent_state=next_state; -状态转换END IF;END PROCESS;corn:PROCESS(current_state,state_inputs) -组合进程BEGINCASE current_state ISWHEN S0=comb_outputs=“00”; -现态S0IF state_inputs=“00” THEN next_state=S0; -输入不同,次态不同ELSIF state_inputs=“01” THEN next_state=S1;ELSIF state_inputs=“10” THEN

22、 next_state=S2;END IF;WHEN S1=comb_outputs=“00”; -现态S1IF state_inputs=“00” THEN next_state=S1; -输入不同,次态不同ELSIF state_inputs=“01” THEN next_state=S2;ELSIF state_inputs=“10” THEN next_state=S3;END IF;WHEN S2=comb_outputs=“00”; -现态S2IF state_inputs=“00” THEN next_state=S2; -输入不同,次态不同ELSIF state_inputs=

23、“01” THEN next_state=S3;ELSIF state_inputs=“10” THEN next_state=S4;END IF;WHEN S3=comb_outputs=“10”; -现态S3IF state_inputs=“00” THEN next_state=S0; -输入不同,次态不同ELSIF state_inputs=“01” THEN next_state=S1;ELSIF state_inputs=“10” THEN next_state=S2;END IF;WHEN S4=comb_outputs=“11”; -现态S4IF state_inputs=“0

24、0” THEN next_state=S0; -输入不同,次态不同ELSIF state_inputs=“01” THEN next_state=S1;ELSIF state_inputs=“10” THEN next_state=S2;END IF;END CASE;END PROCESS;END state;编译、仿真及FPGA实现在Altera公司的可编程逻辑器件集成开发平台Quartus II 8.0下完成程序的编辑、编译并进行时序仿真。1)编译:编译是EDA设计中的核心环节。软件将对设计输入文件进行逻辑化简、综合和优化, 适当地用一片或多片器件进行适配,最后产生编程用的编程文件。主要

25、包括设计编译和检查、逻辑优化和综合、适配和分割、布局和布线、生成编程数据文件等过程。自动售货机控制模块VHDL文件编译报告如图2所示。图2 编译报告报告中给出了进行编译的时间、采用的开发软件的版本、顶层设计实体名、选用器件的系列和型号、时序分析情况、占用资源情况及引脚使用情况等信息。2)时序仿真:编译后对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能及检查和消除竞争冒险是非常有必要的。仿真前,先利用波形编辑器建立波形文件,仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改设计逻辑。自动售货机控制模块仿真波形如图3所示。图3 时

26、序仿真波形3) FPGA实现:将编译阶段生成的编程数据文件通过Quartus II 下载到芯片EPF10K10LC84-4中,并在电子设计自动化实验系统中进行测试得到了正确的结果。基于EDA的自动售货机的控制系统1 EDA技术简介EDA(Electronic Design Automation),即电子设计自动化,是指利用计算机完成电子系统的设计。EDA技术是以计算机和微电子技术为先导的,汇集了计算机图形学、拓扑学、逻辑学、微电子工艺与结构学和计算数学等多种计算机应用学科最新成果的先进技术。EDA技术以计算机为工具,代替人完成数字系统的逻辑综合、布局布线和设计仿真等工作。设计人员只需要完成对系

27、统功能的描述,就可以由计算机软件进行处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率1。1.1 EDA技术的发展概况从20世纪60年代中期开始,人们就不断开发出各种计算机辅助设计工具来帮助设计人员进行电子系统的设计。电路理论和半导体工艺水平的提高,对EDA技术的发展起到了巨大的作用,使EDA作用范围从PCB板设计延伸到电子线路和集成电路设计,直至整个系统的设计,也使IC芯片系统应用、电路制作和整个电子生产过程都集成在一个环境之中。根据电子设计技术的发展特征,EDA技术发展大致分为三个阶段2。1.2 EDA技术的基本特征EDA技术代表了当今电子设计技术的最新发展方向,

28、它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件3。这样的设计方法被称为高层次的电子设计方法。下面介绍与EDA基本特征有关的几个概念。1.2.1“自顶向下”的设计方法10年前,电子设计的基本思路还是选择标准集成电路“自底向上”(Bottom-Up)地构 造出一个新的系统,这样的设计方法就如同一砖一瓦地建造金字塔,不仅效率低、成本高而且还容易出错。1.2.2高层次设计高层次设计提供了一种“自顶向下”(Top-Dow

29、n)的全新的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。2工作原理2. 1任务概述自动售货是20世纪70年代在日本、欧美发展起来的一种全新的消费方式,自动售货机又被称为24小时营业的微型自助超市,它的售货领域非常广泛,

30、是发达国家商品零售的一种主要方式。自动售货机作为一种先进的消费方式,已经成为城市现代文明发达程度的重要标志,其新颖、时尚的购物方式,24小时营业的特点给人们生活带来了便利,美化了城市环境,受到消费者的欢迎。但是在我国自动售货机的普及还不及发达国家,主要原因是我国EDA技术的应用水平长期落后于发达国家。本设计要实现自动售货机的基本功能,可以实现投币处理、计算投币总额、输出商品、输出找零的控制。2.2系统设计 设计一台自动售货机,要求具备货物信息存储、进程控制、硬币处理、余额计算、自动找零、状态显示等功能。该系统能完成货物信息存储,进程控制,硬币处理,余额计算,显示等功能。该系统可以管理四种货物,

31、每种的数量和单价在初始化时输入,在存储器中存储。用户可以用硬币进行购物,按键进行选择。系统根据用户输入的货币,判断钱币是否够,钱币足够则根据顾客的要求自动售货,钱币不足则给出提示并退出。系统自动的计算出应找钱币余额、库存数量并显示。2.3系统组成方框图系统按功能分为:分频模块;控制模块;译码模块;译码显示模块。系统组成方框图2.4工作过程首先由售货员把自动售货机里的每种商品的数量和单价通过set键和sel键置入到RAM里。然后顾客通过sel键对所需要购买的商品进行选择,选定以后通过get键进行购买,再按finish键取回找币,同时结束此次交易。按get键时,如果投的钱数等于或则大于所购买的商品

32、单价,则自动售货机会给出所购买的商品;如果投的钱数不够,自动售货机不做响应,继续等待顾客的下次操作。顾客的下次操作可以继续投币,直到钱数到达所要的商品单价进行购买;也可以直接按finish键退币。3设计方案3.1自动售货机VHDL程序-文件名:AUTO.vhd。-功能:硬币处理,余额计算,输出商品。-说明:显示的钱数coin的 以5角为单位。library ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity AUTO isport ( clk:i

33、n std_logic; -系统时钟set,get,sel,finish: in std_logic; -设定、买、选择、完成信号coin0,coin1: in std_logic; -5角硬币、1元硬币price,quantity :in std_logic_vector(3 downto 0); -价格、数量数据item0 , act:out std_logic_vector(3 downto 0); -显示、开关信号y0,y1 :out std_logic_vector(6 downto 0); -钱数、商品数量显示数据act10,act5 :out std_logic); -1元硬币、

34、5角硬币end AUTO;architecture behav of AUTO istype ram_type is array(3 downto 0)of std_logic_vector(7 downto 0); signal ram :ram_type; -定义RAMsignal item: std_logic_vector(1 downto 0); -商品种类signal coin: std_logic_vector(3 downto 0); -币数计数器signal pri,qua:std_logic_vector(3 downto 0); -商品单价、数量signal clk1:

35、std_logic; -控制系统的时钟信号begincom:process(set,clk1)variable quan:std_logic_vector(3 downto 0);begin if set=1 then ram(conv_integer(item)=price & quantity;act=0000; -把商品的单价、数量置入到RAMelsif clk1event and clk1=1 then act5=0; act10=0; if coin0=1 then if coin1001then coin=coin+1; -投入5角硬币,coin自加1 else coin=0000

36、; end if;elsif coin1=1 then if coin1001then coin=coin+2; -投入1元硬币,coin自加2 else coin=0000; end if; elsif sel=1 then item0000 and coin=pri then coin=coin-pri;quan:=quan-1; ram(conv_integer(item)=pri & quan; if item=00 then act=1000; -购买时,自动售货机对4种商品的操作 elsif item=01 then act=0100; elsif item=10 then act

37、=0010; elsif item=11 then act“0001” then act10=1;coin0000 then act5=1; coin=coin-1; else act5=0; act10=0; end if; elsif get=0 then act=0000; for i in 4 to 7 loop pri(i-4)=ram (conv_integer(item)(i); -商品单价的读取 end loop; for i in 0 to 3 loop quan(i):=ram(conv_integer(item)(i); -商品数量的读取 end loop; end if

38、; end if; qua=quan;end process com;m32:process(clk) -此进程完成对32Mhz的脉冲分频variable q: std_logic_vector( 24 downto 0);begin if clkevent and clk=1 then q:=q+1; end if; if q=111111111111111111111111 then clk1=1; else clk1item0item0item0item0y0y0y0y0y0y0y0y0y0y0y0y1y1y1y1y1y1y1y1y1y1y1=1111111; end case;end

39、process;end behav;3.2各功能部件系统仿真图通过软件仿真,得出如下仿真图:系统仿真全图系统仿真图-商品种类选择部分系统仿真图-投币部分系统仿真图-购买、找币结束交易部结 论这次设计完成了。再设计中遇到了种种问题,在自己查阅资料及老师的帮助下一一攻克了。在即将开设EDA专业课程时,为了能够更加熟练的掌握本课程,选择了这个学年设计。在设计过程中,通过自己的动手及查阅了相关资料,初步了解了VHDL语言的编程,并熟悉了相关软件的使用。本次学年设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。学习中会有更多的问题,有更多的难点,但也会有更多的收获。这次设计不仅提高了动手能力,更培养了自学,独立思考和处理问题的能力。为以后的学习和工作提供了帮助。由于我的水平有限,学年设计还并不十分完善,论文还有许多疏漏,恳请各位老师批评指正。参考文献1郑燕.基于VHDL语言与Quartus软件的可编程逻辑器件应用与开发.2007.2杨晓慧.基于FPGA的EDA/SOPC技术与VHDL.2007.

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号