基于VHDL的自动贩卖机控制系统

合集下载

基于VHDL +FPGA 的自动售货机控制模块的设计与实现

基于VHDL +FPGA 的自动售货机控制模块的设计与实现

基于VHDL +FPGA 的自动售货机控制模块的设计与实现EDA 技术是以计算机为工具完成数字系统的逻辑综合、布局布线和设计仿真等工作。

电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系统处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便。

利用EDA 工具可以极大地提高设计效率。

利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是EDA设计方法的一个重要特征。

VHDL(Very High Speed Integrated Circuit Hardware DescripTION Language,超高速集成电路硬件描述语言)是硬件描述语言的一种,对系统硬件的描述功能很强而语法又比较简单。

VHDL 具有强大的行为描述能力,设计者可以不懂硬件的结构,只需集中精力进行电子系统的设计和性能优化;具有方便的逻辑仿真与调试功能,在设计早期就能查验系统的功能,方便地比较各种方案的可行性及其优劣。

目前,VHDL 作为IEEE 的工业标准硬件描述语言,得到众多EDA 公司的支持,在电子工程领域已经成为事实上通用硬件描述语言。

本文采用VHDL 作为工具描述了自动售货机控制模块的逻辑控制电路,并在FPGA 上实现。

该自动售货机能够根据投入硬币额度,按预定的要求在投入硬币大于规定值时送出饮料并找零。

设计方案本文所设计的简易自动售货机可销售矿泉水,假设每瓶1.5 元。

设两个投币孔,分别接收1 元和5 角两种硬币,两个输出口,分别输出购买的商品和找零。

假设每次只能投入一枚1 元或5 角硬币,投入1 元5 角硬币后机器自动给出一瓶矿泉水;投入2 元硬币后,在给出一瓶矿泉水的同时找回一枚5 角的硬币。

基于VHDL的售货机

基于VHDL的售货机

基于VHDL的自动售货机的设计姓名班级:学号:指导老师:摘要:1)EDA:EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

2)售货机简介:一般的自动售货机由钱币装置、指示装置、贮藏售货装置等组成。

钱币装置是售货机的核心分选钱币的种类,计算金额。

如果投入的金额达到购买物品的数值即发出售货信号,并找出余钱。

指示装置用以指示顾客所选商品的品种。

3)现状及发展趋势:从自动售货机的发展趋势来看,它的出现是由于劳动密集型的产业构造向技术密集型社会转变的产物。

大量生产、大量消费以及消费模式和销售环境的变化,要求出现新的流通渠道;而相对的超市、百货购物中心等新的流通渠道的产生,人工费用也不断上升;再加上场地的局限性以及购物的便利性等这些因素的制约,无人自动售货机作为一种必须的机器便应运而生了。

从广义来讲投入硬币、纸币、信用卡等后便可以销售商品的机械,从狭义来讲就是自动销售商品的机械。

从供给的条件看,自动售货机可以充分补充人力资源的不足,适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上升的问题等各项优点。

基于VHDL语言自动售货机设计实验报告-绝对原创

基于VHDL语言自动售货机设计实验报告-绝对原创

自动售货机设计实验报告一设计题目:g) 自动售货机设计FPGA模块模拟自动售货机的工作过程,要求如下(1)售货机有两个进币孔,可以输入硬币和纸币,售货机有两个进币孔,一个是输入硬币,一个是输入纸币,硬币的识别范围是5角和1 元的硬币,纸币的识别范围是1 元、5 元,10 元,20元,50元,100元。

乘客可以连续多次投入钱币。

(2)顾客可以选择的商品种类有16种,价格分别为1-16元,顾客可以通过输入商品的编号来实现商品的选择。

即有一个小键盘(0-9按键)来完成,比如输入15时要先输入1,再输入5。

(3)顾客选择完商品后,可以选择需要的数量。

然后可以继续选择商品及其数量,每次可以选择最多三个商品。

然后显示出所需金额。

顾客此时可以投币,并且显示已经投币的总币值。

当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。

在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。

二程序代码:三程序实现功能:FPGA模块模拟自动售货机:(1)售货机有两个进币孔,分别输入硬币和纸币,硬币的识别范围是5角和1 元的硬币,纸币的识别范围是1 元、5 元,10 元,20元,50元,100元。

乘客可以连续多次投入钱币。

(2)顾客可以选择的商品种类有16种,价格分别为1-16元,顾客可以通过输入商品的编号来实现商品的选择。

(3)顾客选择完商品后,可以选择需要的数量。

然后可以继续选择商品及其数量,每次最多选择最种商品,每种商品最多购买三个。

然后显示出所需金额。

顾客此时可以投币,并且显示已经投币的总币值。

当投币值达到或超过所需币值后,售货机出货,并扣除所需金额,并找出多余金额。

在投币期间,顾客可以按取消键取消本次操作,钱币自动退出。

四程序功能模块分析:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;实体说明:entity sellor isport ( clk:in std_logic; --系统时钟sel,cancel,reset: in std_logic; --选择、取消、开始(用于进入初始状态)变量定义:coin: in std_logic_vector(1 downto 0); --5角硬币、1元硬币crash:in std_logic_vector(5 downto 0); --100元、50元、20元、10元、5元、一元纸币item: in std_logic_vector(3 downto 0); --16种商品quantity:in std_logic_vector(1 downto 0); --商品数量(一次最多购买3件)change_out :out std_logic_vector(10 downto 0); --找零item_out :out std_logic_vector(3 downto 0); --是否购买了商品(1表示有商品出来、0表示没有商品出来)change :out std_logic ); --是否有找零end sellor;结构体说明:architecture behave of sellor issignal price:std_logic_vector(7 downto 0);signal counter: std_logic_vector(10 downto 0); --币数计数器signal total_price:std_logic_vector(10 downto 0); --控制系统的时钟信号type state_type is (initial_state,item1_state,quantity_state,money_state,sell_state,change_state);signal state:state_type;signal temp:std_logic_vector(1 downto 0);signal quan:std_logic_vector(3 downto 0);begincom:process(reset,sel,clk)beginif (clk'event and clk='1')thenif reset='1' then state<=initial_state;temp<="00";quan<="0000";end if;case state iswhen initial_state=>item_out<="0000"; --出票口关闭change_out<="00000000000"; --找零口关闭total_price<="00000000000"; --票价总额记录清零counter<="00000000000";--投入钱币总额记录清零change<='0';state<=item1_state; 设定initial_state选择物品程序:when item1_state=>if temp<"11" thenelse state<=money_state;end if;when quantity_state=>if(cancel='1')then --按下“取消”按钮state<=initial_state;else 取消操作程序if quantity="00" thenitem_out<="0000";change<='0';change_out<="00000000000";state<=initial_state;else 当选择0个商品total_price<=total_price+price*quantity;temp<=temp+1;quan<=quan+quantity;if (sel='1') then state<=item1_state;elsestate<=money_state;end if;end if;end if;货币识别:when money_state=>if(cancel='1')then --按下“取消”按钮state<=initial_state;end if;case crash is --纸币识别end case;case coin is --硬币识别end case;if counter>=total_price thenstate<=sell_state;--系统进入出票状态end if;购物操作程序:when sell_state =>if(cancel='1')thenitem_out<="0000";change<='1';change_out<=counter; --按下“取消”按钮state<=initial_state;elseif counter>=total_price thenitem_out<=quan; --判断是否还有找零state<=change_state; --系统进入找零状态elseitem_out<="0000";state<=initial_state;end if;end if;when change_state=>if(cancel='1')thenitem_out<="0000";change<='1';change_out<=counter; --按下“取消”按钮state<=initial_state;elseif counter>total_price thenchange<='1';change_out<=counter-total_price;item_out<=quan;elsechange<='0';change_out<="00000000000";state<=initial_state;end if;end if;end case;end if;end process;end behave;五、仿真波形六、个人总结与感想:良好的沟通与分工是十分重要的,这对程序的实现和质量具有至关重要的作用。

基于VHDL的自动售货机设计50329

基于VHDL的自动售货机设计50329

北华大学电子系统综合实习报告学院 : 电气信息工程学院专业班级 : 通信工程姓名 : 闫梦迪学号 :指导老师 : 董胜实习时间 : 2015.11.30 — 12.11目录1.实习题目……………………………………………………………P32.实习目的……………………………………………………………P33.实习技术要求………………………………………………………P34.实现过程……………………………………………………………P35.功能及代码…………………………………………………………P56.仿真及硬件测试……………………………………………………P97.实习心得…………………………………………………………P128. 教师评语…………………………………………………………P14一.实习题目自动售货机设计二.实习目的通过本课题的研究,可以掌握电子控制系统的基本原理与其实现,通过对各个模块的编程及其仿真,对QuartusII软件的使用有所了解。

每个波形模块的VHDL实现加深了硬件描述语言的学习。

最终的顶层文件的调试,更是体现了综合知识的运用。

三.实习技术要求本设计要实现自动售货机的基本功能,如货物信息存储、商品选择、进程控制、硬币处理、余额计算、显示等功能。

利用软件QuartusII 平台,采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,与一般的软件开发不同,VHDL编程更需要熟悉一些底层的硬件知识,特别是数字逻辑电路的设计,因此VHDL编程的方法、思路都要更多的与硬件电路联系起来。

完成系统各个功能模块的硬件程序设计后,在软件平台上进行编译和电路仿真,最后生成的目标文件下载到实验台内的FPGA芯片以实现该系统,并在实验台上对设计进行验证。

四.实现过程1)、根据设计要求实现过程分两部分:a、面向客户端模块设计基于Quartus2软件环境下,应用VHEDL语言进行程序设计。

以clk输入端口进行商品选择,coin1输入端口做钱数输入,Finish输入端口做确认,进而完成商品购买。

基于VHDL的自动售货机的设计和实现论文

基于VHDL的自动售货机的设计和实现论文

《计算机组成原理》课程设计报告基于VHDL的自动售货机设计与实现课程设计任务书计算机与通信工程学院网络工程专业指导教师对学生在课程设计中的评价指导教师对课程设计的评定意见基于VHDL的自动售货机设计与实现摘要:本设计运用VHDL语言编写一个自动售货机的控制系统,该系统具有货物信息存储,进程控制,硬币处理,余额计算,显示等功能。

商品的种类、单价和数量在初始化时输入,然后存储。

可以识别的币种为硬币,五毛和一元的面额。

用户投入硬币,系统累计数量,然后对比物品的单价和数量,扣除价格,最后计算余额,可以找零。

设计没有考虑硬件的实现,只进行功能的相应仿真,性质为实验性质的课程设计。

关键词:VHDL、自动售货机、课程设计、MXAPLUSⅡ、系统仿真Abstract: This design use of VHDL language design a vending machine control system, the system have the functions to storagethe goods information, process control, coin handling, balance calculation, display and other functions. The type of goods, unit price and quantity in the initialization to be input, and then stored. Currency for the coins can be identified, fifty cents and one dollar denomination. User input coins, the system account sum, and then comparing the unit price and quantity of goods, net price, the final calculation of the balance, you can give change.Design did not consider the hardware implementation, only the corresponding functional simulation, experimental nature of the curriculum design.Keywords: VHDL, vending machines, curriculum design, MXAPLUS Ⅱ, system simulation目录1.引言 (7)1.1自动售货机系统概述 (7)1.2设计任务和主要容 (8)2.系统设计过程 (9)2.1自动售货机系统总体框图 (9)2.2系统功能模块 (9)2.3程序源代码 (11)3.系统仿真 (15)3.1系统仿真全图 (15)3.2系统分步仿真图 (16)4.总结 (20)参考文献 (21)1 引言随着现在生活节奏越来越快,自动售货机的出现大大方便了人们的日常生活。

自动售货机控制系统的VHDL实现(1)

自动售货机控制系统的VHDL实现(1)

目录一、概述 (1)二、自动售货机控制系统的实现 (2)1、自动售货机功能描述及控制系统组成 (2)2、自动售货机控制功能的状态描述 (2)3、自动售货机功能控制模块的VHDL实现 (3)4、投币输入信号电路的设计与实现 (4)5、自动售货机控制系统功能仿真 (5)三、结束语 (6)四、参考文献 (7)自动售货机控制系统的VHDL实现一、概述有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。

传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。

此外,与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。

二、自动售货机控制系统的实现1、自动售货机功能描述及控制系统组成设计一个自动售货机的逻辑控制电路。

它有两个投币口分别为一元投币口和五角投币口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动给出一瓶饮料,投入两元硬币后,在给出一瓶饮料的同时找回一枚五角的硬币。

图1为自动售货机控制系统方框图,由投币信号处理模块和功能控制模块组成。

投币找钱信号出货图1 自动售货机控制系统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。

自动售货机控制系统的设计

自动售货机控制系统的设计
PRICE2: IN STD_LOGIC; --5元商品
PRICE3: IN STD_LOGIC; --10元商品
Y0: OUT STD_LOGIC; --购买成功信号
Y1: OUT STD_LOGIC; --退币信号
MONEY: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
PAYBACK: OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END IF;
END IF;
END PROCESS;
MONEY<=COIN; --输入的钱数
PAYBACK<=COUT;--找零
END BEHAV;
(3)译码显示源程序(总钱数应小于16元)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY XIANSHI IS
END SHOUHUOJI;
ARCHITECTURE BEHAV OF SHOUHUOJI IS
SIGNAL COIN: STD_LOGIC_VECTOR(3 DOWNTO 0); --保存钱数
SIGNAL COUT: STD_LOGIC_VECTOR(3 DOWNTO 0); --保存找零
BEGIN
每经过10个外部时钟,新时钟翻转一次,实现了分频。
图3分频器仿真结果图
2)控制电路的仿真
如图4、图5、图6所示。
图4输入7元,购买5元商品,找零2元,Y0显示购买成功
图5输入13元,购买10元商品,找零3元,Y0显示购买成功
图6输入7元,购买10元商品,Y1显示购买失败,退币7元
3)显示电路的仿真
如图7所示,当大于9时分开显示。

基于VerilogHDL的自动售货机设计

基于VerilogHDL的自动售货机设计

密级:NANCHANG UNIVERSITY学士学位论文THESIS OF BACHELOR(2012 —2016年)题目基于Verilog HDL的自动售货机设计学院:信息工程学院系电子信息工程系专业班级:学生XX:学号:指导教师:职称:教授起讫日期:2016.3.14——2016.6.3基于Verilog HDL的自动售货机设计专业:电子信息工程学号:6100212164学生XX:田启泽指导教师:陶凌摘要自动售货机是商业自动化的常用设备,它不受地点和时间的限制,能够支持线上,线下多种支付方式,出货迅速,并且操作简单方便,因此受到了社会各群体的欢迎。

现目前自动售货机多为单片机设计,常出现因功能单一不能满足顾客需求,性能不稳定带来各种售货出错等现象。

本文将论述采用EDA方法,以QuartusⅡ为软件开发平台,使用Verilog HDL语言设计,经过仿真后,在FPGA器件中实现自动售货机系统的详细流程。

经过仿真验证设计可以实现投币计次,两种售价均为两元的商品选择,购物操作无条件取消,按键消抖,以及投币退币数量显示功能。

硬件电路用一个按键电路实现投币功能,以led的点亮的数量指示投币的数量和商品出货情况,并以七段数码管显示退币的数量。

关键词:自动售货机;Verilog HDL;FPGA;EDA;Quartus ⅡDesign of Vending Machine Based on VHDLAbstractVending machines are monly used as mercial automated equipment, it is not restricted some trouble aspects,such as place,time and so on. It support online, offline payment methods, fast shipping, and easy operation, therefore has been weled by all social groups. Vending machines are currently a mostly single-chip design, often due to a single function can not meet customer needs, bring a variety of sales performance problems due to unstable capability.This article will discusses the selling process of the vending machine by using QuartusⅡas software development platform, with the EDA method and through Verilog HDL language designing, after simulating, plying vending machine system in FPGA devices. After simulation designed it can be achieved coin metering and selection of modities both are priced at two yuan, unconditionally canceled, key debounce and coin-coin number display. Hardware circuit using a function key circuits replays coin-operated,the number of led lights indicates the number of shipments of goods and coin, and using seven-segment LED to display the number of coin return. Keywords: vending machine;Verilog HDL;FPGA;EDA;Quartus Ⅱ目录摘要ⅠAbstract (Ⅱ)第一章绪论错误!未定义书签。

基于Verilog HDL的自动售货机设计与仿真

基于Verilog HDL的自动售货机设计与仿真

电子技术Electronic Technology电子技术与软件工程Electronic Technology & Software Engineering 基于Verilog H D L的自动售货机设计与仿真李红科王庆春贾晓菲(安康学院电子与信息工程学院陕西省安康市725000 )摘要:本文应用Verilog H D L语言采用自顶而下的方法设计自动售货机,整个系统包括商品选择、确认、投币、找零和出货等模块。

在Modelsim平台进行功能仿真验证,经过仿真验证设计正确,符合设计要求。

关键词:Verilog H D L;自动售货机;模块设计1引言随着集成电路产业快速发展,电路集成度越来越高,以计算机辅助为基础的电子设计自动化(EDA Electronics Design Automation)技术成为集成电路设计重要工具m,Verilog HDL硬件描述语言是以文字形式描述数字系统硬件电路结构和行为的语言,只需描述电路的功能和电路模块之间的相互关系,设计者更加专注电路设计整体性能,使电路更加优化,提高设计效率|21。

自动售货机是一种常见的智能自动化设备,由于不受人直接参与,所以广泛应用在办公楼、操场、高速服务K等场所,大大降低时间、地点的限制,在节省人力资源方面有着明显优势。

2自动售货机设计思路有限状态机(FSM Finite-state Machine)是•种用来进行对象行为建模的工具,其作用是表示有限个状态以及这些状态之间相互转移和动作等行为的数学模型。

有限状态机广泛应用于建模行为、硬件电路设计、软件工程和网络协议等的设计。

在数字系统设计中,当某一事物发生连续变化时,可以采用有限状态机设计思路提高设计效率,增加程序可读性,降低错误概率,有限状态机设计思路是数字系统中最常用的设计方法之一 [3]。

2.1自动售货机系统总体设计该售货机电路设计要求:(1)每次只能出售一种商品。

(2)所售商品种类:售货机只售4种商品,所售商品编号分 别用四位二进制数从右向左表示为0001、0010、0100、1000,对应价格分别为2元、3元、4元、5元。

用VHDL设计的地铁自动售票机控制器

用VHDL设计的地铁自动售票机控制器

作者:杨海平,江南大学物联网工程学院微电子11级在网上看博文,偶然进入了EEFOCUS网站,感觉网站的气氛很好,由此我也萌生了写博文的念头,今天特地申请了账号,开始写第一篇博文,写些关于自己学习,自己思考的东西,希望能督促自己继续学习,勤于思考吧。

今天写的东西是学习VHDL中的一个小实验,自己用状态机实现了。

1.实验要求设计一个地铁自动售票机的控制器电路,要求如下:1)有两元,三元两种地铁车票。

只能用五角,一元两种硬币购票;2)预先选择车票的票价,投入硬币,数码管显示投入硬币的金额,“确认”后给出车票,找零,并置金额显示为零,并可按“取消”同样退还硬币,并置金额显示为零。

2.实验代码-------------------------------library ieee;use ieee.std_logic_1164.all;---------------------------------entity metro isport( st2,st3:in std_logic;--选择两元还是三元车票1有效clk,rst:in std_logic;--rst 1 有效coin1,coin2:in std_logic;--coin1表示5角硬币,coin2表示1元硬币1有效ok,cancel:in std_logic;--ok表示确认购票,cancel表示退换硬币0有效ssd1,ssd2:out std_logic_vector(7 downto 0);--两位数码管显示金额tout2,tout3:out std_logic;--给出两元,三元车票1有效mout:out std_logic--退出钱款1有效);end metro;-----------------------------------------architecture bhv of metro istype state is(s0,s5,s10,s15,s20,s25,s30);--s0表示没有投硬币,s5表示五角状态,s10表示一元状态,依次类推,最多只能投3元signal pre_state,next_state:state;begin-------------------------------------------------------------process(clk,rst)--复位操作beginif(rst = '1') thenpre_state <= s0;elsif(clk'event and clk = '1') thenpre_state <= next_state;end if;end process;------------------------------------------------------------process(rst,coin1,coin2,st2,st3,ok,cancel)--状态机的编写beginif(rst = '1') thentout2 <= '0';tout3 <= '0';mout <= '0';ssd1 <= "11000000";ssd2 <= "11000000";elsif(cancel = '1') thennext_state <= s0;ssd1 <= "11000000";ssd2 <= "11000000";elsecase pre_state iswhen s0 =>ssd1 <= "11000000";ssd2 <= "11000000";tout2 <= '0';tout3 <= '0';mout <= '0';if(coin1 = '1') then next_state <= s5;elsif(coin2 = '1') then next_state <= s10;end if;when s5 =>ssd1 <= "10010010";ssd2 <= "11000000";tout2 <= '0';tout3 <= '0';mout <= '0';if(coin1 = '1') then next_state <= s10;elsif(coin2 = '1') then next_state <= s15;end if;when s10 =>ssd1 <= "11000000";ssd2 <= "11111001";tout3 <= '0';mout <= '0';if(coin1 = '1') then next_state <= s15;elsif(coin2 = '1') then next_state <= s20;end if;when s15 =>ssd1 <= "10010010";ssd2 <= "11111001";tout2 <= '0';tout3 <= '0';mout <= '0';if(coin1 = '1') then next_state <= s20;elsif(coin2 = '1') then next_state <= s25;end if;when s20 =>ssd1 <= "11000000";ssd2 <= "10100100";if(coin1 = '1') then next_state <= s25;elsif(coin2 = '1') then next_state <= s30;elsif(st2 = '1' and ok = '1') then mout <= '0';tout2 <= '1';tout3 <= '0';next_state <= s0;end if;when s25 =>ssd1 <= "10010010";ssd2 <= "10100100";if(coin1 = '1') then next_state <= s30;elsif(st2 = '1' and ok = '1') then mout <= '1';tout2 <= '1';tout3 <= '0';next_state <= s0;end if;when s30 =>ssd1 <= "11000000";ssd2 <= "10110000";if(st2 = '1' and ok = '1') then mout <= '1';tout2 <= '1';tout3 <= '0';next_state <= s0;elsif(st3 = '1' and ok = '1') then mout <= '0';tout3 <= '1';tout2 <= '0';next_state <= s0;end if;end case;end if;end process;----------------------------------------------------------------------------------------------end bhv;3.仿真代码clk_gen:process--只列出了主要的代码,这是时钟产生激励beginclk <= '1';wait for 5 ns;clk <= '0';wait for 5 ns;end process clk_gen;--------------------------init : PROCESS --这是模拟先投两元硬币,买两元票,再投三元硬币,买三元票beginrst <= '1';cancel <= '0';ok <= '0';coin1 <= '0';coin2 <= '0';st2 <= '0';st3 <= '0';wait for 5 ns;coin2 <= '1';rst <= '0';wait for 10 ns;------------------coin2 <= '0';wait for 10 ns;coin2 <= '1';wait for 10 ns;coin2 <= '0';wait for 10 ns;coin2 <= '0';st2 <= '1';ok <= '1';wait for 10 ns;ok <= '0';st2<= '0';-----------coin2 <= '1';wait for 10 ns;coin2 <= '0';wait for 10 ns;coin2 <= '1';wait for 10 ns;coin2 <= '0';wait for 10 ns;coin2 <= '1';wait for 10 ns;coin2 <= '0';wait for 10 ns;st3 <= '1';ok <= '1';wait for 100 ns;wait;-- wait;END PROCESS init;仿真结果如下:(Quartus II环境下的仿真)结果与预期的一致,大家也可以自己编写试试看。

基于VHDL的自动售货机系统设计

基于VHDL的自动售货机系统设计

基于VHDL的自动售货机系统设计赵杰【摘要】采用自顶向下的设计原则和模块化的设计思想,将自动售货机系统划分为分频、主控、译码和显示等模块.各模块均采用硬件描述语言VHDL(超高速集成电路硬件描述语言)设计,用电路原理图实现各模块之间的连接关系,完成顶层设计实体.主控模块使用有限状态机完成,将基本功能的实现转换为状态的转移.最终完成的模拟自动售货机系统具有商品选择、投币处理、出货找零、异常退币等主要功能.在Quartus Ⅱ软件平台上完成工程设计,对各模块分别进行仿真,最后对顶层设计实体进行仿真验证.【期刊名称】《系统仿真技术》【年(卷),期】2015(011)002【总页数】5页(P167-171)【关键词】自动售货机;硬件描述语言;模块化【作者】赵杰【作者单位】商洛学院电子信息与电气工程学院,陕西商洛726000【正文语种】中文【中图分类】TP3911 引言自动售货机是能按照投入的货币自动售货的机器,它是贸易自动化的常用设备,受时间、地点的限制少,能节约人力、便利交易,是一种全新的贸易零售方式,又被称为24小时业务的小型超市[1]。

在自动售货机的控制方面,常采用单片机或PLC(可编程逻辑控制器)作为控制核心,完成整个系统的基本功能[2-5]。

然而,实际中主控芯片需和众多外围芯片或接口相连,或者需要进行功能扩展[6]。

用传统方式来应对日益复杂的要求显得力不从心。

而使用硬件描述语言在FPGA(现场可编程门阵列)上实现电路系统的现代EDA(电子设计自动化)技术,具有明显的优势[7-8]。

本文主要利用VHDL硬件描述语言编写程序代码,用状态机实现功能转换,以Quartus II软件作为运行平台,实现一个能够实现货物选择、投币、找零、多次购买等功能的自动售货机。

自动售货机采用模块化设计,可以对各模块实行独自设计、修订和调试,最终通过模拟仿真进行验证。

2 自动售货机设计为方便起见,设定自动售货机可以出售两种商品,标价分别为2元和3元。

自动售货机控制系统的VHDL实现(1)

自动售货机控制系统的VHDL实现(1)

目录一、概述 (1)二、自动售货机控制系统的实现............. 错误!未定义书签。

1、自动售货机功能描述及控制系统组成... 错误!未定义书签。

2、自动售货机控制功能的状态描述....... 错误!未定义书签。

3、自动售货机功能控制模块的VHDL实现 (3)4、投币输入信号电路的设计与实现 (4)5、自动售货机控制系统功能仿真 (5)三、结束语 (6)四、参考文献 (7)自动售货机控制系统的VHDL实现一、概述有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。

传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。

此外,与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。

二、自动售货机控制系统的实现1、自动售货机功能描述及控制系统组成设计一个自动售货机的逻辑控制电路。

它有两个投币口分别为一元投币口和五角投币口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动给出一瓶饮料,投入两元硬币后,在给出一瓶饮料的同时找回一枚五角的硬币。

图1为自动售货机控制系统方框图,由投币信号处理模块和功能控制模块组成。

投币找钱信号出货图1 自动售货机控制系统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。

基于VHDL的自动售货机设计论文

基于VHDL的自动售货机设计论文
1介绍及设计任务
1.1EDA技术
1.1.1EDA的介绍与发展
EDA是EIeCtrOnic DeSign AutOmatiOn(电子设计自动化)的缩写,EDA技术是20实际90年代初以来迅速发展起来的现代电子工程领域的一门新技术。它以可编程逻 辑器件(PLD)为载体,以计算机为工作平台,以EDAX具软件为开发环境,以硬件 描述语言(HDL)作为电子系统功能描述方式,以电子系统设计为应用方向的电子产 品自动化设计过程 ⑴。蜡變黲癟報伥铉锚鈰赘。
本科生毕业论文(设计)
基于VHDL的自动售货机设计
中文摘要2
英文摘要3
引言4
1.介绍及设计任务5矚慫润厲钐瘗睞枥庑赖。
1.1EDA技术5
1.1.1EDA的介绍与发展5
1.1.2EDA的设计流程5
1.1.3VHDL介绍5
1.2自动售货机的应用与设计背景
1.2.1自动售货机的应用介绍6残骛楼諍锩瀨濟溆塹籟。
買鯛鴯譖昙膚遙闫撷凄。
1.1.2EDA的设计流程及优点
EDA的设计流程如下:
(1)根据设计题目要求编写相应程序代码
(2)对编写的VHDL程序代码进行编译和仿真
(3)利用实验箱完成硬件验证
(4)总结设计内容,完成课程设计说明书
EDA技术与传统的电子设计相比,传统的电子设计方法是一种自底向上且费时 费力的设计方法,而现代电子设计技术(DA)是自顶向下且先进高效的。在电子产品 的设计理念、设计方式、系统硬件构成、设计的重用性、知识产权、设计周期等方 面,EDA技术具有一定的优势[3]。綾镝鯛駕櫬鹕踪韦辚糴。
自动销售商品的机械。从供给的条件看,自动售货机可以充分补充人力资源的不足, 适应消费环境和消费模式的变化,24小时无人售货的系统可以更省力,运营时需要 的资本少、面积小,有吸引人们购买好奇心的自身性能,可以很好地解决人工费用上

HDL(Verilog)课程设计报告(自动售货机)

HDL(Verilog)课程设计报告(自动售货机)

Verilog HDL课程设计报告实验名称:基于Verilog HDL的自动售货机指导老师:xx冠军班级:信科12-1姓名:xx学号:第一章系统设计1.1系统设计(1)用四个发光二极管分别模拟售出价值为5角、1元、1.5元和2元的小商品,购买者可以通过开关选择任意一种标价中的小商品。

(2)灯亮时表示该小商品售出。

(3)用开关分别模拟5角、1元硬币和5元纸币投入,可以用几只发光二极管(或数码管)分别代表找回剩余的硬币。

(4)每次只能售出一种小商品,当所投硬币达到或超过购买者所选面值时,售出货物并找回剩余的硬币,回到初始状态;(5)当所投硬币值不足面值时,可通过一个复位键退回所投硬币,回到初始状态。

第二章详细设计2.1自动售货机状态描述判断开关被按下的个数N。

若N>=2表示所选本次选择无效,返回初始状态;若N=1则显示所选商品,并继续执行下面的流程。

3个开关分别代表三种商品。

4个开关分别代表投入0.5元,1元,2元,5元,统计投入总额。

投入总额与商品价格做比较,如果总额<商品价格,退钱并返回初始状态如果总额>=商品价格,则继续执行下面的程序。

找零=总额-商品价格,数码管显示找零金额。

状态图如图2.1所示:2.2详细状态描述2.2.1初始状态各变量都设置为零,按下rst键后,一切恢复到初始状态。

2.2.2选商品状态分别有价格为0.5元、1元、1.5元和2元的商品,每次选择商品前,设置一个标志位btn_sell表示选择商品状态。

此自动售货机每一次售货时只能一次选择一种商品,当同时选择两种以上时,选择商品无效,数码管显示清零,重新进行商品选择。

选择商品后,数码管显示所选商品价格。

2.2.3投币状态当选好商品后,开始投币。

同样有一标志位btn_price表示投币金额。

投币口只接受三种面值的钱币0.5元、1元和5元,可以同时投入多种面值钱币。

投完币后,先有一个确认买商品的过程,若投了币但又不购买商品了,就将全部投币金额退回;若确认购买商品,则进入下一状态——找零状态。

基于VHDL的自动售货机毕业设计

基于VHDL的自动售货机毕业设计
Keywordsvending machine;VHDL;EDA;MAX+plus II

1.1
自动售货机是能根据投入的钱币自动付货的机器。自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。是一种全新的商业零售形式,又被称为24小时营业的微型超市。能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。随着科技的发展以及人民生活水平的提高,人们需求一种全新的购物方式,这种方式不受人力时间的限制可随时随地更快捷方便地购买商品,自动售货机正能满足人们的这种需求。如今,在机场、地铁、商场、公园等客流较大的场所,不难发现自动售货机的身影。顾客只要插人几元的纸币或硬币,就可以方便地买到诸如饮料、口香糖等小东西。作为一种前卫的零售方式,自动售货机受到了喜欢追逐时尚的年轻人的欢迎。自动售货机具有技术含量高、销售方式新、市场潜力大、商品货真价实等优点,决定了它广阔的发展前景。而且,它与电子购物等新型消费方式相通,能创造巨大的商机,研究自动售货机是非常有价值的。随着科技的发展和社会的进步,自动化商业机械有了越来越广泛的应用,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便。特别在发达国家,自动售货机已经十分普及,自动售货机可售出各种成型包装小商品,各种袋装,盒装,软瓶装等小商品。在我国,由于多种原因,自动售货机的市场推广缓慢,处于培育阶段,但可以预见,这种方便快捷的服务形式因其适合现代生活快节奏的需要,在不久的将来必会获得大众的喜爱。随着商品市场的不断繁荣,自动售货机和自动服务设施必将逐步得到广泛的应用。
摘要
随着科学技术的飞速发展和市场的不断繁荣,各种投币式自动售货及服务机具已经风靡世界发达国家。这些采用现代电子技术和机电技术的自动服务设施,给人们的日常生活带来了极大的方便。

基于VHDL的自动售货机设计

基于VHDL的自动售货机设计
本科毕业设计(论文)
基于VHDL的自动售货机设计
燕 山 大 学
年月
本科毕业设计(论文)
基于VHDL的自动售货机设计
学院(系):
专 业:
学生 名:
学 号:
指导 教师:
答辩 日期:
燕山大学毕业设计(论文)任务书
学院:信息科学与工程学院 系级教学单位:光电子工程系


学生
姓名
专 业
班 级
0


题目名称
基于VHDL的自动售货机设计
关键词自动售货机;VHDL;EDA;MAX+plus II
Abstract
With the rapid development of science and technology and the increasing flourish of the market, all kinds of coin-operated vending and service equipment has swept the developed countries of the world. The automatic service witch use modern technology, electronic technology and electromechanical facilities has brought great convenience to the people's daily lives.
1.2 课题的目的与意义
人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术[2]。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。

基于VHDL的自动售货机的设计与实现

基于VHDL的自动售货机的设计与实现

自动售货机实验报告一、设计任务设计一个自动售货饮料机,设每瓶饮料元,投币口有两个,1元硬币(one)或5角硬币(half),每个时刻可以输入其中一种硬币,自动售货机有找零钱功能,oute为出货,outm 为找零。

二、设计过程1.设计思路:状态定义:s0表示初态,s1表示投入5角,s2表示投入1元,s3表示投入1元5角,s4表示投入2元,s5表示投入2元5角,s6表示投入3元。

输入信号:state_outputs(0)表示输入货物,comb_outputs(1)表示找5角硬币,输入信号为1 表示投入硬币,输入信号为1表示未投入硬币。

输出信号:comb_outputs(0)表示输出货物,comb_outputs(1)表示找5角零钱,输出信号为1表示输出货物或找零,输入信号为0表示不输出货物或找零。

根据设计要求分析,得到状态转化图如下图所示,其中状态为s0、S1、S2、S3、S4、S5、S6;输入为state_inputs(0,1);输出为comb_outouts(0,1);输入仅与状态有关,因此将输入写在状态圈内部。

002.设计步骤:(1)创建工程。

打开QuartusII,创建一个新的工程并命名。

根据实验室条件,选择的芯片为cyclone系列中的EP1C6Q240C8芯片。

输入VHDL文本文件。

新建文本文件VHDL file。

输入程序并保存。

程序如下:library ieee;use autosell isport(clk,reset :in std_logic;state_inputs:in std_logic_vector(0 to 1);comb_outputs:out std_logic_vector(0 to 1)); end autosell;architecture be of autosell istype fsm_st is(s0,s1,s2,s3,s4,s5,s6);signal current_state,next_state:fsm_st;beginreg:process(reset,clk)beginif reset='1'then current_state<=s0;elsif rising_edge(clk)thencurrent_state<=next_state;end if;end process;com:process(current_state,state_inputs)begincase current_state iswhen s0=>comb_outputs<="00";ifstate_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 s1=>comb_outputs<="00";ifstate_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";ifstate_inputs="00" then next_state<=s2;elsif state_inputs="01" then next_state<=s3;elsif state_inputs="10" then next_state<=s4; end if;when s3=>comb_outputs<="00";ifstate_inputs="00" then next_state<=s3;elsif state_inputs="01" then next_state<=s4;elsif state_inputs="10" then next_state<=s5; end if;when s4=>comb_outputs<="00";ifstate_inputs="00" then next_state<=s4;elsif state_inputs="01" then next_state<=s5;elsif state_inputs="10" then next_state<=s6;end if;when s5=>comb_outputs<="10";ifstate_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 s6=>comb_outputs<="11";ifstate_inputs="00" 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 be;(2)编程序。

基于VHDL的自动售货机的设计

基于VHDL的自动售货机的设计

自动售货机的设计与实现摘要:本文介绍了VHDL的特点和应用,以自动售货机为例,详细说明了其实现过程。

本系统使用VHDL 语言编写,用状态基来实现各功能,使用MAXPLUSⅡ进行仿真,模拟各模块的实现。

本文详细介绍如何运用VHDL语言及MAXPLUSⅡ进行仿真,本文设计的自动售货机实现了选择货物,投币,找零,显示,多次交易,在一次购买中选择多个货物等自动售货机的基本功能。

本文给出了各个模块的源程序、各模块的连接图以及各个模块的仿真图,并做出了详细的分析。

关键词:VHDL语言,MAXPLUSⅡ,自动售货机Design and implementation of vending machine Electronics and Information Science and Technology Candidate:JiangHuiAdvisor:CaiJianhuaAbstract: This article introduces the characteristics and application of VHDL, with a example of designing vending machines, describes detailedly the implementation process. The system uses the VHDL language, realizing every function uses state machines, applying MAXPLUS Ⅱto simulate in order to realize the function every modules.This article describes the use of VHDL language and MAXPLUS Ⅱ simulation, to achieve the vending machine's basic functions , as choose good, coin, give change, buy good more than one time, choose more than one good in one time, display, and so on. This article gives the original program of every modules and the simulating diagram of every modules and the combination of all of the modules, gives detail analyse of every simulating diagram as well.Keywords:VHDL language,MAXPLUSⅡ,Vending machine引言随着科技的发展和社会的进步,自动化商业机械有了越来越广泛的应用,自动售货机作为自动化商业机械的代表被广泛用于公共场所自动售货,给人们的生活带来了极大的方便。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
一、概述 (1)
二、自动售货机控制系统的实现 (2)
1、自动售货机功能描述及控制系统组成 (2)
2、自动售货机控制功能的状态描述 (2)
3、自动售货机功能控制模块的VHDL实现 (3)
4、投币输入信号电路的设计与实现 (4)
5、自动售货机控制系统功能仿真 (5)
三、结束语 (6)
四、参考文献 (7)
基于VHDL的自动贩卖机控制系统
一、概述
有限状态机FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效率、高可靠逻辑控制的重要途径。

传统的状态机设计方法需进行繁琐的状态分配、绘制状态表、化简次态方程等,而利用VHDL可以避免这些繁琐的过程,直接利用状态转换图进行状态机的描述,所有的状态均可表达为CASE_WHEN结构中的一条CASE语句,而状态的转移则通过IF_THEN_ELsE语句实现。

此外,与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的特点。

二、自动售货机控制系统的实现
1、自动售货机功能描述及控制系统组成
设计一个自动售货机的逻辑控制电路。

它有两个投币口分别为一元投币口和五角投币口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动给出一瓶饮料,投入两元硬币后,在给出一瓶饮料的同时找回一枚五角的硬币。

图1为自动售货机控制系统方框图,由投币信号处理模块和功能控制模块组成。

投币
找钱
信号出货
图1 自动售货机控制系统
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。

根据上面的分析可得到状态转换
图如图2所示。

图2 自动售货机系统状态转换图
3、自动售货机功能控制模块的VHDL实现
根据图2所示的状态转换图,用VHDL语言中的CASE_WHEN结构和IF_THEN_ELSE语句实现控制功能,源程序如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ZIDONG IS
PORT(A,B:IN STD_LOGIC;
clk:IN STD_LOGIC;
Z,Y:OUT STD_LOGIC);
END ZIDONG;
ARCHITECTURE beha OF ZIDONG IS
TYPE states IS(S0,S1,S2);
SIGNAL state:states;
SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN
X<=A&B;
PROCESS(x,state)
BEGIN
IF rising_edge(clk) THEN
CASE state IS
WHEN S0=>Z<='0';Y<='0';
IF(X="01")THEN
state<=s1;
ELSIF(X="10")THEN
state<=s2;
ELSE
state<=s0; END IF;
WHEN S1=>Z<='0';Y<='0'; IF(X="01")THEN
state<=s2;
ELSIF(X="10")THEN
state<=S0;
Z<='1';Y<='0';
ELSE
state<=s1;
END IF;
WHEN S2=>Z<='0';Y<='0'; IF(X="01")THEN
state<=S0;
Z<='1';Y<='0';
ELSIF(X="10")THEN
state<=s0;
Z<='1';Y<='1';
ELSE
state<=s2;
END IF;
END CASE;
END IF;
END PROCESS;
END beha;
图3 利用MAX+PLUSII软件及VHDL语言编写控制芯片
4、投币输入信号电路的设计与实现
A、B分别为一元硬币和五角硬币驱动信号,Z为饮料输出信号,Y为找钱输出信号。

通过对程序分析和仿真可以看出,A和B的驱动信号的持续时间必须控制在clk时钟周期内,如果驱动信号时间太短,系统检测不到投币信号,时间太长,会误认为是两次或多次投币,造成误操作。

因此,要使整个控制系统可靠运行,还必须设计专门投币输入信号处理电路。

自动售货机的所有信号均由同步时钟信号clk的正边沿触发。

由于售货机的硬币接受器一般是一个机械设置装置,投币时产生的信号要比同步信号clk要慢得多,一般可持续好几个周期,必须对投币输入信号进行处理,使每一次投币时在clk脉冲周期内只能产生一个脉冲作为功能控制模块的投币驱动信号。

基于上面的功能要求,设计了如图4所示的投币输入信号的处理电路,其中yiyuan和wujiao作为一元硬币和五角硬币的投币输入信号,A和B 为相应的输出信号,作为功能控制模块的输入信号,而且A、B输出是在投币输入信号yiyuan 和wujiao为高电平1之后的一个周期内被设置为1。

经过仿真结果如图6所示,实现了每次投币后在一个clk周期内只产生一个可靠的脉冲驱动信号。

图4 投币信号处理电路
图5 投币信号处理电路模块
图6 投币信号处理电路仿真
5、自动售货机控制系统功能仿真
自动售货机控制系统模块之间连接如图7所示,其中“toubi”为投币输入信号处理模块,其输出信号作为功能控制模块“zidong”的输入驱动信号,“chuhuo”为自动售货机的饮料输出信号,“zhaoqian”为找钱输出信号。

整个控制系统通过MAX+PLUSII软件进行编译和仿真,仿真结果如图8所示,符合电路设计要求。

并把程序下载到芯片
MAXEPM7128SLC84-15进行验证与实际相符。

图7 自动售卖机控制系统电路
图8 自动售卖机控制系统电路仿真
三、结束语
VHDL语言有限状态机设计控制电路,可大大降低设计难度和时间,提高设计效率和可靠性,利用语言的灵活性及功能强大的EDA工具,可以轻松完成硬件的功能扩充与升级,还可以实现更复杂的数字系统,整个设计过程相对于传统的设计方法,有较大的突破。

VHDL 语言作为现代数字系统的重要设计工具,以其灵活、简洁的设计风格在电路设计中发挥着越来越重要的作用。

四、参考文献
《EDA技术简明教程》赵刚等编著四川大学出版社出版 2004年7月第一版《综合电子设计与实践》田良等编著东南大学出版社出版 2002年3月第一版。

相关文档
最新文档