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

复杂状态机该怎么设计

时间:10-02 整理:3721RD 点击:
经常遇到这种情况,一段功能逻辑非常复杂,写成状态机会有非常多状态,而且同时也会有很多变量要随着状态机改变。这种情况下的状态机该怎么设计呢?或者有什么好办法可以设计?
举个例子:比如要实现TCP/IP协议,有各种情况,比如包头出现错误要跳转到某个状态,内部校验位错误,跳转到某个状态
种种问题会产生大量状态,而其中有些控制memory读写的接口要随着不同状态跳转发生改变。
希望各位大牛指导一下。多谢

最好写成一个总的状态机,下面带多个小的状态机。每个状态机都不要有太多状态。

这个问题好,求指导啊

   赞这位。

顶!

分为小的功能模块,然后每个功能模块用fsm实现。

三段式状态机,先画好状态转移图,其他都好说。复杂的,最好是自顶向下来设计

赞总控状态机,下设分段状态机

同问啊,思路大概也明白,但有的时候当需要判断的控制变量比较多的时候,对速度的影响还是很大的,这方面不知道有什么比较好的办法



   为什么要用三段式状态机?



   能具体说一下自顶向下设计吗?

顶下二楼,同意一个总的状态机,下面分设多个子状态机的方法。

学习

关注中

看你得有什么样的要求,如果是速度第一的话,采用嵌套的写法是很不建议的,在编译综合的时候,或产生很多的不必要的逻辑,除非你是这方面的高手。如过速度不是主要的话,这样子写还是可以的哈

不知道你看过一些处理器的手册里,里面提到了主状态机和子状态机的概念,你可以做参考。
我一般采用状态计数的方法,一个主状态开始,到下一个主状态,其实会存在多个时钟周期,我的状态计数器从该状态开始就开始计数,子状态的输出,就依据不同的状态计数值,由于存在状态计数,我状态机每一个子状态的输出,都可以很清晰地用时序图展示出来,不会出错,但不排除计数器计飞的情况,要做一些保险机制。

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

网站地图

Top