微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 为什么要用状态机,或者说什么情况下非用状态机不可!

为什么要用状态机,或者说什么情况下非用状态机不可!

时间:10-02 整理:3721RD 点击:
为什么要用状态机,或者说什么情况下非用状态机不可!

你不知不觉就会用状态机。难道你不用计数器?计数器就是广义状态机。

只要是时序电路就是状态机,只不过是隐式状态机还是显式状态机

需要按流程/按步骤完成一件任务时就必定用状态机。
因为逻辑本身是并行执行的,要串行完成任务就要设置状态,控制流程
只不过有时不一定写成标准的三段/两段的形式
如楼上说使用计数器控制流程也是状态机的一种形式
流程复杂时,建议写成标准的2/3段式
便于阅读和维护

学习了

习惯用if写,后来发现写着写着就懵逼了,不如状态机清晰

不觉得不使用状态机效率更高么


简单的程序 倒不需要套用2/3段状态机,顶多用个计数器就行了。
但复杂些的逻辑,用状态机 会有助于代码比较清晰,容易维护和debug,效率也还不错啊。


总感觉用了状态机还不如去用单片机,反正都成顺序操作了

你会发现if用得多会留下很多坑。而且还很难发现。

1.状态机实例化成为电路以后结构应该是多路选择器,根据case()括号内状态确定执行什么样子的操作。
2.在用if()状态太多的时候,用case比较清楚,不过发现一个事情,如果不同if()的条件,是可以并行执行的,但是case()就只会选择一个状态执行。
3.我之前也觉得我就这样写逻辑好好的,为什么非要用状态机实现。后来条件多了,果然状态机清楚也方便。
4. Fpag和单片机区别还是明显的,或者说fpga和软件区别还是明显的。不过现在出现SOC架构的,说明他们谁也不能取代谁,各有优势吧。


写verilog要时常想综合后的电路是怎么样。 要去掉软件痕迹。



   同意!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top