上篇博文:状态机,FPGA的灵魂,说到了状态机的基础知识,讲到了状态机的组成六要素,工作四要素。
这篇博文来讲状态机的模型之Moore状态机,从标题也能看出,状态机的知识并没有结束,后面还会提到Mealy型状态机。
Moore型状态机
根据状态机的输出与其现态、输入之间的关系,可将FPGA中的状态机抽象为三种基本模型——Moore、Mealy和Mix,即摩尔型,米利型和混合型。
如果一个状态机的输出仅由现态决定,那么它就是一个Moore型的状态机。按照驱动输出的数字电路特征,又将Moore型状态机细分为Moore 1 型,Moore 2 型和Moore 3型。详细介绍如下:
(1)Moore 1型
如下图1为Moore 1型的原理结构框图:
从上图可以看出,Moore 1型状态机的结构可以划分为两大部分,状态转移部分和输出生成部分。
上图的左半部分为状态转移部分,输入和现态(现态寄存器的输出)通过组合逻辑,共同作用产生了次态,当下一次时钟有效边沿到来的时候,现态寄存器发生更新,刚才产生的次态即成为了新的现态,而新的现态和新的输入共同作用产生新的次态,如此往复。
输出生成部分如上图右半部分所示,现态(现态寄存器的输出)直接通过组合逻辑产生当前的输出(这点也是Moore状态机和Mealy状态最显著的区别。)有时候,我们不希望将这部分组合逻辑的延迟影响到后续模块的处理,那么可以仿照上图通过添加输出寄存器来解决这个问