【问题标题】:Mealy v/s. Moore米利与摩尔
【发布时间】:2010-10-24 16:58:25
【问题描述】:

Mealy & Moore 类型的有限状态机有什么区别?

【问题讨论】:

    标签: state-machine


    【解决方案1】:

    在摩尔机器中,产生的输出与机器的当前状态相关联,并且仅与机器的当前状态相关联。相反,在 Mealy 机器中,它与状态和特定输入相关联。

    从实际的角度来看,您将输出放置在摩尔机器中的状态上(因此每个状态都有其输出),而在后者上您有转换输出(因此输出是从当前状态和传出过渡)

    【讨论】:

    • 一种类型总是可以转换为另一种类型吗?
    • 不是从理论的角度来看。从实际的角度来看,摩尔机中的输出函数是函数state -> output,而 Mealy 机中的输出函数是函数state, input -> output。这意味着,如果您分解 Mealy 机器的每个状态,为每个传出转换添加特定输入,您也可以模拟相同的行为,即使它在概念上有所不同。
    • 任何 Mealy 机器都可以转换为 Moore 机器。
    • @dekpos:是的,你可以。 Mealy to Moore 需要将每个 Mealy 状态拆分为具有不同输出的输入数量。因此,如果 Mealy 状态有两个输入和两个不同的输出,您可以在 Moore 机器中将该 Mealy 状态拆分为两个状态,其中每个新状态的输出将与 Mealy 机器中的两个转换输出之一匹配。对于相反的情况,您只需将状态的输出移动到传入的转换。这理论上的。
    • @Jack:说一个人可以使用输出与其状态匹配的摩尔机器和一个纯组合电路(无反馈路径)的组合来生产任何想要的 Mealy 机器是否正确作为原始机器的输入及其状态输出的输入,然后为整个电路生成所需的输出?
    【解决方案2】:

    摩尔机器输出只是机器状态的函数, Mealy 机器输出是机器状态及其输入的函数。

    【解决方案3】:

    举例说明/轶事。

    这也许最好用一个例子和一个轶事来说明。

    我讨厌机场,也讨厌去机场,但我喜欢在飞机上。在上飞机之前,我必须进入三种不同的状态:

    1. 状态:在出租车中(事件:然后我支付车费,并转换到下一个状态:)
    2. 状态:在休息室(事件:等待 2 小时,然后转换到下一个状态:)
    3. 状态:平面内

    但结果如何?

    在 Mealy 机器中,您来自的先前状态会产生影响 - 如何 您到达某个地方非常重要。在摩尔机器中,如何进入状态没有任何区别。

    让我们在上面添加一个结果来创建状态机的摩尔表示:

    状态机的摩尔表示示例:

    1. 状态:在出租车中(事件:支付车费然后过渡到下一个 状态)。 (结果:不高兴)。
    2. 状态:In Lounge(事件:等待 2 小时,然后转换到下一个状态)(结果:不开心)
    3. 状态:在飞机上(结果:快乐)。

    使用摩尔表示,结果直接附加到状态。使用 Mealy 表示 - 特定的结果/输出取决于您来自哪里。比方说,如果我不用坐出租车就可以到飞机上,不用在休息室等,那我就很高兴了。输入会产生影响。您来自哪里很重要。 Mealy 表示状态机允许在图中显示这一点。换句话说,输出/结果在转换期间显示在状态之外。

    【讨论】:

      【解决方案4】:

      摩尔机是离散的动态系统,可以使用TLA+ 语法表示如下:

      /\ x[k + 1] = f[x[k], u[k]]
      /\ y[k] = g[x[k]]
      

      其中x 状态,u 输入,y 输出,f 描述转换关系(离散动力学),g 输出映射(这里是状态标记)和k表示时间(序列中的索引)。

      Mealy 机器的形式稍微更一般:

      /\ x[k + 1] = f[x[k], u[k]]
      /\ y[k] = g[x[k], u[k]]
      

      请注意,现在g 不再是状态标签,而是标签。

      它们等价,特别是摩尔机器是严格因果的,而 Mealy 机器不是。

      有关详细信息,请参阅 Lee 和 Seshia,Introduction to Embedded Systems,LeeSeshia.org,第 58 页。

      【讨论】:

        【解决方案5】:

        Moore 仅在有效时钟脉冲后发生变化,而 Melay 在每个时钟沿后发生变化(“如果外部输入发生变化”)

        【讨论】:

          【解决方案6】:
          • Mealy 机器输出取决于 当前状态当前输入 Moore 输出仅取决于当前状态

          • 一般Mealy机器比Moore机器有发烧状态

          • Mealy输出会在时钟边缘发生变化,但Moore输出会在逻辑完成后立即发生变化。

          • Mealy 对输入的反应更快 需要摩尔登录来解码输出,因为它有更多的电路延迟

          【讨论】:

            猜你喜欢
            • 2010-09-28
            • 2016-11-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-10
            • 1970-01-01
            相关资源
            最近更新 更多