benjonc 2020-06-25
时序电路按照信号输出方式分: Mealy型 Moore型
从结构上分:
单进程和多进程.
从状态表达方式分:
符号化状态机和确定状态编码的状态机.
从状态编码方式分:
顺序编码、一位热码编码和其他编码方式状态机
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评述
三部分
状态声明
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.
Just like the Moore FSM except a slight difference.
The output is related to not only the current state, but also the input.
Moore FSM that Recognizes Sequence “10”
Mealy FSM that Recognizes Sequence “10”