EDA技术与VHDL课件-第六章.pptEDA技术与VHDL第六章有限状态机设计
状态机的分类:
按信号输出方式:
Moore型--依赖时钟的同步输出状态机,输出信号是当前状态的函数;
Mealy型--异步输出状态机,输出信号是当前状态和当前输入的函数。
按状态表达方式:符号化和确定状态编码;
按编码方式:顺序编码和一位热码编码等。
一般有限状态机的设计
包含说明部分,时序进程,组合进程和辅助进程等几个部分。
1. 说明部分
说明部分一般放在结构体的ARCHITECTURE 和BEGIN之间,例如:
ARCHITECTURE … IS
TYPE states is (st0,st1,st2,st3);
SIGNAL current_state,next_state: states;
类型定义语句TYPE
2. 时序进程
负责状态机运转和在时钟驱动下负责状态转换的进程。
3. 组合进程
根据外部输入的控制信号和当前状态的状态值确定下一个状态的去向。
辅助进程
用于配合状态机工作的组合进程或时序进程,如完成某种算法进程,或稳定输出等功能。
设计实例
LIBRARY IEEE;
USE ;
ENTITY s_machine 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 ENTITY s_machine;
ARCHITECTURE behave OF s_machine IS
TYPE states is(st0,st1,st2,st3);
SIGNAL current_state,next_state: states;
BEGIN
REG:process(reset,clk)
begin
if reset='1' then
current_state<=st0;
elsif (clk='1'AND clk'event)then
current_state<=next_state;
end if;
end process;
COM:process(current_state,state_inputs)
begin
case current_state is
when st0=>comb_outputs<="00";
if state_inputs="00" then
next_state<=st0;
else
next_state<=st1;
end if;
EDA技术与VHDL课件-第六章 来自淘豆网www.taodocs.com转载请标明出处.