目录
一、状态机的分类
标准状态机分为摩尔(Moore)状态机与米勒(Mealy)状态机。
摩尔状态机的输出只与当前状态有关,且只在时钟边沿到来时发生变化。
米勒状态机的输出不但与当前的状态有关,还和当前的输入有关,这一特点使其控制和输出更加灵活,但增加了设计的复杂性。
两种状态机的示意图如下:
二、状态机的优点与存在的问题
优点:状态机的优点显而易见,结构分明、易读易懂易排错,逻辑清晰。
缺点:两个状态转换时,容易出现过渡状态;运行过程中,可能进入非法状态;在一种器件上稳定工作,移植到另一种器件上可能结果不理想;占用资源过多。
状态机经综合工具综合后一般生成以触发器为核心的状态寄存器电路,所以状态机的稳定性也由此决定。假如时钟信号的上升沿到达各个触发器的时间严格一直,那么状态机会完美的在各个状态中切换,但由于实际工作时存在时钟歪斜,这就会导致状态切换时存在过渡状态,当延时大到一定程度,就可能会进入非法状态,就会导致状态机失效。
对于米勒状态机来说,由于输出与输入有关,所以当状态译码电路比较复杂的时候,很容易会在输出端产生毛刺,可能会造成难以预料的结果。
由于摩尔状态机输出与时钟同步,故可以在一定程度上消抖;而米勒状态机输出可以在时钟周期内的任意时刻,所以米勒状态机对输入的响应更快。
从稳定性的角度来看,更建议使用摩尔状态机。
三、状态的编码方式
顺序码:编码遵循传统的二进制码,如:00 01 10 11。
格雷码:除了两个状态之间只有一位发生变化外,与顺序码类似,对应上面顺序码的编码为:00 01 11 10。
独热吗:在状态机中为每一种状态分配一个触发器。只有一个触发器当前设置为有效,其余设置均为无效,故称独热。对应上述编码为:0001 0010 0100 1000。