首页 百科知识 型和型状态机的变种

型和型状态机的变种

时间:2022-10-26 百科知识 版权反馈
【摘要】:无论是MEALY型状态机还是MOORE型状态机,其输出信号都可能有“毛刺”发生,因为它们的输出信号都来自于组合逻辑。这实际是一种特殊类型的MOORE型状态机,采用特殊的状态编码使输出译码电路优化。这种类型的状态机的状态图如图8.8.1所示,在表示方法上和MOORE型状态机完全一样。用同步时钟输出信号的MEALY型状态机和普通的MEALY型状态机的不同之处在于:将时钟信号加载到附加的D触发器中,从而消除了“毛刺”。

8.8 MEALY型和MOORE型状态机的变种

无论是MEALY型状态机还是MOORE型状态机,其输出信号都可能有“毛刺”发生(这是由数字逻辑中的“竞争”而产生的),因为它们的输出信号都来自于组合逻辑。在同步电路中,一般情况下“毛刺”并不会产生重大影响。这是因为“毛刺”仅发生在时钟有效边沿的一小段时间内,只要在下一个时钟有效边沿到来之前“毛刺”消失即可(即信号达到稳定)。但是,如果把状态机的输出信号作为三态使能控制或时钟来使用,就要必须保证状态机的输出没有“毛刺”。

要输出信号不带“毛刺”的状态机,可采用状态机的以下三个变种:

(1)直接把状态机的状态作为输出信号;

(2)在MOORE型状态机的基础上,用同步时钟输出信号;

(3)在MEALY型状态机的基础上,用同步时钟输出信号。

下面分别对状态机的三个变种给予说明。

1.直接把状态机的状态作为输出信号

直接把状态机的状态作为输出信号(output=state),是状态机的一种特殊类型。要使用这种变种的状态机,必须在VHDL源代码中对状态的编码加以明确的规定,使状态和输出信号的取值一致。这实际是一种特殊类型的MOORE型状态机,采用特殊的状态编码使输出译码电路优化

这种类型的状态机的状态图如图8.8.1所示,在表示方法上和MOORE型状态机完全一样。但是它的框图(见图8.8.2)却明白无误地指出输出信号直接来自状态寄存器,因而保证了输出信号上没有“毛刺”。

img414

图8.8.1 直接把状态机的状态作为输出信号的状态机的状态图

img415

图8.8.2 直接把状态机的状态作为输出信号的状态机的框图

作为一个实例,下面是直接把状态机的状态作为输出信号的MOORE型状态机的VHDL源代码。

img416

img417

2.用同步时钟输出信号的MOORE型状态机

用同步时钟输出信号的MOORE型状态机和普通的MOORE型状态机的不同之处在于:将时钟信号加载到附加的D触发器中,从而消除了“毛刺”。因此,在输出端得到的信号值的时间要比普通的MOORE型状态机晚一个时钟周期。

图8.8.3为这种状态机的状态图,图8.8.4为这种状态机的框图。

img418

图8.8.3 用同步时钟输出信号的MOORE型状态机的状态图

img419

图8.8.4 用同步时钟输出信号的MOORE型状态机的框图

作为一个实例,下面是用同步时钟输出信号的MOORE型状态机的VHDL源代码。

img420

img421

3.用同步时钟输出信号的MEALY型状态机

用同步时钟输出信号的MEALY型状态机和普通的MEALY型状态机的不同之处在于:将时钟信号加载到附加的D触发器中,从而消除了“毛刺”。因此,在输出端得到的信号值的时间要比普通的MEALY型状态机晚一个时钟周期。

图8.8.5为这种类型状态机的状态图,图8.8.6为其框图。

img422

图8.8.5 用同步时钟输出信号的MEALY型状态机的状态图

img423

图8.8.6 用同步时钟输出信号的MEALY型状态机的框图

作为一个实例,下面是用同步时钟输出信号的MEALY型状态机的VHDL源代码。

img424

img425

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

我要反馈