首页 > 其他分享 >三段式状态机

三段式状态机

时间:2023-05-06 18:12:00浏览次数:35  
标签:状态 三段式 always 阻塞 状态机 赋值

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

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

 状态机结构图

按照三段式状态机进行分析,第一个框图是描述状态寄存器,为时序逻辑,后两个框图描述转移和输出,为组合逻辑。
三段式状态机对应的代码模版:
第一个always块,描述对应当前状态的状态寄存器,非阻塞赋值:

 第二个always块,描述下一状态的状态寄存器,阻塞赋值:

 第三个always块,描述输出,阻塞赋值:

 

对于第三个always块,在网上查到有些是使用时序逻辑,非阻塞赋值,使用next_state进行状态判断,对应代码如下:

 

标签:状态,三段式,always,阻塞,状态机,赋值
From: https://www.cnblogs.com/759222924lele/p/17378206.html

相关文章

  • 【Unity】高级——有限状态机(角色控制)移动、待机
    简介有限状态机是unity游戏开发中经常用到的一个概念,能制作敌人AI,玩家控制器等。有限状态机允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类实现:将一个个具体的状态类抽象出来经典案例:玩家行动器案例中玩家行动包括:待机、移动、跳跃、冲刺、爬墙等而这......
  • D. Remove One Element(前缀最大+简单状态机)
    题目D.RemoveOneElement题意输入n(2≤n≤2e5)和长为n的数组a(1≤a[i]≤1e9)。从a中去掉一个数(也可以不去掉)。输出a的最长严格递增连续子数组的长度。思路一种方法是前缀最长和后缀最长,加起来。这种方法比较简单。用状态机来写,定义f[i][0/1]分别表示前缀......
  • Go中的有限状态机FSM的详细介绍
    1、FSM简介1.1有限状态机的定义有限状态机(FiniteStateMachine,FSM)是一种数学模型,用于描述系统在不同状态下的行为和转移条件。状态机有三个组成部分:状态(State)、事件(Event)、动作(Action),事件(转移条件)触发状态的转移和动作的执行。动作的执行不是必须的,可以只转移状态,不指定任何......
  • 探索FSM (有限状态机)应用
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。。本文作者:木杪有限状态机(FSM)是计算机科学中的一种数学模型,可用于表示和控制系统的行为。它由一组状态以及定义在这些状态上的转换函数组成。FS......
  • Educational Codeforces Round 110 (Rated for Div. 2) C. Unstable String(状态机)
    https://codeforces.com/contest/1535/problem/C题目大意:给定一个字符串s,由10?组成:?每次都可以任意替换成0或者1问我们这个子字符串中,能够组成010101这样两两互不相等的字符串的数量最大是多少?input30?10????10??1100output8625#include<bits/stdc++.h>usin......
  • Enemy状态机设计思路
    前言:为了更清晰的认识状态机并且理清Enemy设计思路,所以整理了一下Enemy的代码设计逻辑做了一张简单的思维图先进行一个简单的认识干货:FMS有限状态机状态机类似于动画器(animator),动画器可以简单清晰地管理游戏角色的动画:待机、跳跃、下落、跑步……,状态机的目的也是如......
  • 马尔科夫链文本生成(散列表,状态机,马尔科夫链)
    Codingame散列表为主题的练习题中,马尔科夫链文本生成吸引到了我的注意力。它集合了马尔科夫链,状态机和散列表三个方面的学习内容。其中,n-gram马尔科夫链运用到了文本聊天机器人的设计中,还是蛮有启发性的,应该是chatgpt之前的一项经典技术。下面简单讲讲这个编程练习题。目标制作......
  • 状态机图
    笔记软件在2023/4/614:26:40推送该笔记状态机图用于模拟各个类对象,用例和整个系统的动态行为。换句话说,当一个状态机创建它所附着的对象,该对象成为状态机的所有者时,例如,状态机附加的对象可以是类,用例甚至整个系统。​​什么是UML中的状态机图?参考状态机图是一种行为,它指定对......
  • 【深入浅出 Yarn 架构与实现】6-2 NodeManager 状态机管理
    一、简介NodeManager(NM)中的状态机分为三类:Application、Container和LocalizedResource,它们均直接或者间接参与维护一个应用程序的生命周期。当NM收到某个Application的第一个container启动命令时,它会创建一个「Application状态机」来跟踪该应用程序在该节点的状态;每个......
  • AI 状态机,行为树,行为机
     https://github.com/egametang/ET/blob/master/Book/6.1AI%E6%A1%86%E6%9E%B6.md......