状态机详解(一段式、二段式、三段式)

一、有限状态机FSM(Finite State Machine)

  • 组成元素

        输入、状态、状态转移条件、输出。

  • 可以分为两类

        Mealy状态机:时序逻辑的输出不仅取决于当前状态,还与输入有关;

        Moore状态机:时序逻辑的输出只与当前状态有关。

  • 描述方式

        ① 状态转移图:设计分析时使用,工具自动翻译的代码效率不高,适合规模小的设计;对于大规模设计,HDL更好;

        ② 状态转移表;

        ③ HDL描述。

  • 设计步骤

        ① 逻辑抽象,得到状态转移图:确定输入、输出、状态变量、画状态转移图;

        ② 状态简化,得到最简的状态转移图:合并等价状态(它们的输入相同,转换到的次态和输出也相同的两个或两个以上的状态);

        ③ 状态编码:binary、gray、one-hot编码方式;

        ④ 用HDL描述。

二、Coding Style

  • 一段式

        只有一个always block,把所有的逻辑(输入、输出、状态)都在一个always block的时序逻辑中实现。这种写法看起来很简洁,但是不利于维护,如果状态复杂一些就很容易出错,不推荐这种方法

        在简单的状态机可以使用。

  • 二段式

        有两个always block,把时序逻辑和组合逻辑分隔开来。时序逻辑里进行当前状态和下一状态的切换,组合逻辑实现各个输入、输出以及状态判断。这种写法不仅便于阅读、理解、维护,而且利于综合器优化代码,利于用户添加合适的时序约束条件,利于布局布线器实现设计。在两

两段状态机三段式状态机的区别在于它们的组织结构和时序逻辑的描述方。 两段状态机将时序部分和组合部分分开,分别用两个always语句描述。时序部分描述状态转移,而组合部分描述状态转移条件和产生输出。这种结构适用于组合逻辑特别复杂的情况,但需要注意在后面加一个触发器以消除组合逻辑对输出产生的毛刺。 三段式状态机在两段的基础上进一步分离了组合部分,使用三个always语句描述。其中一个always语句描述状态转移,另一个always语句描述状态转移条件和规律,第三个always语句描述状态的输出。这种结构可以更好地解决组合逻辑产生的毛刺问题,因为第三个always语句会生成触发器。但从资源消耗的角度来看,三段式状态机的资源消耗会更多一些。 总的来说,两段状态机适用于组合逻辑复杂的情况,而三段式状态机更适用于需要解决毛刺问题的情况。在设计时需要根据具体需求和资源限制来选择适合的状态机结构。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [彻底搞懂状态机一段、两段三段式)](https://blog.youkuaiyun.com/qq_45467083/article/details/120082342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [状态机详解一段二段式三段式)](https://blog.youkuaiyun.com/Jackiezhang1993/article/details/85045621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值