📜  摩尔和小规模机器

📅  最后修改于: 2020-11-26 10:09:57             🧑  作者: Mango


有限自动机可能具有与每个过渡相对应的输出。产生输出的有限状态机有两种类型-

  • 机器
  • 摩尔机

机器

Mealy机器是FSM,其输出取决于当前状态以及当前输入。

可以用6个元组(Q,∑,O,δ,X,q 0 )描述,其中-

  • Q是一组有限的状态。

  • 是一组有限的符号,称为输入字母。

  • O是一组有限的符号,称为输出字母。

  • δ是输入转换函数,其中δ:Q×∑→Q

  • X是输出转换函数,其中X:Q×∑→O

  • Q 0是从那里的任何输入被处理(Q 0∈Q)的初始状态。

Mealy机器的状态表如下所示-

Present state Next state
input = 0 input = 1
State Output State Output
→ a b x1 c x1
b b x2 d x3
c d x3 c x1
d d x3 d x2

上述Mealy机器的状态图为-

机器状态图

摩尔机

摩尔机是FSM,其输出仅取决于当前状态。

摩尔机器可以由6个元组(Q,∑,O,δ,X,q 0 )描述,其中-

  • Q是一组有限的状态。

  • 是一组有限的符号,称为输入字母。

  • O是一组有限的符号,称为输出字母。

  • δ是输入转换函数,其中δ:Q×∑→Q

  • X是输出转换函数,其中X:Q→O

  • Q 0是从那里的任何输入被处理(Q 0∈Q)的初始状态。

摩尔机的状态表如下所示-

Present state Next State Output
Input = 0 Input = 1
→ a b c x2
b b d x1
c c d x2
d d d x3

上面的摩尔机的状态图是-

摩尔机状态图

Mealy机器与Moore机器

下表突出显示了区分Mealy机器和Moore机器的要点。

Mealy Machine Moore Machine
Output depends both upon the present state and the present input Output depends only upon the present state.
Generally, it has fewer states than Moore Machine. Generally, it has more states than Mealy Machine.
The value of the output function is a function of the transitions and the changes, when the input logic on the present state is done. The value of the output function is a function of the current state and the changes at the clock edges, whenever state changes occur.
Mealy machines react faster to inputs. They generally react in the same clock cycle. In Moore machines, more logic is required to decode the outputs resulting in more circuit delays. They generally react one clock cycle later.

从摩尔机到小机

算法4

输入-摩尔机

输出-小机器

步骤1-采取空白的Mealy Machine过渡表格式。

步骤2-将所有摩尔机的过渡状态复制到此表格式。

步骤3-在摩尔机状态表中检查当前状态及其对应的输出;如果状态Q i的输出为m,则将其复制到Mealy Machine状态表的输出列中,无论Q i在下一状态出现的位置。

让我们考虑以下摩尔机器-

Present State Next State Output
a = 0 a = 1
→ a d b 1
b a d 0
c c c 0
d b a 1

现在我们应用算法4将其转换为Mealy Machine。

步骤1和2-

Present State Next State
a = 0 a = 1
State Output State Output
→ a d b
b a d
c c c
d b a

步骤3-

Present State Next State
a = 0 a = 1
State Output State Output
=> a d 1 b 0
b a 1 d 1
c c 0 c 0
d b 0 a 1

从机器到摩尔机

算法5

输入-计量机

输出-摩尔机

步骤1-计算Mealy机器的状态表中可用的每个状态(Q i )的不同输出的数量。

步骤2-如果Qi的所有输出都相同,则复制状态Q i 。如果它具有n个不同的输出,则将Q i分解为n个状态,作为Q 其中n = 0、1、2 ……..

步骤3-如果初始状态的输出为1,则在开头插入一个新的初始状态,输出为0。

让我们考虑以下Mealy Machine-

Present State Next State
a = 0 a = 1
Next State Output Next State Output
→ a d 0 b 1
b a 1 d 0
c c 1 c 0
d b 0 a 1

在这里,状态“ a”和“ d”分别仅提供1和0输出,因此我们保留状态“ a”和“ d”。但是状态“ b”和“ c”产生不同的输出(1和0)。因此,我们将b分为b 0 ,b 1c分为c 0 ,c 1

Present State Next State Output
a = 0 a = 1
→ a d b1 1
b0 a d 0
b1 a d 1
c0 c1 C0 0
c1 c1 C0 1
d b0 a 0