关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 自动售货机控制模块 VHDL 程序设计及 FPGA 实现

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

作者: 时间:2011-01-02 来源:网络 收藏

1)状态定义:S0表示初态,S1表示投入5角硬币,S2表示投入1元硬币,S3表示投入1元5角硬币,S4表示投入2元硬币。

本文引用地址:https://www.eepw.com.cn/article/162525.htm


2)输入信号:取投币信号为输入逻辑变量,用两位的矢量state_inputs表示。state_inputs(0)表示投入1元硬币,state_inputs(1)表示投入5角硬币。输入信号为1表示投入硬币,输入信号为0表示未投入硬币。


3)输出信号:给出矿泉水和找零为两个输出变量,用两位的矢量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_inputs: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; --状态信号的定义
BEGIN
reg:PROCESS(reset,clk) --时序进程
BEGIN
IF reset='1' THEN current_state=S0; --异步复位
ELSIF rising_edge(clk) THEN
current_state=next_state; --状态转换
END IF;
END PROCESS;
corn:PROCESS(current_state,state_inputs) --组合进程
BEGIN
CASE current_state IS
WHEN S0=>comb_outputs=00; --现态S0
IF 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 S1=>comb_outputs=00; --现态S1
IF 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; --现态S2
IF state_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=10; --现态S3
IF 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; --现态S4
IF 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;
END CASE;
END PROCESS;
END state;



关键词: 收发器

评论


相关推荐

技术专区

关闭