整个晚上我一直在震撼我的大脑。我必须构建2个图表,1个Moore和1个Mealy,它们补充了他们自己的输入。现在,我知道Moore Machines关注输入和输出,而Mealy Machine考虑了实际的状态转换,但我显然忽略了一些观点。我不知道该怎么做。请帮忙!
答案 0 :(得分:2)
Moore机器的核心思想是有两种状态:“一个读取,输出零”和“零读取,输出一个”。你分别通过读一个或零来从一个到另一个。您会注意到,在正式定义中,输入和输出之间始终存在“延迟”。也不可能避免输出任意的初始符号。
Mealy机器实现实际上可以简化为单个状态,因为每个输出符号仅取决于相应的输入符号。然后简单地过渡:“读一,写零”和“读零,写一”。
答案 1 :(得分:2)
从概念的角度来看,这是一个非常有趣的问题,因为它很容易“手工”解决,因此可以将这种解决方案与使用正式FSM程序获得的解决方案进行比较。
解决方案1:“手动”
图。图1(a)显示了电路端口,其中输入中的x和输出中的y。一个明显的解决方案如图1(b)所示,仅由具有反向输入的DFF组成。
解决方案2:使用正式的FSM程序
用于该问题的(摩尔型)解决方案如图2(a)所示。使用形式化程序,获得图2(b)的真值表,用于nx_state,其中q(DFF输出)表示当前状态,d(DFF输入)表示下一状态;我们很容易在这张表中观察到(此处不需要K-maps)d = x'。输出的真值表在图2(c)中,从中获得y = q。然后得到的电路是图2(d)的电路,按照传统的FSM模型(上部的所有组合逻辑,下部的所有DFF)绘制。与图1(b)中的相比,我们发现它们确实相等。
解决方案3:使用Mealy机器
将图2(a)的摩尔机器转换成Mealy机器,结果如图3所示。由于这是一个单状态机,它确实是一个组合电路。 (只需构建真值表并绘制结果电路;应该产生“虚拟”DFF,因为输出现在必须是异步的。)