微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 状态机缺点是什么?

状态机缺点是什么?

时间:10-02 整理:3721RD 点击:
看见的资料都是是说状态机的有点的,但是状态机真的是没有缺点吗?

问题很新颖,我不知道,坐等大神科普

状态机速度慢。因为组合逻辑弄出多bit的next_state。即使采用one-hot编码,也改变不了多少。很多高速流水的情形,都不适合状态机。


哦,速度限制

状态机的本质是信息压缩,把状态空间里的区域进行划分,压缩成若干比特来表示它们。
对于适合压缩的状态空间,使用状态机具有分割与征服(Divide & Conquer)的优点。但对于不适合压缩的状态空间,就不适合使用状态机。这就是状态机的缺点。
比如做一个16'b1000111010011010的输入密钥检测,它的状态空间是2^16,而且不容易清晰划分,所以要把它压缩成几个比特的状态机,会非常复杂而且代码容易写错。如果直接用16个移位寄存器(不压缩),就很清晰而且代码不可能写错。
事实上,适合使用“纯”状态机的场合其实非常少。即,很多场合过量使用状态机(进行过度压缩)很容易产生Buggy的代码。

很想知道这些都从哪看到的!

也想知道这些都从哪看到的

state machine这个词在设计上包含三层意思: 一是state indicator,即标明一个状态。 二是flow control based on states,即用状态的跳转去做控制。三,也是最关键的一点,独立的STM基本都是串行运转的。
缺点来自于第三点:
【1】 parallel 和 pipeline 的arch不适合使用通常的STM,更合适的是所谓 “parallel state trigger machine”
【2】 会导致设计的flexibility和portability比较差,因为必须“按部就班”
因此使用STM的地方通常是提取出来的“串行度”比较高的design或sub-design

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

网站地图

Top