一、有限状态机(Finite State Machine, FSM)基本概念
有限状态机是由寄存器组和组合逻辑构成的硬件时序电路;
其状态只能在同一时钟跳变沿从一个状态转向另一个状态;状态的选择不仅取决于各个输入值,还取决于当前状态,可用于产生在时钟跳变沿时刻开关的复杂的控制逻辑,是数字逻辑的控制核心
1.有限状态机的优势
- 高效的顺序控制逻辑
克服了纯硬件数字系统顺序方式控制不灵活的缺点,在其运行方式上类似于控制灵活和方便的CPU,是高速高效控制的首选 - 容易利用现成的EDA工具进行优化设计
状态机构建简单,设计方案相对固定,使用HDL综合其可以发挥其强大的优化功能;
性能良好的综合器都具有许多可控或自动优化状态机的功能 - 稳定性能
状态机容易构成良好的同步时序逻辑模块,可用于解决大规模逻辑电路设计中的竞争和冒险现象 - 高速性能
在高速通信和高速控制方面,状态机更有其巨大的优势,一个状态机的功能类似于CPU的功能 - 高可靠性能
状态机是由纯硬件电路构成,不存在CPU运行软件过程中许多固有的缺陷;
状态机的设计中能够使用各种容错技术;
当状态机进入非法状态并从中跳出进入正常状态的时间短暂,对系统的危害不大。
2.有限状态机的分类
一般来说,状态机的基本操作主要有:状态机的内部状态转换和产生输出信号序列
根据电路的输出信号是否与电路的输入有关,可以将状态机划分为:Moore型状态机(输出只与当前电路状态有关,保持输出的稳定性和可预测性);Mealy型状态机(输出与当前电路状态和当前电路输入有关,来快速响应输入变化)
3.有限状态机的描述方法
- 状态转移图:紧凑,适合描述较为简单的系统
- 算法状态机(ASM)图
算法状态机图更像是流程图,能较好地描述复杂系统中状态的转换和动作
这两种表示方法包含了相同的信息,都包含了状态机的输入、输出、状态和转换。
二、有限状态机的设计
1.状态机的设计步骤
- 依据具体的设计原则,确定采用Moore型状态机还是Mealy型状态机
- 分析设计要求,列出状态机的所有状态,并对每一个状态进行状态编码
- 依据状态转移关系和输出函数,画出状态图
- 依据所画的状态图,采用硬件描述语言对状态机进行描述
2.状态图的完备性和互斥性检查
- 完备性: 对于每一个状态,将所有脱离这一状态的条件表达式进行逻辑或运算,如果结果为1