VHDL入门基础——状态机(2)

VHDL基础语法(6)——状态机篇(2)

Mealy状态机
状态机的输出是由当前输入和当前状态共同决定的
假设此时有一个状态机有三个状态,s0(000),s1(010),s2(100)。起始状态为s0,同时在din信号的作用下,改变其状态值。din=1时:s0->s1->s2->s0,但是与之前Moore所不同的是,输出并不等于下个状态所对应的输出,s0->s1(001);s1->s2(011);s2->s0(101);在din=0时,保持原有状态,输出此刻所对应输出值。
本质上与Moore的VHDL代码类似,仍用三个进程
VHDL入门基础——状态机(2)
VHDL入门基础——状态机(2)
VHDL入门基础——状态机(2)
很容易看到与Mooly相比,仅仅是进程3输出与当前的输入din有关。所以用此种格式写状态机不仅更容易理解而且增强了代码的可移植性。