状态机怎么搞?三种描述方法,Moore型和Mealy型详解!
一、状态机要素
大家好,我是陆砚码。今天我们来聊聊状态机,这个在编程和硬件设计中无处不在的东西。首先,我们要明白一个好的状态机应该具备哪些要素:
- 安全稳定:不会进入死循环,不会出现非预知状态。
- 速度快:满足设计的频率要求。
- 面积小:满足设计的面积要求。
- 设计清晰易懂,易维护。
二、状态机描述方法
1、一段式描述方法
一段式描述方法是将整个电路用一个进程描述,包含状态转移条件判断、状态输出和状态寄存器转移。这种方法的缺点是代码冗长,不利于修改和维护。
2、两段式描述方法
两段式描述方法是将状态转移条件的判断和状态输出分别放在两个进程中。这种方法的缺点是输出一般使用组合逻辑描述,容易产生毛刺等不稳定因素。
3、三段式描述方法
三段式描述方法是在两段式的基础上,再增加一个进程来描述状态的寄存器输出。这种方法的优点是消除了组合逻辑输出的不稳定与毛刺的隐患,更利于时序路径分组,在可编程逻辑器件上的综合与布局布线效果更佳。
三、状态机的种类
1、Moore型状态机
Moore型状态机的输出仅与当前状态有关。
2、Mealy型状态机
Mealy型状态机的输出不仅与当前状态有关,还与当前输入有关。
四、举例
这里我为大家举两个例子,分别展示了Moore型状态机和Mealy型状态机的实现方式。
五、总结
今天的分享就到这里,希望对大家有所帮助。如果你对状态机还有其他疑问,欢迎在评论区留言,我会尽力解答。最后,别忘了关注「思享编程网」(www.sxgpb.com)哦,更多精彩内容等你来发现!
