news 2026/9/9 1:19:48

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
状态机详解(一段式、二段式、三段式)

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

  • 组成元素

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

  • 可以分为两类

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

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

  • 描述方式

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

        ② 状态转移表;

        ③ HDL描述。

  • 设计步骤

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

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

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

        ④ 用HDL描述。

二、Coding Style

  • 一段式

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

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

  • 二段式

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 1:19:20

开源AI Agent平台选型指南:10款工具对比与落地建议

前阵子和几个做企业服务的同行聊AI Agent,发现一个很有意思的分歧:销售那边觉得什么都能自动,研发这边觉得什么都别想自动。两边吵到后来,反而把真正的问题吵出来了——企业要的从来不是"有个Agent",而是某个…

作者头像 李华
网站建设 2026/9/9 1:18:52

Hadoop、Spark、Flink三者区别与实战踩坑总结

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/9 1:17:54

AI知识库权限穿透防护:企业RAG安全架构与敏感信息隔离实战

1. 从一次“可复现”的越权事故说起:权限穿透到底是怎么发生的 我参与过一家中型企业的AI知识库改造项目,前期规划做得漂漂亮亮,文档接入、向量化、检索问答都跑通了,结果在上线前内部安全测试时出了大问题。测试账号是一个普通实…

作者头像 李华
网站建设 2026/9/9 1:07:58

全民健身解决方案系统源码实战指南:从架构设计到部署全流程解析

全民健身解决方案系统源码实战指南:从架构设计到部署全流程解析 近年来,全民健身信息化建设进入快车道,社区健身房、企业运动空间、校园体育场馆都在寻求数字化升级。全民健身解决方案系统源码并非单一产品,而是一整套覆盖多端场景…

作者头像 李华
网站建设 2026/9/9 1:06:15

VS Code AI Chat 实战指南:从 Copilot 到本地大模型接入

“VS Code 的 AI Chat 现在已经这么能干了?”前几天一个做后端的朋友在群里扔了这么一句话,配图是他用编辑器里那个 AI 聊天窗,把一个三百行的爬虫脚本拆成了七个模块,还顺手补了一组 pytest。我回了一句:你这才哪到哪…

作者头像 李华
网站建设 2026/9/9 1:03:49

Git提交规范:从混乱提交到清晰历史的自我救赎

凌晨三点,四周安静得只剩主机风扇在转,屏幕上那一行git push终于不再报错,提示main分支已经更新。我长出一口气,把提交记录里的日期看了又看,想着这已经是这个月第几次在这个时间点把自己从某个深渊里捞出来。做程序员…

作者头像 李华