自动售货机控制模块 VHDL 程序设计及 FPGA 实现

合集下载

基于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;五、仿真波形六、个人总结与感想:良好的沟通与分工是十分重要的,这对程序的实现和质量具有至关重要的作用。

基于FPGA的自动售货机的课设说明书

基于FPGA的自动售货机的课设说明书

目录1 引言 (1)2 VHDL介绍 (2)2.1 硬件描述语言VHDL (2)2.2 VHDL语言的特点 (3)3 QuartusII软件简介 (4)3.1软件介绍 (4)3.2界面介绍 (4)3.2.1代码输入界面 (4)3.2.2功能仿真界面 (5)3.2.3波形仿真界面 (6)4 自动售货机控制器设计与仿真 (7)4.1硬件电路设计 (7)4.2状态转换图 (7)4.3时序仿真结果 (10)5引脚锁定及下载 (12)5.1引脚锁定 (12)5.2下载 (12)5.3结果分析 (12)6设计总结 (14)参考文献 (15)附录 (16)1 引言VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language,诞生于1982年。

1987年底,VHDL被美国国防部确认为标准硬件描述语言。

自IEEE公布了VHDL的标准版本,IEEE-1076之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。

1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本。

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

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL的英文全写(Very-High-Speed Integrated Circuit HardwareDescription Language)翻译成中文就是超高速集成电路硬件描述语言。

因此它的应用主要是应用在数字电路的设计中。

目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。

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

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

基于FPGA的自动售货机控制系统的设计摘要本文旨在设计一种基于FPGA(现场可编程门阵列)的自动售货机控制系统。

该系统利用FPGA芯片的可编程特性和高性能,能够实现灵活、可靠的自动售货机操作。

本文将详细介绍系统的设计原理、硬件架构和关键功能,并提供实施建议和性能评估。

引言自动售货机已经成为现代社会的常见设备,用于快速、方便地购买商品。

然而,传统的自动售货机控制系统常常受限于固定的硬件结构和有限的功能。

为了提升自动售货机的灵活性和性能,本文提出基于FPGA的控制系统设计。

设计原理基于FPGA的自动售货机控制系统利用FPGA芯片的可编程特性,通过组合逻辑和时序逻辑实现自动售货机的各项功能。

系统将通过外部接口与售货机的硬件部分进行通信,并处理用户输入、商品库存、货币交易等关键操作。

通过FPGA的灵活配置和高速性能,该控制系统能够实现实时响应、精确计算和可靠交互。

硬件架构系统的硬件架构主要包括FPGA芯片、外部接口电路、按钮和显示屏。

FPGA芯片作为核心处理单元,负责运行控制程序和管理系统资源。

外部接口电路用于与售货机硬件部分进行数据传输和控制信号的交互。

按钮和显示屏提供用户与自动售货机进行交互的接口。

关键功能基于FPGA的自动售货机控制系统具备以下关键功能:1. 商品选择和购买:用户可以通过按钮选择所需商品,并进行购买操作。

系统将根据用户选择,实时更新商品库存和计算金额。

2. 货币交易:系统支持不同货币单位的识别和计算。

用户可以通过投币或刷卡等方式完成支付,系统将验证货币的合法性并进行交易处理。

3. 商品库存管理:系统能够实时监测商品库存,并在库存不足时提醒用户或停止销售。

管理员可以通过特定操作进行库存的添加和更新。

4. 故障监测和报警:系统能够监测售货机硬件部分的运行状态,并在故障发生时及时报警或进行相应处理。

实施建议实施基于FPGA的自动售货机控制系统时,可以考虑以下建议:1. 确定系统需求,并合理规划FPGA芯片和外部接口电路的选型和布局。

基于FPGA的自动售货机-课程设计

基于FPGA的自动售货机-课程设计

武汉理工大学《电子线路EDA》课程设计说明书绪论自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器。

自动售货机是商业自动化的常用设备,它不受时间、地点的限制,能节省人力、方便交易。

是一种全新的商业零售形式,又被称为24小时营业的微型超市。

能分为三种:饮料自动售货机、食品自动售货机、综合自动售货机。

它能够在无人操作的情况下根据程序自动地销售商品。

自动售货机不受工作时间及地点限制的特点,使其实现了一种提高营业额的同时又降低了成本的销售模式。

进入21世纪之后,自动售货机的发展进一步加快,智能化的自动售货机正在逐步进入普通民众的生活之中,在未来,自动售货机的发展将会更加迅速,更加智能的自动售货机会让人们的生活更加便利。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

因此,此次运用VHDL语言来实现一个简易的自动售货机是一个很有意义并且非常有乐趣的课题!关键词:自动售货机 VHDL1 课程设计实验要求1.1 初始条件设计一个自动售货机控制器,具有投币和选择商品等功能。

可出售四种商品,分别为纯净水(2元)、可乐(4.5元)、牛奶(5元)、果汁(5.5元)。

在购买过程中,采取投币方式,只能投入5元、10元或20元三种规格的纸币,且一次只能投入一张纸币。

1.2 要求完成的主要任务1.顾客通过按键选择某种商品后,由数码管显示该商品价格。

顾客投币过程中,数码管显示投币额。

基于FPGA的自动售货机控制单元设计

基于FPGA的自动售货机控制单元设计

图书分类号:密级:毕业设计(论文) 基于FPGA的自动售货机控制单元设计学生学号学生姓名学院名称专业名称指导教师年月日摘要近年来在随着我国各种大小商品市场快速发展以及城市化不同程度的不断提高,自动售货机已经越来越受到大中城市的青睐,自动售货机在这些大中城市中已经获得了越来越广泛的应用,因此自动售货机的快速发展已经得到了不断的提高和认可,同时自动售货机也极大地丰富了我国的商业产业的结构,是商业结构有了更加丰富的拓展,这样在商业结构中开辟了一种全新的自动自主销售和自动自主服务的时代。

本文将结合大学期间所学的EDA技术实现自动售货机控制系统的设计,应用这种技术实现设计的自动售货机控制系统,将会有效的减小系统的开发周期,同时降低了很多开发成本,因此是一种可行的设计方案和趋势。

该设计在整体设计架构中主要包含两个部分:主要有硬件系统设计部分和FPGA内部电路的编程设计部分。

在FPGA内部电路的编程设计部分主要采用硬件描述语言(Vhdl)对自动售货机的控制系统进行功能描述以及各状态之间的设计。

该设计FPGA硬件部分主要是目前最通用的FPGA之一即ALTERA公司的FPGA芯片为设计目标器件。

该设计中硬件系统设计是围绕系统设计所选合适的FPGA器件的硬件电路进行设计。

本文中将详细介绍了基于FPGA的自动售货机的整体设计方案流程与工作原理及工作状态,在功能叙述中详细阐述了投币选择模块,物品选择模块,主控模块等模块的软件系统设计与实现,在前期设计完成之后对所设计的FPGA内部功能进行功能仿真验证,在确定设计正确无误之后进行下板子测试验证。

关键词FPGA ;EDA;自动售货机;VHDLAbstractWith the continuously prosperity of china’s commodity market and with the rapid develepment of modernization level , vending machines has enterd into large and medium-sized cities quietly ,it enriches china’s commercial industrial structure and creates a new era of automatic selling and self-service.This subject will accomplish the control system of vending machine with EDA technology.Since it has the advantages of shortening product development cycle,reducing product develepment cost , increasing the possibility of first-time success and so on,it can enhence the exploitability of aotomatic machinea and lower the costs.The issue consists of two parts:hardware system design and fpga internal circuit design. Fpga internal circuit design uses hardware describe language (vhdl )to describe the fuction of vending machine;and fpga chip of ALTERA Corporation is choosen for the target device. Hardware system design is a hardware circuit design that center on the selected appropriate fpga device. and the design of the internal functions of FPGA is simulated.Keywords FPGA EDA Vending Machine VHDL目录第1章绪论 (1)1.1 自动售货机的历史 (1)1.2 自动售货机的研究现状 (1)1.3 未来发展和研究方向 (2)1.4 本文的章节安排 (2)第2章关键技术介绍 (4)2.1 EDA技术............................................................................................. 错误!未定义书签。

基于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

自动售货机电路设计VHDL

郑州轻工业学院课程设计任务书题目自动售货机电路设计专业、班级电信2班学号 541101030217 姓名李磊主要内容、基本要求、主要参考资料等:查阅资料完成自动售货机的设计思路,利用硬件编程语言VHDL 或者Verilog-HDL来实现,要求能够识别100元、50元、10元、5元及其钢崩1元五种面值的设计,能够找零,设计中假设找零货贝充裕,货物的价格不允许出现0.5元的情况。

给出完成控制电路所需要的设计模块;给出硬件编程语言的实现,并进行仿真;给出下载电路的设计,设计为2种下载方法,其中一种必须为JTAG;同时设计者报告不允许雷同。

参考资料:1、潘松、黄继业《EDA技术及其应用》(第四版)科学出版社 20092、数字信号处理的教材完成期限:指导教师签名:课程负责人签名:摘要随着电子技术的发展,当今数字系统的设计正朝着速度快,容量大,体积小,重量轻的方向发展,推动该潮流迅猛发展的引擎就是日趋进步和完善的ASIC设计技术,AISC芯片具有价格低,体积小,可靠性高等优点,目前在电子产品中已有广泛的应用,VHDL是一种用来描述数字逻辑系统的“编程语言”,它通过对硬件行为的直接描述来实现对硬件的物理实现,代表了当今硬件设计的发展方向。

本文是在VHDL的基础上对自动售货机进行设计来实现其基本功能的,采用了Altera的开发软件Quarts II。

通过在该软件平台上进行数字电路设计和仿真的方法,阐述了VHDL(Very High Speed Integrated Circuit Hardware Description Language)超高速集成电路硬件描述语言的一些特点及语法结构,介绍了自动售货机的基本原理、系统组成和主要功能,并分析讨论了用VHDL语言开发自动售货机系统的设计流程。

本设计采用VHDL硬件描述语言编程的设计方法设计系统核心电路的硬件程序,在Quartus II软件平台上进行编译和仿真。

文章首先简述了自动售货机系统的意义和发展现状以及VHDL语言的特点,然后介绍了自动售货机的设计要求、设计思路,并给出了总体设计框图,通过分析设计写出VHDL程序源代码,将代码在Quartus II软件平台上进行编译仿真,波形基本符合设计要求。

基于VHDL编程FPGA的地铁自动售票机

基于VHDL编程FPGA的地铁自动售票机

地铁自动售票机一、设计要求1、功能描述用于模仿地铁售票自动售票,完成地铁售票的核心控制功能。

2、功能要求售票机有两个进币孔,一个是输入硬币,识别的范围是一元硬币;一个是纸币,识别的范围是一元、两元、五元、十元、二十元。

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

乘客一次只能选择一个出站口,购买车票时,乘客先选出站口,有六个出站口可供选择,再选择所需的票数,然后投币,投入的钱币达到或者超过所需金额时,售票机自动出票,并找零。

本次交易结束后,等待下一次交易。

在选择出站口、所需票数以及在投币期间,乘客可以按取消键取消操作,钱币自动退出。

二、实验分析1、买票时,乘客按下开始键,售票机进入站台选择程序,乘客选择出站口后,可以按取消键重新选择,否则售票机自动进入票数选择程序,同样这时可以按下取消键重新开始选择出站口以及票数。

2、当选择好出站口以及所需票数时,乘客可以投硬币或者用纸币,当所投的钱币总额大于或者等于票价时,售票机自动出票以及找零。

期间,可以按下取消键重新开始选择,并退出所有的钱币。

3、乘客若还没选择出站口或者票数,就投币或者使用纸币,售票机会自动退出所有的钱币。

4、有六个站台可供乘客选择,每个乘客最多可以买3张票,六个站台编号为1到6,票价从2元依次递增到7。

三、系统流程图四、程序源代码LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_arith.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY metrosell ISPORT(clk:in std_logic; --set the clock signalstartselect:in std_logic; --start to select the platformsure:in std_logic; --this button is to save your forward step(s)coin1y:in std_logic; --1 yuan coinpmoney1y:in std_logic; --1 yuan paper moneypmoney2y:in std_logic; --2 yuan paper moneypmoney5y:in std_logic; --5 yuan paper moneypmoney10y:in std_logic; --10 yuan paper moneypmoney20y:in std_logic; --20 yuan paper moneycancel:in std_logic; --cancel the forward step(s)number:in std_logic_vector(3 downto 0); --choose the number of the ticketsplatform:in std_logic_vector(3 downto 0); --choose the platform you want to reachmoneystorage:out std_logic; --to store the moneyacceptmo:out std_logic; --accept the moneystamp:out std_logic; --stamp outgatecharge:out std_logic_vector(3 downto 0); --the mount of charge,up to 15 yuanchargegate:out std_logic --charge outgate);END metrosell;ARCHITECTURE sell OF metrosell IStype state_type is(initial_type,selectp_type,selectnum_type,insert_type,stamp_type,charge_type);--define six typessignal state:state_type; --define a shared state BEGINmain:process(clk,state,startselect,platform,number,coin1y,pmoney1y,pmoney2y,pmon ey5y,pmoney10y,pmoney20y,cancel,sure)variable univalence :integer range 0 to 7; --the univalence of the ticket variable total_money :integer range 0 to 21; --the price of the ticket(s)variable selectp_alr:std_logic; --the flag of select platform typevariable selectnum_alr:std_logic; --the flag of select number typevariable stamp_alr:std_logic; --the flag of the stamp gate variable charge_alr:std_logic; --the flag of the charge gatevariable money_reg:integer range 0 to 21; --the mount of money put in variable coin1y_f:std_logic; --the flag of one yuan coin variable pmoney1y_f:std_logic; --the flag of one yuan paper moneyvariable pmoney2y_f:std_logic; --the flag of two yuan paper moneyvariable pmoney10y_f:std_logic; --the flag of ten yuan paper moneyvariable pmoney20y_f:std_logic; --the flag of twelve yuan paper moneyvariable pmoney5y_f:std_logic; --the flag of five yuan paper moneyvariable charge_reg:integer range 0 to 15; --the register of chargebeginif(rising_edge(clk)) thencase state iswhen initial_type => --initialize some variablesunivalence:=0;selectp_alr:='0';selectnum_alr:='0';stamp_alr:='0';charge_alr:='0';money_reg:=0;total_money:=0;coin1y_f:='0';pmoney1y_f:='0';pmoney2y_f:='0';pmoney5y_f:='0';pmoney10y_f:='0';pmoney20y_f:='0';moneystorage<='0';stamp<='0';charge_reg:=0;charge<="0000";acceptmo<='0';chargegate<='0';if (startselect='1') thenstate<=selectp_type;end if;when selectp_type =>if(selectp_alr='0'and cancel='0') then --choose the platform if(platform="0001")then univalence:=2;selectp_alr:='1';elsif(platform="0010")then univalence:=3;selectp_alr:='1';elsif(platform="0011")then univalence:=4;selectp_alr:='1';elsif(platform="0100")then univalence:=5;selectp_alr:='1';elsif(platform="0101")then univalence:=6;selectp_alr:='1';elsif(platform="0110")then univalence:=7;selectp_alr:='1';elsif(platform="0000")then univalence:=0;selectp_alr:='0';else null;end if;elsif(selectp_alr='1'and cancel='1')then state<=initial_type;elsif(selectp_alr='1'and sure='1') then state<=selectnum_type;end if;when selectnum_type => --you can buy at most 3 ticketsif(selectnum_alr='0'and cancel='0')then--choose the number of ticketsif(number="0001")thenif(univalence=2)thentotal_money:=2;selectnum_alr:='1';elsif(univalence=3)thentotal_money:=3;selectnum_alr:='1';elsif(univalence=4)thentotal_money:=4;selectnum_alr:='1';elsif(univalence=5)thentotal_money:=5;selectnum_alr:='1';elsif(univalence=6)thentotal_money:=6;selectnum_alr:='1';elsif(univalence=7)thentotal_money:=7;selectnum_alr:='1';elsif(univalence=0)thentotal_money:=0;selectnum_alr:='0';else null;end if;end if;if(number="0010")thenif(univalence=2)thentotal_money:=4;selectnum_alr:='1';elsif(univalence=3)thentotal_money:=6;selectnum_alr:='1';elsif(univalence=4)then total_money:=8;selectnum_alr:='1';elsif(univalence=5)then total_money:=10;selectnum_alr:='1';elsif(univalence=6)then total_money:=12;selectnum_alr:='1';elsif(univalence=7)then total_money:=14;selectnum_alr:='1';elsif(univalence=0)then total_money:=0;selectnum_alr:='0';else null;end if;end if;if(number="0011")thenif(univalence=2)then total_money:=6;selectnum_alr:='1';elsif(univalence=3)then total_money:=9;selectnum_alr:='1';elsif(univalence=4)then total_money:=12;selectnum_alr:='1';elsif(univalence=5)then total_money:=15;selectnum_alr:='1';elsif(univalence=6)then total_money:=18;selectnum_alr:='1';elsif(univalence=7)then total_money:=21;selectnum_alr:='1';elsif(univalence=0)then total_money:=0;selectnum_alr:='0';else null;end if;end if;elsif(selectnum_alr='1'and cancel='1')then state<=initial_type;elsif(selectnum_alr='1'and sure='1') then state<=insert_type;end if;when insert_type =>moneystorage<='1';if(money_reg<total_money and cancel='0')then--receive the inserted moneyif(coin1y='1'andcoin1y_f='0')then money_reg:=money_reg+1;coin1y_f:='1';end if;if(coin1y='0'and coin1y_f='1')then coin1y_f:='0';end if;if(pmoney1y='1'and pmoney1y_f='0')thenmoney_reg:=money_reg+1;pmoney1y_f:='1';end if;if(pmoney1y='0'and pmoney1y_f='1')thenpmoney1y_f:='0';end if;if(pmoney2y='1'and pmoney2y_f='0')thenmoney_reg:=money_reg+2;pmoney2y_f:='1';end if;if(pmoney2y='0'and pmoney2y_f='1')thenpmoney2y_f:='0';end if;if(pmoney5y='1'and pmoney5y_f='0')thenmoney_reg:=money_reg+5;pmoney5y_f:='1';end if;if(pmoney5y='0'and pmoney5y_f='1')thenpmoney5y_f:='0';end if;if(pmoney10y='1'and pmoney10y_f='0')thenmoney_reg:=money_reg+10;pmoney10y_f:='1';end if;if(pmoney10y='0'and pmoney10y_f='1')then pmoney10y_f:='0';end if;if(pmoney20y='1'and pmoney20y_f='0')then money_reg:=money_reg+20;pmoney20y_f:='1';end if;if(pmoney20y='0'and pmoney20y_f='1')then pmoney20y_f:='0';end if;elsif(money_reg<total_money and cancel='1')thenstate<=initial_type;elsif(money_reg>=total_money) then state<=stamp_type;end if;when stamp_type => --put out the stampif(stamp_alr='0')thenacceptmo<='1';stamp<='1';stamp_alr:='1';else state<=charge_type;end if;when charge_type => --put out the chargecharge_reg:=money_reg - total_money;case charge_reg iswhen 0 => charge<="0000";when 1 => charge<="0001";when 2 => charge<="0010";when 3 => charge<="0011";when 4 => charge<="0100";when 5 => charge<="0101";when 6 => charge<="0110";when 7 => charge<="0111";when 8 => charge<="1000";when 9 => charge<="1001";when 10 => charge<="1010";when 11 => charge<="1011";when 12 => charge<="1100";when 13 => charge<="1101";when 14 => charge<="1110";when 15 => charge<="1111";when others => charge<="0000";end case;if(charge_reg>0 and charge_alr='0') thenchargegate<='1';charge_alr:='1';elsif(charge_reg=0 and charge_alr='0')thenchargegate<='0';charge_alr:='1';else state<=initial_type;end if;end case;end if;end process main;END sell;五、波形仿真1、乘客按下开始按钮,进入选站台模式,选择二号站台,按下确定键,再选择票数为2张,按下确定键,售票机钱箱关闭,投入一张两元和五元纸币(对顺序没有要求),此时钱币总额大于票价,出两张票并找零一元。

FPGA实验报告 系统设计综合实践 自动售货机

FPGA实验报告 系统设计综合实践 自动售货机

FPGA实验报告系统设计综合实践自动售货机引言本实验报告旨在介绍FPGA实验中关于系统设计综合实践的内容,以及针对自动售货机的设计和实现过程。

本项目的目标是通过FPGA实现一个基本的自动售货机,能够接受货币投入并显示余额,实现商品选择和出货的功能。

设计概述在本项目中,我们使用FPGA作为硬件平台进行实现,采用VHDL语言进行编程。

整个设计主要分为三个模块:货币处理模块、商品选择模块和出货控制模块。

货币处理模块货币处理模块负责接收和处理投入的货币,并显示当前的余额。

具体实现过程如下:1.接收货币输入:使用FPGA板载的GPIO接口连接硬币接收器,将接收到的信息传递给FPGA。

2.处理货币信息:通过计算接收到的货币数量和面额,计算出当前的余额。

3.显示余额:使用FPGA板载的数码管显示当前的余额。

根据计算得到的余额,将其显示在数码管上。

商品选择模块商品选择模块负责接收用户的商品选择,并计算选中商品的价格。

具体实现过程如下:1.接收商品选择:使用FPGA板载的按键输入接口,接收用户按下的相应按键,确定用户选择的商品。

2.计算商品价格:根据用户选择的商品,从预先配置的商品价格表中查找相应的价格。

3.显示选中商品价格:使用FPGA板载的数码管显示选中商品的价格。

根据查找到的价格,将其显示在数码管上。

出货控制模块出货控制模块负责控制商品的出货和相关信息的提示。

具体实现过程如下:1.判断余额是否足够:根据当前余额和选中商品的价格,判断余额是否足够购买商品。

2.控制商品出货:如果余额足够购买商品,则触发相应的出货机构,实现商品的出货。

3.提示用户相关信息:根据出货情况,通过数码管显示相关信息,如余额不足、出货成功等提示。

实验结果经过对上述三个模块的设计和实现,我们成功地完成了自动售货机的基本功能。

在实验过程中,我们选取了几种常见的商品,并配置了相应的价格表。

通过按下相应的按键,用户可以选择购买的商品,并通过投币的方式支付。

自动售货机控制模块VHDL程序设计及FPGA实现

自动售货机控制模块VHDL程序设计及FPGA实现

自动售货机控制模块VHDL程序设计及FPGA实现 近年来,随着集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展, EDA(Electronic Design Automation,电子设计自动化)技术成为电子设计工程师的新宠。

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程序设计及FPGA实现

自动售货机控制模块VHDL程序设计及FPGA实现

作 EE 的 tr公 Au o to , 子 设 计 自动 化 )技 术 其 优 劣 。 目前 ,VHDL 为 I E 工 A l e a 司 的 最 新 可 编 程 逻 辑 器 件 t ma i n 电 a U I 8 0 r 成 为 电 子 设 计 工 程 师 的 新 宠 。 ED A 业 标 准 硬 件 描 述 语 言 ,得 到 众 多EDA 开 发 工 具 Qu t S I . , 实 现 芯 tr公 0 技术 以计算机 为 工具 完成 数字 系统 的 公司 的支持 ,在 电子 工程领域 已经成 片 选 用 Ale a 司 FLEX1K系 列 的 逻 辑综 合 、布 局布线 和设 计仿真 等工 为事 实上 通 用 硬 件 描 述 语 言 。 作 。 电路 设 计 者 只 需 要 完 成 对 系 统 功
需 集 中精 力进 行电子 系统 的设计和 性 的硬 币 。另外 设置一 复位 按钮 , 当复 状 态机的VHDL 表述丰 富多样 ,程 序
母嚣奄寻
21鼎{ 9{ 舟
47
层 次 分 明 , 构 清 晰 ,易 读 易 懂 ;在 结
c mb o

o t us u p t表示。c mb o t us0 o _ up t() s t<= 0 一 异 步 复 位 te S; 一 a
EPFIK1LC8 — ;首先 在计算机上 O 0 44
本 文 采 用 VHDL 为 工 具 描 述 了 完成程 序设 计 、编译及 时序 仿真 ,然 作
能 的 描述 , 可 以 由计 算机 软 件进 行 就
自动 售 货 机 控 制 模 块 的 逻 辑 控 制 电 后 将 经 过 验 证 的 设 计文 件 下 载 到 选 择
可 以 避 免 这 些 烦 琐 的 过 程 ,直 接 利 用

基于FPGA的自动售货机控制器设计毕业论文

基于FPGA的自动售货机控制器设计毕业论文

基于FPGA的自动售货机控制器设计毕业论文目录第1章绪论 (1)1.1自动售货机的起源 (1)1.2自动售货机的现状与发展 (1)1.3自动售货机的研究方向 (2)1.4课题研究任务 (2)1.5 本章小结 (2)第2章开发设计基础 (3)2.1 EDA技术简介 (3)2.2 FPGA简介 (3)2.3 VHDL语言概述 (4)2.3.1 VHDL语言特点 (4)2.3.2 VHDL的优势 (4)2.4 Quartus II软件介绍 (5)2.5 硬件介绍 (5)2.6 本章小结 (6)第3章自动售货机设计方案 (7)3.1 自动售货机整体描述 (7)3.1.1 自动售货机功能要求 (7)3.1.2 自动售货机系统总框图 (7)3.1.3 自动售货机基本流程图 (8)3.2 购物模块 (10)3.2.1 购物模块整体描述 (10)3.2.2 扫描元件 (13)3.2.3 编译元件 (13)3.2.4 数据处理元件 (14)3.2.5 购物数码管译码元件 (15)3.3 定价模块 (15)3.3.1 定价模块整体描述 (16)3.3.2 定价元件 (17)3.3.3 价格BCD译码元件 (18)3.3.4 价格数码管译码元件 (19)3.4 投币模块 (19)3.4.1 投币模块整体描述 (19)3.4.2 投币二进制译码元件 (21)3.4.3 投币BCD译码元件 (22)3.4.4 投币数码管译码元件 (23)3.5 计时模块 (24)3.5.1 计时模块基本流程图 (24)3.5.2 计时模块生成器件 (24)3.5.3 计时模块总功能描述 (24)3.5.4. 仿真结果 (25)3.6 比价模块 (25)3.6.1 比价模块整体描述 (25)3.6.2 比价元件 (27)3.7 复位模块 (30)3.7.1 复位模块生成器件 (30)3.7.2 复位模块总功能描述 (30)3.7.3 仿真结果 (31)3.8 购物显示模块 (32)3.8.1 购物显示模块生成器件 (32)3.8.2 购物显示模块总功能描述 (33)3.8.3 购物显示模块波形仿真 (33)3.9 数码管显示模块 (34)3.10 顶层原理图 (34)3.11 本章小结 (36)第4章下载调试与结果验证 (37)4.1 下载调试 (37)4.2 输出显示 (38)4.2.1所购商品金额大于投币金额 (38)4.2.2所购商品金额等于投币金额 (38)4.2.3所购商品金额小于投币金额 (39)4.2.4有投币无商品选择 (40)4.3 本章小结 (40)第5章总结 (41)参考文献 (42)致谢 (43)基于FPGA的自动售货机控制器设计第1章绪论1.1自动售货机的起源公元前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。

基于FPGA的自动售货机设计

基于FPGA的自动售货机设计

目录摘要 (II)ABSTRACT................................................................................................................................ I II 第一章引言 (1)1.1自动售货机的简介 (1)1.2本课题研究的背景及意义 (1)1.3 设计方案 (1)第二章 FPGA自动售货机系统设计 (2)2.1 自动售货机的工作原理 (2)2.2 自动售货机的系统框图设计 (2)2.3 具体的实施方案 (3)第三章芯片的选择和介绍 (4)3.1 芯片选择 (4)3.2 CycloneⅡ系列器件概述 (4)3.3 CycloneⅡ系列器件的下载设计 (4)第四章自动售货机的硬件电路设计 (6)4.1 Altium Designer 6.0 简述 (6)4.2 FPGA芯片主模块电路设计 (6)4.2.1电源电路 (6)4.2.2 时钟信号电路 (7)4.2.3 下载配置电路 (8)4.2.4 I/O端口引出电路 (8)4.3外围电路 (9)4.3.1 开关按键电路 (9)4.3.2 显示模块电路设计 (10)4.3.3外围电路端口电路 (11)4.4 硬件电路的总原理图和PCB图 (12)4.4.1 FPGA芯片主模块总原理图和PCB图 (12)4.4.2 外围电路总原理图和PCB图 (12)第五章硬件电路的调试 (13)5.1 电路板的测试 (13)5.1.1 外围电路测试 (13)5.1.2 FPGA主模块电路板测试 (14)5.2 程序调试 (15)结论 (19)参考文献 (20)附录 (21)致谢 (23)摘要在当今国内外电子科技高速发展的今天,FPGA已经成为当今电子设计的一个主流。

FPGA 利用它的现场可编程特性,将原来的电路板级产品集成为芯片级产品,缩小体积,缩短系统研制周期,方便系统升级,具有容量大、逻辑功能强,而且兼有高速、高可靠性的优点。

北邮vhdl自动售货机实验报告(含代码)

北邮vhdl自动售货机实验报告(含代码)

《自动售货机》实验报告一.设计课程的任务要求基本要求:1.用2个数码管(disp5,disp4)显示钱数,以元为单位。

用3个按键(btn0,btn1,btn2)分别表示一元、五元、十元,每按一次按键,增加一次相应的钱数,上限99元。

2.再用3个按键(btn3,btn4,btn5)分别对应3种商品,其中,商品甲售价3元、商品乙售价8元、商品丙售价12元;3.买东西时,先输入钱币,再按对应的商品键。

每按一次商品键,钱数要相应地减少,同时有声光(蜂鸣器或发光二极管)提示购买成功。

剩余钱数大于3元可继续按商品键再次购买;当剩余钱数少于3元时,表示钱数的数码管disp5,disp4显示为零,同时用数码管disp0显示退出的钱数。

4.买东西时,按下商品键,若输入的钱数少于商品的价格,表示钱数的数码管disp5,disp4显示为零,同时用数码管(disp1、disp0)显示退出的钱数,并用蜂鸣器或发光二极管闪烁表示购买失败。

5.按下商品键时,用数码管disp2表示当前购买的商品,1代表商品甲,2代表商品乙,3代表商品丙。

6.用btn7做为退出功能键,退出键可以随时按下,按下后,数码管(disp5,disp4)显示为零,同时数码管(disp1、disp0)显示退出的钱数,表示结束购买,钱款全部退出。

提高要求:7.用点阵设计显示投币动画、出货动画,购买成功/失败动画;8.允许随时输入钱币,购买时,钱款不足有声光报警并等待追加钱币或选择别的商品;9.商品数量管理,有缺货提示;10.用点阵动态显示商品名称和库存数量等。

自拟其它功能二.系统设计(包括设计思路、总体框图、分块设计)1.设计思路:本实验为设计一个自动售货机。

由于本实验题目逻辑不太复杂,所以有两种设计思路可以选择。

第一种是用顺序结构和if when逻辑判断来实现。

第二种是用状态机来实现。

我选择的使用第一种。

总体来说可以将其分为两个大块。

第一个是接受键盘命令并通过逻辑判断向LED灯和数码管发出命令。

基于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)编程序。

基于FPGA的自动售货机控制系统

基于FPGA的自动售货机控制系统

基于FPGA的自动售货机控制系统摘要伴随着我国现代化进程的不断深入以及生活节奏的不断加快,如何能够快速、高效、便捷的购物也成为了商家和顾客不得不面临的一个问题。

自动售货机作为一种不同于传统的零售方式,以其不受时间地点限制、省时省力的优点,迅速的成为了人们的首选。

本课题主要是用EDA技术来实现对自动售货机控制系统的设计。

EDA技术以其特有的有开发周期短、设计成本低、运行速度快等天然优势,使开发出的产品可以迅速的投放到市场上去。

该课题主要是基于FPGA内部电路的编程设计,使用硬件描述语言(VHDL)对自动售货机控制系统进行描述,以Altera公司的EP1K30QC208-3芯片为目标器件详细阐述了自动售货机控制系统整体的设计思路以及工作原理,并且对自动收货机控制系统实现的货物信息的存储、进程控制、硬币处理、余额计算和显示功能加以仿真调试。

通过仿真调试,基于可编程器件FPGA 的自动售货机控制系统的设计基本达到了预期目标。

关键词:EDA,FPGA,自动售货机,VHDLVending machine control system based onFPGAAbstractWith the deepening of China's modernization process and the accelerating pace of life, it has become a problem for businesses and consumers to face that how to fast, efficient, convenient shopping. As a way different from the traditional retail, vending machines are not restricted by time and place, So vending machines quickly became the first choice for shopping election. The main topic is the use of EDA technology to achieve the vending machine control system design. EDA technology has a short development cycle, lower design costs, faster running speed, etc. That products can be developed rapidly to market upswing.The main topic is programming based on FPGA. Using hardware description language (VHDL) to describe the vending machine control system. Altera's EP1K30QC208-3 chip as the target device elaborated vending machine control system as well as the overall design concept works, and automatic control of receipt storing cargo information system implementation, process control, coin handling, balance calculation and display capabilities to simulation debugging. Through simulation debugging FPGA-based programmable device vending machine controller design basically achieve the desired goals.Key Words:EDA; FPGA; Vending machine; VHDL目录摘要 (1)Abstract (2)第一章引言 (1)1.1 自动售货机的发展历史 (1)1.2 自动售货机的发展现状 (1)1.3 自动售货机控制系统研究的目的和意义 (2)1.4 课题主要研究工作 (2)第二章关键技术 (3)2.1 EDA技术简介 (3)2.2 FPGA简介 (3)2.3 VHDL简介 (3)第三章系统硬件介绍 (5)3.1 KH310实验箱简单介绍 (5)3.2 时钟单元 (5)3.3 数码管显示单元 (5)第四章程序设计 (7)4.1 功能要求 (7)4.2 系统内部模块设计 (7)4.3 系统外部界面设计 (7)4.4 工作流程图 (8)4.5 系统各功能模块 (9)4.5.1 分频模块 (9)4.5.2 显示模块 (12)4.5.3 扫描模块 (14)4.5.4 主控模块 (16)第五章仿真调试 (21)5.1 顶层模块 (21)5.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)。

自动售货机控制模块VHDL 程序设计及FPGA 实现
近年来,随着集成电路技术的迅猛发展,特别是可编程逻辑器件的高速发展, EDA(Electronic Design Automation,电子设计自动化)技术成为电子设计工程师的新宠。

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。

相关文档
最新文档