欢迎访问文稿网!

型和型状态机的变种

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

型和型状态机的变种

    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
领取福利

微信扫码领取福利

微信扫码分享

阅读并接受《用户协议》
注:各登录账户无关联!请仅用一种方式登录。


用户注册协议

一、 本网站运用开源的网站程序平台,通过国际互联网络等手段为会员或游客提供程序代码或者文章信息等服务。本网站有权在必要时修改服务条款,服务条款一旦发生变动,将会在重要页面上提示修改内容或通过其他形式告知会员。如果会员不同意所改动的内容,可以主动取消获得的网络服务。如果会员继续享用网络服务,则视为接受服务条款的变动。网站保留随时修改或中断服务而不需知照会员的权利。本站行使修改或中断服务的权利,不需对会员或第三方负责。

关闭