📜  TOC 中的 Mealy 和 Moore 机器(1)

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

TOC 中的 Mealy 和 Moore 机器

在数字电路设计中,Mealy 和 Moore 机器是两种基本的状态机模型。它们在输入和输出信号的定义和状态转换的方式上有所不同。

Mealy 机器

Mealy 机器的输出依赖于输入和当前状态。具体来说,每个状态都有一个输出函数,用于生成一个或多个输出信号。这个输出函数通常是一个布尔表达式,其中包含输入和状态的变量。

下面是一个 Mealy 机器的例子,它的 输入是 x,输出是 z

graph TD;
  A((S0))-->B((S1));
  A-->C((S2));
  B-->D((S3));
  C-->D;
  D-->E((S4));
  B-- x=0, z=0 -->D;
  B-- x=1, z=1 -->D;
  C-- x=0, z=1 -->D;
  C-- x=1, z=0 -->D;

在这个例子中,输入 x 被送到状态 S1 和状态 S2。状态 S1S2 都有一个输出函数,分别是 z=1z=0。然后,下一个状态是 S3,根据输入 x 以及另一个属性 y 来确定它的值。

Moore 机器

相比之下,Moore 机器的输出只依赖于当前状态。每个状态都有一个特定的输出值,不管输入是什么。这个特定的输出值被称为状态的输出,它不能被输入改变。

以下是一个 Moore 机器的例子,它的状态S,输出 z

graph TD;
  A((S0))-->B((z=0));
  A-->C((z=1));
  B-- x=0 -->D((S1));
  B-- x=1 -->E((S2));
  C-- x=0 -->D;
  C-- x=1 -->E;
  D-->B;
  E-->C;

在这个例子中,Moore 机器的每个状态都有固定的输出值。例如,在状态 S0 中,输出 z 的值是 0。然后,输入 x 是状态转换的触发器,当输入是 0 时将移到下一个状态 S1,输出 z 的值是 0

最后,需要注意的是,Mealy 机器和 Moore 机器都是存在的,它们的不同之处是输出是否与输入信号相关。在实际的电路和程序设计中,需要仔细分析特定问题的需要,选择最适合的状态机模型。