1、有限状态机的定义:
有限状态机是许多数字系统的核心部件,由时序逻辑和组合逻辑构成,能够根据控制信号按照预先设定的状态进行状态转移。有限状态机分为Moore型状态机和Mealy型状态机。
Moore型状态机:输出只和状态有关,与输入无关。
Mealy型状态机:输出不仅和状态有关而且和输入有关。
2、有限状态机的描述方法
有限状态机的描述方法通常有三种,一段式状态机,两端式状态机,三段式状态机。
一段式状态机:整个状态机采用一个always模块,既描述状态转移,又描述状态的输入和输出
两段式状态机:采用两个always模块实现状态机的功能,其中一个采用同步时序逻辑描述状态转移,另一个always采用组合逻辑描述状态转移规律及状态的输出。
三段式状态机:采用三个always模块实现状态机的功能,一个always模块采用同步时序描述状态转移,一个always采用组合逻辑判断状态转移条件,另一个always模块使用同步时序电路描述状态的输出。
总结:
两段式状态机与一段式状态机相比,将同步时序和组合逻辑分开实现,不仅便于阅读、理解、维护,更重要的是利于综合器优化代码。
两段式状态机用组合逻辑实现状态的输出,组合逻辑很容易产生毛刺,而且不利于约束。
三段式状态机与两段式状态机相比,关键在于根据状态转移规律,在上一状态根据输入条件判断出当前状态的输出,从而在不插入额外时钟节拍的前提下实现了寄存器输出。
3、有限状态机的状态编码方式
常见的编码方式有:二进制编码、格雷码、独热码。
二进制编码 | 格雷码 | 独热码 |
00 | 00 | 0001 |
01 | 01 | 0010 |
10 | 11 | 0100 |
11 | 10 | 1000 |
格雷码:相邻之间只有一位发生变化,编码密度高
独热码:任何状态只有一位为1,其余为0,编码密度低;特点为每一个状态均有自己的触发器,所以若有N个状态就有N个触发器,任何时刻只有一组状态编码,缺点是会产生较大的电路,但是相对的使用独热码状态编码对帧错相当有帮助。
具体的原理解释,请参考:
来源:CSDN
作者:笼子里的鸟
链接:https://blog.csdn.net/gaoyang314613767/article/details/103596924