关于EDA自动售货机的设计
来源:互联网 发布:系统还原后数据恢复 编辑:程序博客网 时间:2024/05/01 17:38
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
ENTITY moore 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 moore;
ARCHITECTURE be OF moore 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 reg;
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"; --现态Sl
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 corn;
END be;
USE IEEE.std_logic_1164.ALL;
ENTITY moore 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 moore;
ARCHITECTURE be OF moore 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 reg;
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"; --现态Sl
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 corn;
END be;
- 关于EDA自动售货机的设计
- Verilog自动售货机设计
- FPGA自动售货机设计
- 手机自动售货机的嵌入式系统设计
- ios开发之自动售货机的设计与实现
- VHDL 自动售货机设计与实现
- 详解自动售货机设计原理方案
- 自动售货机
- 自动售货机
- 测试自动售货机
- 自动售货机控制系统
- 自动饮料售货机
- 自动售货机代码
- 设计模式 状态模式 以自动售货机为例
- 设计模式 状态模式 以自动售货机为例
- 设计模式 状态模式 以自动售货机为例
- 设计模式之状态模式——自动售货机
- 设计模式 状态模式 以自动售货机为例
- iphone游戏之旅第四周
- Asp.net PageBase继承
- 《海棠》-苏轼
- linux make 基础: build host target 与交叉编译
- Hibemate基本概念和CURD详解
- 关于EDA自动售货机的设计
- HQL
- 用Visual Studio 2008成功编译GMSH 2.5
- 从面向对象设计谈c#中接口和委托的区别运用
- 树状数组和线段树
- Sql Server 中日期格式化函数
- linux shell脚本犯错
- 开篇
- 解决VS2010部分智能提示为英文的问题