【FGPA】有限状态机

时序电路描述

时序电路分类

时序电路按照信号输出方式分: Mealy型 Moore型

从结构上分:

  单进程和多进程.

从状态表达方式分:

  符号化状态机和确定状态编码的状态机.

从状态编码方式分:

  顺序编码、一位热码编码和其他编码方式状态机

有限状态机(Finite-state machine, FSM)

Moore Machine

  输出仅是当前状态的函数

Mealy Machine

  输出是当前状态和输入的函数

 

 

 


带有记忆的任何电路都是一个有限状态机

  计算机可被视为多个状态机的一个集合

有限状态机的设计包括

  定义状态

  定义状态之间的转换方式

  状态机输出

状态机的数据类型必须是枚举的:

TYPE enume_name IS (value1, value2, value3,… valueN);

当前状态值必须是

signal: SIGNAL current_state: state_type;

为确定状态转移,

  需要: 在IF-THEN语句中使用CASE语句检查时钟条件

为确定状态机输出:

  使用条件或选择信号赋值语句 或者使用CASE语句

数据类型

  标准数据类型(预定义数据类型):bit、std_logic、…

  自定义数据类型:枚举类型、自定义整数类型… 枚举类型

 

Moore FSM 例子

 

 

 

 

Moore FSM评述

三部分

  状态声明

    Type state_type is (s0, s1, s2, s3);

    Signal state : state_type;

  状态转移进程

    Case 语句用来检查 current state.

    IF-THEN-ELSE 用来确定 next state.

  组合逻辑进程

    输出信号取决于 current state.

    只有状态出现在敏感表中,因为 Moore FSM 的输出仅取决于 current state.

三进程的Moore FSM

 

 

 


 


Mealy FSM

Just like the Moore FSM except a slight difference.

The output is related to not only the current state, but also the input.


A Moore FSM 例子

Moore FSM that Recognizes Sequence “10”

A Mealy FSM

Mealy FSM that Recognizes Sequence “10”

原文地址:https://www.cnblogs.com/Osea/p/13192416.html