当前位置:首页 >> 信息与通信 >>

自动售货机控制系统VHDL有限状态机实现


自动售货机控制系统 VHDL 有限状态机实现
1 引言 有限状态机 FSM(Finite State Machine)及其设计技术是实用数字系统设计中实现高效 率、高可靠逻辑控制的重要途径。传统的状态机设计方法需进行繁琐的状态分配、绘制状态 表、化简 次态方程等,而利用 VHDL 可以避免这些繁琐的过程,直接利用状态转换图进行状 态机的描述,所有的状态均可表达为 CASE_WHEN 结构中的一条 CASE 语句,而状态的转移则 通过 IF_THEN_ELsE 语句实现。此外,与 VHDL 的其它描述方式相比,状态机的 VHDL 表述丰 富多样,程序层次分明,结构清 晰,易读易懂;在排错、修改和模块移植方面也有其独到 的特点。 2 自动售货机控制系统的实现 2.1 自动售货机功能描述及控制系统组成 设计一个自动售货机的逻辑控制电路。它有两个投币口分别为一元投币口和五角投币 口,假设每次只能投入一枚一元或五角硬币,投入一元五角硬币后机器自动 给出一瓶矿泉 水,投入两元硬币后,在给出一瓶矿泉水的同时找回一枚五角的硬币。图 1 为自动售货机控 制系统方框图,由投币信号处理模块和功能控制模块组成。

2.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 shj_ctrl IS PORT(A,B:IN STD_LOGIC;

clk:IN STD_LOGIC; Z,Y:OUT STD_LOGIC); END shj_ctrl ARCHITECTURE beha OF shi_ctrl 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;

上面程序中,A、B 分别为一元硬币和五角硬币驱动信号,Z 为矿泉水输出信号,Y 为找 钱输出信号。通过对程序分析和仿真可以看出,A 和 B 的驱动信号的持 续时间必须控制在 clk 时钟周期内,如果驱动信号时间太短,系统检测不到投币信号,时间太长,会误认为是 两次或多次投币,造成误操作。因此,要使整个控制 系统可靠运行,还必须设计专门投币 输入信号处理电路。

library ieee; use ieee.std_logic_1164.all; package state_pack is type state is (qa,qb); end state_pack; library ieee; use ieee.std_logic_1164.all; use work.state_pack.all; entity control is port( start,cp,T:in std_logic; d,b:in integer range 0 to 9; en1,en2,en3:out std_logic; reset,out1,reject1,reject2:out std_logic; c:out integer range 0 to 9); end control; architecture con of control is signal current_state:state:=qa; begin process variable var: integer range 0 to 9; begin wait until cp='1'and cp'event; if start='1'then current_state<=qa; c<=0;reject1<='0';reject2<='0';out1<='0'; en1<='1';reset<='0';en2<='0';en3<='0'; end if; case current_state is when qa=> if d=0 then current_state<=qa;c<=0;reject1<='0';reject2<='0'; out1<='0';en1<='1'; reset<='1';en2<='0';en3<='0'; else current_state<=qb;var:=d; end if; when others=>

en1<='0';reset<='0';en2<='1';en3<='1'; if b=0 then reject1<='1';reject2<='0';out1<='0'; elsif (T='0'and b<var) then c<=0;reject1<='1';reject2<='0';out1<='0';reset<='0'; en1<='0';en2<='1';en3<='1'; elsif (T='0'and b>=var)then c<=b-var;reject1<='1';reject2<='1';out1<='1';reset<='0'; en1<='0';en2<='0';en3<='1'; elsif(T='1'and b<var)then c<=b;reject1<='1';reject2<='1';out1<='0';reset<='1'; en1<='1';en2<='0';en3<='0'; end if; end case; end process; end con;


相关文章:
自动售货机控制系统VHDL有限状态机实现.doc
自动售货机控制系统VHDL 状态机实现传统的状态机设计方法需进行繁琐的状态分配、 绘制状态表、 化简次态方程等, 而利用 VHDL 可以避免这些繁琐的过程, 直接...
基于FPGA的自动售货机主控制系统的设计与实现_图文.pdf
赖义汉.LAI Yi-han 自动售货机控制系统VHDL有限状态机实现[期刊论文
自动售货机控制系统VHDL有限状态机实现.doc
自动售货机控制系统VHDL有限状态机实现 - 自动售货机控制系统 VHDL 有限状态机实现 1 引言 有限状态机 FSM(Finite State Machine)及其设计技术是实用数字系统设计....
自动售货机控制系统的VHDL实现.doc
自动售货机控制系统VHDL实现 - 自动售货机控制系统VHDL 实现 目录
自动售货机的VHDL实现.doc
货机设计报告 3、导言该系统用于模仿自动售货机,完成自动售货机的核心控制功能...系统设计的初步方法 能利用VHDL语言熟练地编写简 语言熟练地编写简 单状态机程序...
自动售货机的VHDL实现.pdf
自动售货机VHDL实现_电子/电路_工程科技_专业资料。自动售货机 组员: 姓名:...4、正文(1)总体方案设计 本系统采用状态机的架构,将系统分为7个状态:开始、...
自动售货机控制模块 VHDL 程序设计及 FPGA 实现.doc
自动售货机控制模块 VHDL 程序设计及 FPGA 实现_信息与通信_工程科技_专业资料...状态机 VHDL 程序设计 有限状态机 FSM(Finite State Machine)及其设计技术是实用...
自动售货机控制模块VHDL程序设计及FPGA实现_图文.pdf
自动售货机控制模块VHDL程序设计及FPGA实现 - Applications 应用设计:嵌入式系统 自动售货机控制模块 VHDL 程序设计 及 FPGA 实现 哈尔滨理工大学 王鹏 陈亭 ...
基于VHDL的自动贩卖机控制系统.doc
基于VHDL的自动贩卖机控制系统 - 自动售货机控制系统VHDL 实现 目录
自动售货机控制模块VHDL程序设计及FPGA实现 (1)_图文.pdf
嵌入式系统 自动售货机控制模块 VHDL 程序设计 及 FPGA 实现哈尔滨理工大学 ...状态机VHDL程序设计 有限状态机F S M(F i n i t e S t a t e ...
EDA课程设计自动售货机控制系统 2.doc
有限状态机 FSM(Finite State Machine)及其设计技术是实用 数字系统设计中实现高...自动售货机功能控制模块的 VHDL 实现 根据上面所示的状态转换图,用 VHDL 语言中...
EDA课程设计自动售货机控制系统.doc
有限状态机 FSM(Finite State Machine)及其设计技术是实用 数字系统设计中实现高...自动售货机功能控制模块的 VHDL 实现 根据上面所示的状态转换图,用 VHDL 语言中...
用VHDL实现智能洗衣机控制系统有限状态机的设计.pdf
智能洗衣机的控制系统,说明了在 ISE 开发系统下,利用 VHDL 设计有限状态 硬件描述语言 有限状态机 高密度 现场可编程逻辑器件 化和电路设计可由计算机自动完成,...
【AND系列】VHDL_自动售货机控制系统设计.txt
【AND系列】VHDL_自动售货机控制系统设计_信息与通信_工程科技_专业资料。简单的用VHDL语言介绍了自动售货机的控制系统设计 8.21 自动售货机控制系统设计 设计...
自动售货机控制系统设计_图文.ppt
自动售货机控制系统设计 - 自动售货机控制系统设计仿真 设计要求简述 ? ? ? ? ? 设计制作一个自动售货机控制系统。 该系统能完成货物信息存储,进程控制,硬币...
HDL(Verilog)课程设计报告(自动售货机).doc
自动售货机,利用 QuartusⅡ软件编写 verilog HDL 硬件描述语言程序以实现自动...第五章总结 VHDL 语言有限状态机设计控制电路,可大大降低设计难度和时间,提高设...
第7章 VHDL有限状态机设计_图文.ppt
EDA技术实用教程 第7章 VHDL有限状态机设计 有限...要组成部分,是实现高效率高可靠性逻辑控制的重要途 ...自动售货机控制器 输入信号5,10,25美分,必要的...
基于vhdl的自动售货机控制电路设计本科论文.doc
基于vhdl自动售货机控制电路设计本科论文 - ###本科毕业论文 (设计) 题目 基于 VHDL自动售货机控制电路设计 学生 ### 指导教师 ### 年级 ### ...
基于VHDL的自动售货机系统设计.pdf
基于VHDL自动售货机系统设计_电子/电路_工程科技_专业资料。采用自顶向下的...完成顶层设计实体.主控模块使用有限状态机完成,将基本功能的实现转换为状态的转移...
基于Multisim的简易自动售货机控制系统设计与仿真_陈齐平.pdf
现代自动售货机的内 部控制系统大多采用 VHDL 描述语言 ,用有限状态机进行系统...基于 Multisim 模块化设计 , 通过逻辑电路实现自动售货机的基本功能 , 简化自动...
更多相关标签: