首页 百科知识 9.3状态机的状态编码

9.3状态机的状态编码

时间:2022-10-15 百科知识 版权反馈
【摘要】:状态机的状态编码方式有多种,具体要视实际情况来决定,影响编码方式选择的因素主要有:状态机的速度要求、逻辑资源的利用率、系统运行的可靠性以及程序的可读性等方面。将状态编码直接输出作为控制信号,这就要求对状态机各状态的编码作特殊的选择,以适应控制的要求。表9.1是一个用于设计控制AD574采样的状态机的状态编码表。例如6个状态的状态机需由6个触发器来表达其对应状态,其编码方式如例9-10所示。

9.3 状态机的状态编码

状态机的状态编码方式有多种,具体要视实际情况来决定,影响编码方式选择的因素主要有:状态机的速度要求、逻辑资源的利用率、系统运行的可靠性以及程序的可读性等方面。编码方式主要有以下几种:

状态编码值直接输出型编码

这类编码方式最典型的应用实例就是计数器,计数器本质上是状态转移进程与输出进程合二为一的状态机。它的输出就是各状态的状态码值。将状态编码直接输出作为控制信号,这就要求对状态机各状态的编码作特殊的选择,以适应控制的要求。表9.1是一个用于设计控制AD574采样的状态机的状态编码表。

这个状态机由6个状态组成,从状态STATE0 到STATE5 各状态的编码分别为11100、00000、00100、00110、01100、01101,每一位的编码值都赋予了实际的控制功能,如最后两位(LK1和LK2)的功能是分别产生锁存低8位数据和高4位数据的脉冲信号。在程序中的定义方式如例9-7所示。

表9.1 控制AD574采样的状态机的状态编码表

img379

【例9-7】

img380

这种状态编码值直接输出型编码方式不需要输出译码,优点是:输出速度快、逻辑资源省;缺点是程序可读性差。

自然编码

这种编码方式最为简单,使用的触发器数量最少,剩余的非法状态也很少。如上面的6状态机,只需3个触发器即可。其状态编码方式如下例9-8所示。

【例9-8】

img381

这种顺序编码方式的缺点是:尽管节省了触发器,却增加了从一种状态向另一种状态转换的译码组合逻辑。另外,译码组合逻辑产生的竞争冒险等问题可能影响系统的稳定性。

格雷码编码

格雷码编码方式是对自然编码方式的一种改进,它的特点是任一对相邻状态的编码中只有一个二进制位发生变化,这十分有利于状态译码组合逻辑的简化,从而提高系统可靠性和运行速度。其编码方式如例9-9所示。

【例9-9】

img382

独热码编码

独热码编码方式就是用n个触发器来实现具有n个状态的状态机,状态机中的每一个状态都由其中一个触发器的状态表示,即当处于该状态时,对应的触发器为1,其余的触发器都置0。例如6个状态的状态机需由6个触发器来表达其对应状态,其编码方式如例9-10所示。

【例9-10】

img383

独热码编码方式尽管用了较多的触发器,但其简单的编码方式简化了状态译码逻辑,提高了状态转换速度。这对于在含有较多的时序逻辑资源而组合逻辑资源较少的FPGA器件中设计状态机是一个较好的解决方案

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈