📜  Moore 到 Mealy 机器的转换(第 10 组)(1)

📅  最后修改于: 2023-12-03 15:03:02.701000             🧑  作者: Mango

Moore 到 Mealy 机器的转换(第 10 组)

概述

在数字电路中,Moore 和 Mealy 状态机是两个主要的状态机模型。它们都是有限状态自动机,但它们的输出和状态转换不同。

  • 在 Moore 状态机中,输出只依赖于当前状态,输出信号与状态转换无关。因此,一个 Moore 状态机可以用一个状态表或图来表示。
  • 在 Mealy 状态机中,输出信号与状态转换有关,即它不仅依赖当前状态,还依赖输入信号。因此,一个 Mealy 状态机需要用一个状态转换图来表示。

本文将介绍如何将一个给定的 Moore 状态机转换为一个等效的 Mealy 状态机。

Moore 状态机

我们以一个简单的例子 Moore 状态机开始。它有两个状态 S0 和 S1,和两个输入信号 X 和 Y。

| Present State | Input | Next State | Output | |---------------|-------|------------|--------| | S0 | X=0 | S0 | 0 | | S1 | X=0 | S0 | 0 | | S0 | X=1 | S1 | 1 | | S1 | X=1 | S1 | 0 |

我们可以用一个状态图来表示这个状态机。

graph TD
    S0-->|X=0, Y=0|S0((S0/0))
    S0-->|X=1, Y=0|S1((S1/1))
    S1-->|X=1, Y=0|S1((S1/0))
    S1-->|X=0, Y=0|S0((S0/0))

其中,圆括号表示状态和输出,斜线后面跟着输出信号。

Mealy 状态机

现在,我们将转换这个 Moore 状态机为一个等效的 Mealy 状态机。我们可以通过将输出信号从状态转换中移动到状态之后来完成这个任务。这样,我们就可以将输出信号与状态转换组合成一个 Mealy 模型。

Moore 状态机转换为 Mealy 状态机的规则如下:

  • 对于每个状态 s,找到所有从该状态开始的所有状态转换。(s,i,s',o)
  • 对于每个状态转换 (s,i,s'), 将该转换替换为以下两个状态转换:(s,i,s') 和 (s',i,o)。

按照这个规则,我们来转换一下上面的 Moore 状态机。我们可以得到以下 Mealy 状态机。

| Present State | Input | Next State | Output | |---------------|-------|------------|--------| | S0 | X=0 | S0 | 0 | | S1 | X=0 | S0 | 0 | | S0 | X=1 | S1 | 1 | | S1 | X=1 | S1 | 0 |

可以看出,输出信号从状态转换中移动到后面,每个状态转换被替换成两个状态转换,其中一个包含输出信号。

我们也可以用一个状态转换图来表示这个状态机。

graph TD
    S0-->|X=0|S0((S0))
    S1-->|X=0|S0((S0))
    S0-->|X=1|S1((S1/1))
    S1-->|X=1|S1((S1/0))
总结

在本文中,我们介绍了如何将一个给定的 Moore 状态机转换为一个等效的 Mealy 状态机。我们通过将输出信号从状态转换中移动到状态之后,将每个状态转换替换成两个状态转换来实现这一目标。这个技巧可以帮助我们更好地理解和设计数字电路中的有限状态自动机。