三段式状态机理解浅析

article/2025/9/19 23:58:21

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_43070186/article/details/82085463

关于FSM的写法按照always块的个数来划分可以分为一段式(一个always块)、两段式状态机(两个always块)、三段式状态机(三个always块)。三段式状态机具有以下优点:
(1) 三段式状态机可以清晰完整的显示出状态机的结构,
(2) 可以清晰的将状态图转化为verilog代码,
(3) 代码清晰,降低编写维护复杂度,
这里仅讨论三段式状态机。
下图是状态机的结构图:
这里写图片描述

状态机结构图
按照三段式状态机进行分析,第一个框图是描述状态寄存器,为时序逻辑,后两个框图描述转移和输出,为组合逻辑。
三段式状态机对应的代码模版:
第一个always块,描述对应当前状态的状态寄存器,非阻塞赋值:
这里写图片描述
第二个always块,描述下一状态的状态寄存器,阻塞赋值:
这里写图片描述
第三个always块,描述输出,阻塞赋值:
这里写图片描述
对于第三个always块,在网上查到有些是使用时序逻辑,非阻塞赋值,使用next_state进行状态判断,对应代码如下:

这里写图片描述

 

 


http://chatgpt.dhexx.cn/article/SvNFtce5.shtml

相关文章

彻底搞懂状态机(一段式、两段式、三段式)

转自:https://blog.csdn.net/wordwarwordwar/article/details/78509445 实例:FSM实现10010串的检测 状态转移图:初始状态S0,a 0,z 0.如果检测到1,跳转到S1。 下一状态S1,a 1,z 0.如果检测到0&#xff…

Verilog:三段式状态机(数字钟)

状态机在FPGA的设计中是至关重要的,使用的频率也很高,废话不多说在这里介绍一下三段式状态机如何设计。 设计状态机首先要清楚状态有几种,状态转移图是怎样的,各个状态的输出是怎样的。了解了这三样之后就可以开始设计实验所需要的…

三段式有限状态机

一段式、二段式、三段式状态机是按照书写FSM时使用的always块数目进行划分的,一般而言对于简单的状态机,可以使用一段式,其代码量以及使用资源都最少,但如果状态机较复杂,一段式状态机会对代码维护产生很大的不便&…

状态机,从细节出发(一段式、两段式、三段式,moore型、mealy型)

目录 前言 一、状态机要素 二、状态机描述方法 1、一段式描述方法 2、两段式描述方法 3、三段式描述方法 三、关系 1、一段式与三段式 2、两段式与三段式 3、三种FSM描述方法比较表 四、状态机的种类 1、Moore型状态机 2、Mealy型状态机 3、注意点 五、举例 1、…

时间复杂度与空间复杂度分析(递归与非递归比较)

时间复杂度: 一般情况下,算法中基本操作重复的次数就是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用‘o’来表示数量级,给…

数据结构:时间复杂度空间复杂度(递归)

转载文章 时间复杂度: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,给出算法的时间复杂度。 T(n)O(f(n)); 它表示随着问…

递归理解以及时间复杂度计算

一.复杂度分析: 可以理解为递归的深度就是空间复杂度,时间复杂度就是O(T*depth),其中T是每个递归函数的时间复杂度,depth是递归深度. #空间复杂度O(1) def sum1_(n):res 0for i in range(n1):resireturn res#递归 空…

递归的时间与空间复杂度

一、 递归的时间复杂度 递归算法的时间复杂度 递归次数 \times 每次递归的时间复杂度。 递归次数:可以通过画递归树,数递归树的节点数,得到递归次数。 二、递归的空间复杂度 递归算法的空间复杂度 递归深度 \times 每次入栈的空间…

【转】Tomcat相关面试题,看这一篇就够了!

转自公众号:Java思维导图 Tomcat相关的面试题出场的几率并不高,正是因为如此,很多人忽略了对Tomcat相关技能的掌握。下面这篇文章整理了Tocmat相关的系统架构,介绍了Server、Service、Connector、Container之间的关系&#xff0c…

10道Mybatis经典面试题,赶快上车吧!⚡⚡⚡⚡

1.Mybatis中#{}和${}的区别是什么? 1.1 #{}方式能够很大程度防止sql注入(安全); ${}方式无法防止Sql注入。 1.2 在JDBC能使用占位符的地方,最好优先使用#{}; 在JDBC不支持使用占位符的地方,就…

mybatis面试题 一

一、MyBatis工作原理? 1、 创建SqlSessionFactory 2、 通过SqlSessionFactory创建SqlSession 3、 通过sqlsession执行数据库操作 4、 调用session.commit()提交事务 5、 调用session.close()关闭会话 1)读取 MyBatis 配置文件:mybatis-c…

Java面试题Tomcat的优化经验

来源:传智论坛 Tomcat作为Web服务器,它的处理性能直接关系到用户体验,下面是几种常见的优化措施: 一、掉对web.xml的监视,把jsp提前编辑成Servlet。有富余物理内存的情况,加大tomcat使用的jvm的内存 二、服…

Tomcat相关面试题,看这篇就够了!保证能让面试官颤抖!

Tomcat相关的面试题出场的几率并不高,正式因为如此,很多人忽略了对Tomcat相关技能的掌握,下面这一篇文章最早发布在知识星球,整理了Tomcat相关的系统架构,介绍了Server、Service、Connector、Container之间的关系&…

【Tomcat专题】简单认识一下Tomcat总体架构

文章目录 什么是Tomcat?Tomcat的主要工作Tomcat总体架构连接器容器 请求定位流程 什么是Tomcat? 在Tomcat官方网站上是这样介绍的。 The Apache Tomcat software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jaka…

四张图带你了解Tomcat系统架构--让面试官颤抖的Tomcat回答系列!

俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最…

Tomcat常见面试题

1、tomcat有哪些组件? 2、tomcat有哪些Connector? http ajp 3、tomcat的Valve的作用是什么? 给每一个虚拟主机定义访问日志 4、servlet的生命周期? Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过…

【金三银四】Tomcat面试题(2021最新版)

目录 前言 1、Tomcat的缺省端口是多少,怎么修改? 2、tomcat 有哪几种Connector 运行模式(优化)? 3、Tomcat有几种部署方式? 4、tomcat容器是如何创建servlet类实例?用到了什么原理? 5.tomcat 如何优化…

Tomcat面试题(2020最新版)

文章目录 Tomcat是什么?Tomcat的缺省端口是多少,怎么修改tomcat 有哪几种Connector 运行模式(优化)?Tomcat有几种部署方式?tomcat容器是如何创建servlet类实例?用到了什么原理?Tomcat工作模式Tomcat顶层架构…

「面试必背」Tomcat面试题(收藏)

「面试必背」Tomcat面试题(建议收藏) 2022-04-27 16:31java柚子茶 前言 在工作中,作为 Java 开发的程序员,Tomcat 服务器是大家常用的,也是很多公司现在正在用的。但是,在系统并发量比较大的情况下&…

Tomcat面试题(总结最全面的面试题)

Tomcat是什么? Tomcat 服务器Apache软件基金会项目中的一个核心项目,是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首…