先学习状态机:
两种状态机:
你可以看到两个状态机的区别。 Mealy次状态由当前状态和输入决定,输出也是同样的。 Moore只会输出现状态。 从流程图可以看出,两者的区别只是在输出的一步中是否考虑了输入的差异,所有对现状的修改都要考虑输入和状态。
现在是状态机的标准定义:
状态一转弯也变成输入,可以看到状态机的“下一个状态和输入与现状相关”的特征。
只有最后一步能看出两者的不同。
现在,我们将学习原始状态图和状态表。
那么,怎么得到状态图?
红色数字表示那时的输出。
再举一个例子:
另一个例子:
如你所见,这里出现了不完全状态表。
让我们学习简化状态图:
有点复杂吗? 我告诉你一个具体的方法:
这实际上是用表格来表示它们可能等价。 加入叉就等于排除了输出不同,如果输出相同,就等于下一个状态,例如a、b,假设cf相同,所以把cf放入方格。 然后发现cf真的一样,那个ab一样。 从ae来看,ae是“如果同态be相同则相同”,但由于b=a,所以“一个同态相同,另一个是对方”,ae也相同。
在这个例子中,可以看到这样的思想:可能相同的是ae和bc,ae相同而bc相同,bc相同而ae相同。
本来的要求是找完全等价的东西; 现在只要求兼容性。 A的输出为2个x,不会与任何人发生冲突,可以看出下一个状态是自己。 b输出无需管理,即使b次状态与x不冲突,只要c与a兼容,ac兼容就需要ad兼容。 ad显然是直接兼容的,所以ab、ac和ad是兼容的。 其他类推。
变成三角形后,那都是不相容的。
最大的兼容类之间可能有很多相同的状态,但请考虑哪些状态被分类为这些类。 我们会尽量找总班级数量最少的方法。
找到几个后,也会确认这些是否会成为真正的类。 如果现有类中没有以下状态,则不能:
我们现在完全学会了简化状态图。 现在学习分配。
触发器的输出端表示状态分配的1位。 我有三种状态,用两位数表示,所以需要两个触发器。 J1K1控制着Y1,J2K2控制着Y2。
这样就可以画电路了。
总结操作步骤。