若最后的输出只和当前状态有关而与输入无关则称为 Moore 型状态机; 若最后的输出不仅和当前状态有关还和输入有关则称为 Mealy 型状态机。
有限状态机通常用两段式或者三段式书写。
1.两段式书写
2.三段式书写
三段式并不一定是要写三个always块,若状态机更为复杂,always块也相应增加。
3.新两段式书写
将三段式中前两个进程(状态机的状态转移)合并,利用时序逻辑描述,便可得到新两段式书写,这种新的写法在现在不同综合器中都可以被识别出来,这样既消除了组合逻辑可能产生的毛刺,又减小了代码量。(代码举例如下)
状态机中状态的编码格式的选择:
二进制码特点:需要很多逻辑资源(即需要综合出很多比较器),而寄存器资源消耗较少,且可能产生错误;
独热码特点:节约很多逻辑资源、需要大量位宽(寄存器资源,寄存器资源FPGA中很多);
格雷码特点:二进制码和独热码的折中