文档gydF4y2Ba

Mealy和Moore机器概述gydF4y2Ba

Mealy和Moore机器的语义gydF4y2Ba

Mealy和Moore通常被认为是建模有限状态机的基本的工业标准范例。通常在状态机模型中,下一个状态是当前状态及其输入的函数,如下所示:gydF4y2Ba

XgydF4y2Ba (gydF4y2Ba ngydF4y2Ba +gydF4y2Ba 1gydF4y2Ba )gydF4y2Ba =gydF4y2Ba fgydF4y2Ba (gydF4y2Ba XgydF4y2Ba (gydF4y2Ba ngydF4y2Ba )gydF4y2Ba ,gydF4y2Ba ugydF4y2Ba )gydF4y2Ba

在这个等式中:gydF4y2Ba

X (n)gydF4y2Ba 表示时间步长的状态gydF4y2BangydF4y2Ba
X (n + 1)gydF4y2Ba 表示下一个时间步骤的状态gydF4y2Ban + 1gydF4y2Ba
ugydF4y2Ba 代表输入gydF4y2Ba

状态gydF4y2Ba是本地数据和图表活动的组合。因此,计算状态意味着更新本地数据并从当前活动状态转换到新状态。状态从一个时间步骤持续到另一个时间步骤。gydF4y2Ba

在这种情况下,Mealy和Moore机器都具有定义良好的语义。gydF4y2Ba

机器类型gydF4y2Ba 语义gydF4y2Ba 应用程序gydF4y2Ba
粉状的gydF4y2Ba

输出是输入的函数gydF4y2Ba而且gydF4y2Ba状态:gydF4y2Ba

ygydF4y2Ba =gydF4y2Ba ggydF4y2Ba (gydF4y2Ba XgydF4y2Ba ,gydF4y2Ba ugydF4y2Ba )gydF4y2Ba

状态转换发生在时钟边缘的时钟同步机器gydF4y2Ba
摩尔gydF4y2Ba

输出是一个函数gydF4y2Ba只有gydF4y2Ba的状态:gydF4y2Ba

ygydF4y2Ba =gydF4y2Ba ggydF4y2Ba (gydF4y2Ba XgydF4y2Ba )gydF4y2Ba

在时钟边缘修改输出的时钟同步机器gydF4y2Ba

您可以创建实现纯Mealy或Moore语义的图表,作为Stateflow的子集gydF4y2Ba®gydF4y2Ba图表语义(参见gydF4y2Ba创建Mealy和Moore图表gydF4y2Ba).Mealy和Moore图可用于嵌入式Coder的仿真和代码生成gydF4y2Ba®gydF4y2Ba,gydF4y2Ba万博1manbetx®gydF4y2Ba编码器™gydF4y2Ba,以及HDL Coder™软件,它们可以单独获得。gydF4y2Ba

模型与Mealy和摩尔机器gydF4y2Ba

Stateflow软件附带了一个模型,展示了如何在信号处理中使用Mealy和Moore机器进行序列识别。要打开模型,请输入gydF4y2Basf_seqrecgydF4y2Ba在MATLAB中gydF4y2Ba®gydF4y2Ba提示。gydF4y2Ba

默认状态机类型gydF4y2Ba

在创建状态流图时,默认类型是混合状态机模型,它将Mealy和Moore图的语义与扩展的状态流图语义结合起来。这种默认图表类型被调用gydF4y2Ba经典gydF4y2Ba.gydF4y2Ba

输出的可用性gydF4y2Ba

Mealy机计算过渡的输出,而Moore机计算状态的输出。因此,Mealy图表可以比Moore图表更早地计算输出—也就是说,在图表的默认路径执行时。如果启用图表属性gydF4y2Ba在初始化时执行(输入)图表gydF4y2Ba对于Mealy图,这种计算发生在t = 0(第一次步);否则,它发生在t = 1(下一个时间步)。相比之下,摩尔机只能计算输出gydF4y2Ba后gydF4y2Ba执行默认路径。在此之前,输出采用默认值。gydF4y2Ba

梅利图和摩尔图的优点gydF4y2Ba

与经典状态流图相比,Mealy和Moore图表具有以下优点:gydF4y2Ba

  • 您可以验证您创建的Mealy和Moore图表,以确保它们符合它们的正式定义和语义规则。错误消息出现在编译时(而不是在设计时)。gydF4y2Ba

  • 对于C/ c++和HDL目标,摩尔图提供了比经典图更有效的实现。gydF4y2Ba

  • 你可以用摩尔图来模拟反馈循环。在摩尔图中,输入没有直接馈通。因此,你可以设计一个从输出端口到输入端口的反馈环路,而不引入代数环路。Mealy和经典图表有直接的传递和误差与代数循环。gydF4y2Ba

相关的话题gydF4y2Ba

这个话题有帮助吗?gydF4y2Ba