当涉及到 C 实现时,Mealy 和 Moore 状态机之间的区别是否有任何实际意义?这种差异通常是什么?
很久以前,当谈到 RTL 时,我更容易理解 Mealy/Moore 的优势/劣势。取决于当前状态的整个输出/取决于当前状态+当前输入差异的输出是有意义的,在某些情况下,Mealy 可以少 1 个状态这一事实也是有意义的。将时序图与每个 FSM 实现相关联也使它们之间的区别更加清晰。
假设我正在用 C 语言制作状态机。在一种情况下,LUT 取决于状态/当前输入(Mealy),而在 Moore 中,LUT 只是查找当前状态并返回下一个状态。在任一输出中都发生在从 LUT 返回之后(我认为,尽管我可能是错的)。我还没有想到一个明确的方式来说明 Mealy 在用 C 编码时具有优势。诸如代码可读性、速度、代码密度、设计易用性等主题可能都是相关主题——从我的角度来看,这两个模型看起来几乎相同。
也许这种差异只是学术界的一个话题——在 C 实现的实践中,这种差异可以忽略不计。如果您知道 Mealy 和 Moore 之间 C 状态机实现不同的关键方式,并且是否有真正的优势(这也很重要),我很想知道。我想强调一下——我不是在问 RTL 的实现。
我确实在这里看到了另一篇 Mealy/Moore 帖子:Mealy v/s。摩尔
但这并不是我正在寻找的解释水平。