欢迎访问文稿网!

型和型状态机的变种

范文之家 分享 时间: 加入收藏 我要投稿 点赞

型和型状态机的变种

    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

221381
领取福利

微信扫码领取福利

微信扫码分享