状态机的概念与设计

article/2025/9/29 16:07:02

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。
🔥文章和代码已归档至【Github仓库:hardware-tutorial】,需要的朋友们自取。或者公众号【AIShareLab】回复 FPGA 也可获取。

文章目录

    • 状态机的基本结构及类型
    • 状态机的状态图表示法
      • Mealy型
      • Moore型
    • 状态机的设计步骤

状态机的基本结构及类型

有限状态机的标准模型如图所示,它主要由三部分组成:

  1. 下一状态的逻辑电路(组合电路);
  2. 存储状态机当前状态的时序逻辑电路(时序电路);
  3. 输出组合逻辑电路(组合电路)。

一般情况下,状态触发器的数量是有限的,其状态数也是有限的,故称为有限状态机(Finite State Machine,简称为FSM)。状态机中所有触发器的时钟输入端被连接到一个公共时钟脉冲源上,其状态的转换是在同一时钟源的同一脉冲边沿同步进行的,所以它也被称作时钟同步状态机。

一般来说,状态机的基本操作主要有以下两种:

  1. 状态机的内部状态转换。
  2. 产生输出信号序列。

根据电路的输出信号是否与电路的输入有关,可以将状态机分为两种类型:一类是米利型(Mealy)状态机,电路的输出信号不仅与电路当前的状态有关,还与电路的输入有关;另一类是穆尔型(Moore)状态机,电路输出仅仅取决于各触发器的状态,而不受电路当时的输入信号影响或没有输入变量。

状态机的状态图表示法

Mealy型

上图是米利型状态图的一个例子。在状态图中,每个状态用一个圆圈表示,圆圈内有指示状态的符号。用带箭头的方向线指示状态转换的方向,当方向线的起点和终点都在同一个圆圈上时,则表示状态不变。

一般来说,状态机中的状态转移有两种方式:无条件转移和有条件转移。在图中,从状态A转移到状态B为无条件转移,其它状态之间的转移都是有条件要求的。

Moore型

需要强调指出,米利型状态图中,输出值的表示方法容易引起读者的误解。当状态机处于所在的状态,并且在所示的输入的作用下,就会产生输出值,并非在状态机转移到下一状态时才出现输出。由于穆尔型电路的输出只依赖于状态机的当前状态,其状态图的表示方法略有不同,通常将输出变量写在表示状态的圆圈内部,图是穆尔型状态图表示的例子。

状态机的设计步骤

一般来说,状态机的设计步骤如下所示:

  1. 依据具体的设计原则,确定采用状态机类型:穆尔型状态机还是米利型状态机。
  2. 分析设计要求,列出状态机的所有状态,并对每一个状态进行状态编码。
  3. 根据状态转移关系和输出函数,画出状态图(状态表)。
  4. 根据所画的状态图,采用硬件描述语言对状态机进行描述。

第3步是最困难也是最有创造性的一步。状态图直观地反映了状态机各个状态之间的转换关系以及转换条件,但要求设计的状态个数不能太多。状态个数较多,采用状态表的方法列出状态机的转移条件。输出信号较多,可采用输出逻辑真值表进行表示。

参考文献:

  1. Verilog HDL与FPGA数字系统设计,罗杰,机械工业出版社,2015年04月
  2. Verilog HDL与CPLD/FPGA项目开发教程(第2版), 聂章龙, 机械工业出版社, 2015年12月
  3. Verilog HDL数字设计与综合(第2版), Samir Palnitkar著,夏宇闻等译, 电子工业出版社, 2015年08月
  4. Verilog HDL入门(第3版), J. BHASKER 著 夏宇闻甘伟 译, 北京航空航天大学出版社, 2019年03月

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

相关文章

c++状态机的使用

什么是状态机 状态机是有限状态自动机的简称,是现实事物运行规则抽象而成的一个数学模型。英文名字叫State Machine ,不是指一台实际机器,一般就是指一张状态转换图。全称是有限状态自动机,自动两个字包含重要含义。给定一个状态…

状态机设计举例

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库&#xf…

浅谈状态机

一、状态机原理 (一)有限状态机 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。有限状态机简写为FSM(Finite State Machine&…

状态机与序列机

状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。 一、线性序列机 序列机是什么:用计数器对时钟个数计数,根据相应时钟周期下的单个周期时…

状态机总结(简洁)

一、概念 状态机简写为 FSM(Finite State Machine),也称为同步有限状态机,我们一般简称为状态机,之所以说“同步”是因为状态机中所有的状态跳转都是在时钟的作用下进行的,而“有限”则是说状态的个数是有…

有限状态机详解(转载)

以前总觉得有限状态机和无限状态机非常的难理解,原来也就是自己一直没有一个直观的认识,今天看到一篇博客,总算对有限状态机入门了。一看就懂。 转载地址:http://blog.csdn.net/zqixiao_09/article/details/50239337 我们知道&a…

状态机

有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。最近看了一些游戏编程AI的材料,感觉游戏中的AI,第一要说的就是有限状态机来实现精灵的AI&#xff0…

状态机的深入理解

目录 1.什么是状态机 2. 生活中的状态机 3. 工程中的应用 4. 发散思考 1.什么是状态机 ■1.1 有向图 有向图是指由定点和边构成的集合,我们常用G(E, V)来表示一个有向图,其中定点之间由有向边进行连接就构成了有向图。有向图…

有限状态机

文章目录 有限状态机状态机的表示状态转移图二维表 实现穷举法查表法状态模式 总结 有限状态机 有限状态机(Finite State Machine) 缩写为 FSM。以下简称为状态机。 状态机有 3 个组成部分:状态、事件、动作。 状态:所有可能存在的状态。包括当前状态和…

什么是状态机?

前言 状态机在实际工作开发中应用非常广泛,在刚进入公司的时候,根据公司产品做流程图的时候,发现自己经常会漏了这样或那样的状态,导致整体流程会有问题,后来知道了状态机这样的东西,发现用这幅图就可以很…

什么是状态机(Finite-state machine)?

有限状态机 有限状态机(FSM)1、 什么是“状态”2、什么是状态机?3、状态机图怎么画?参考 有限状态机(FSM) 1、 什么是“状态” 先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门&#xff0c…

什么是状态机?用C语言实现进程5状态模型

前言 状态机在实际工作开发中应用非常广泛,在刚进入公司的时候,根据公司产品做流程图的时候,发现自己经常会漏了这样或那样的状态,导致整体流程会有问题,后来知道了状态机这样的东西,发现用这幅图就可以很…

状态机(state machine)

一、状态机分类 Mealy状态机:输出取决于输入和当前状态 状态寄存器:由一组触发器组成,用来记忆状态机当前所处的状态,状态的改变只发生在时钟的跳变沿。状态寄存器由一组触发器组成,用来记忆状态机当前所处的状态,状态的改变只发生在时钟的跳变沿。 状态是否改变、如何…

状态机(有限状态自动机 FSM)介绍以及常用状态机种类对比

目录 状态机概念 : 为什么需要状态机: 使用场景 状态机四要素: 常见类型状态机: Squirrel State Machine Spring Statemachine 状态机概念 : 概念 : 状态机是有限状态自动机(英语:finite-state machine,缩写:FSM&#xff…

STM32状态机编程----什么是状态机?

万事万物都有其状态 什么是状态 状态是人或事物表现出来的形态。是指现实(或虚拟)事物处于生成、生存、发展、消亡时期或各转化临界点时的形态或事物态势。 通过上面那句话,我们知道了状态就是一个对象在不同情况下对应的各种形态 做产品的…

什么是状态机?一篇文章就够了

1 概述 状态机[1]一般指有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机(英语:finite-state automaton,缩写:FSA),是表示有限…

C语言_有限状态机(FSM)

C语言_有限状态机(Finite State Machine) 基本介绍 许多小型或复杂的应用程序都使用有限状态机 (FSM),C 语言中的有限状态机是嵌入式系统的流行设计模式之一,有限状态机使开发变得容易和顺利。 有很多设备使用事件基态&#xf…

Unity字体展示下载

Unity字体种类展示 这是字体包里面的图片,是不是很多种字体. 下载链接: https://download.csdn.net/download/qq_42603590/12001130 这是下载字体包的地方,很便宜.没有积分的可以留言,我发给你 有时候可能回复的不是很快(抱拳了) 喜欢的话点个赞,关注一下再走吧,谢谢

Unity 之 官网下载地址,方便各个版本的 Unity 安装包下载

Unity 之 官网下载地址,方便各个版本的 Unity 安装包下载 目录 Unity 之 官网下载地址,方便各个版本的 Unity 安装包下载 一、简单介绍 二、各个版本下载入口网址 一、简单介绍 在 Unity 的下载地址现在不是很好找,这里保存一下 Unity 各…

Unity入门之路0-Unity下载安装以及版本选择

文章目录 下载链接Unity Hub和Unity的关系UnityHub下载(Win)两者比较 Unity版本选择许可证问题 下载链接 一定不要百度或者去垃圾网站下载盗版网站 ,Unity是正版免费的,官方很关注使用者的感受,所以下载官网的就没问题。 https://unity.cn/re…