0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自动生成程序状态机代码状态机建模方法

麦辣鸡腿堡 来源:车端 作者:车端 2023-09-13 16:50 次阅读

首先运行fsme命令来启动状态机编辑器,然后单击工具栏上的“New”按钮来创建一个新的状态机。FSME中用于构建状态机的基本元素一共有五种:事件(Event)、输入(Input)、输出(Output)、状态(State)和转换(Transition),在界面左边的树形列表中可以找到其中的四种。

状态建模

在FSME界面左边的树形列表中选择“States”项,然后按下键盘上的Insert键来插入一个新的状态,接着在右下方的“Name”文本框中输入状态的名称,再在右上方的绘图区域单击该状态所要放置的位置,一个新的状态就创建好了。用同样的办法可以添加状态机所需要的所有状态,如下图所示。

状态建模

图片

事件建模

在FSME界面左边的树形列表中选择“Events”项,然后按下键盘上的Insert键来添加一个新的事件,接着在右下方的“Name”文本框中输入事件的名称,再单击“Apply”按钮,一个新的事件就创建好了。用同样的办法可以添加状态机所需要的所有事件,如下图所示。

图片

转换建模

状态转换是整个建模过程中最重要的一个部分,它用来定义有限状态机中的一个状态是如何切换到另一个状态的。例如,当用来控制城门的状态机处于Opened状态时,如果此时有Close事件产生,那么状态机的当前状态将切换到Closed状态,这样一个完整的过程在状态机模型中可以用closeDoor这样一个转换来进行描述。要在FSME中添加这样一个转换,首先需要在界面左边的树形列表中选择“States”下的“Opened”项,然后按下键盘上的Insert键来添加一个新的转换,接着在右下角的“Name”文本框中输入转换的名字“closeDoor”,在“Condition”文本框中输入“Close”表明触发该转换的条件是事件Close的产生,在“Target”下拉框中选择“Closed”项表明该转换发生后状态机将被切换到Closed状态,最后再单击“Apply”按钮,一个新的状态转换关系就定义好了,如下图所示。用同样的办法可以添加状态机所需要的所有转换。

转换建模

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79543
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27168
  • 编辑器
    +关注

    关注

    1

    文章

    788

    浏览量

    30187
收藏 人收藏

    评论

    相关推荐

    SaberRD状态机建模工具介绍(一)什么是状态机建模

    状态机建模是使用状态图和方程式的手段,创建基于混合信号的有限状态机模型的一种建模工具。
    的头像 发表于 12-05 09:51 532次阅读
    SaberRD<b class='flag-5'>状态机</b><b class='flag-5'>建模</b>工具介绍(一)什么是<b class='flag-5'>状态机</b><b class='flag-5'>建模</b>

    状态机编程

    ,有限状态机(FSM)是实时系统设计中的一种数学模型,是一种重要的、易于建立的、应用比较广泛的、以描述控制特性为主的建模方法,它可以应用于从系统分析到设计(包括硬件、软件)的所有阶段。很多实时系统,特别是
    发表于 07-10 18:00

    状态机

    控制状态机控制状态机的初始化和状态转换的最佳方法是使用枚丽型输入控件。一般使用自定义类型的枚丽变量。使用子定义类型的枚丽变量可以是控件和实例乊间存在关联,使得添加或删除
    发表于 02-13 12:39

    状态机如何暂停

    程序一运行 就开始自动运行程序 状态机各种各种状态开始执行 我这里是布尔变量 每一秒点亮一个布尔按钮。我现在想在界面增加一个暂停按钮 当点暂
    发表于 04-09 09:23

    如何在SystemVerilog中为状态机的命令序列的生成建模

     我们将展示如何在SystemVerilog中为状态机的命令序列的生成建模,并且我们将看到它是如何实现更高效的建模,以及实现更好的测试生成
    发表于 01-01 06:05

    状态机是什么?什么是消息触发类型的状态机

    状态机可归纳为哪几个要素?状态机可分为哪几种?什么是消息触发类型的状态机
    发表于 04-19 06:02

    什么是状态机状态机是如何编程的?

    什么是状态机状态机是如何编程的?
    发表于 10-20 07:43

    什么是状态机状态机的三种实现方法

    文章目录1、什么是状态机?2、状态机编程的优点(1)提高CPU使用效率(2) 逻辑完备性(3)程序结构清晰3、状态机的三种实现方法switc
    发表于 12-22 06:51

    什么是状态机

    目录1 前言2 状态机2.1 什么是状态机2.2 状态机的概念2.3 使用状态机写键盘的思路3 代码实例3.1 使用软件3.2 protue
    发表于 01-24 06:23

    状态机代码生成工具

    状态机代码生成工具状态机代码生成工具状态机
    发表于 11-19 15:12 9次下载

    有限状态机建模与优化设计

    本文提出一种优秀 、高效的 Verilog HDL 描述方式来进行有限状态机设计 介绍了 有限状态机建模原则 并通过一个可综合的实例 验证了 该方法设计的有限
    发表于 03-22 15:19 1次下载

    使用ModelSim自动生成状态机FSM的状态转换图

    HDL代码设计中重要的内容之一就是设计程序状态机FSM,状态转换控制着整个程序的流程,为了理解程序
    发表于 02-10 15:39 1.5w次阅读
    使用ModelSim<b class='flag-5'>自动</b><b class='flag-5'>生成</b><b class='flag-5'>状态机</b>FSM的<b class='flag-5'>状态</b>转换图

    什么是状态机状态机5要素

    玩单片机还可以,各个外设也都会驱动,但是如果让你完整的写一套代码时,却无逻辑与框架可言。这说明编程还处于比较低的水平,你需要学会一种好的编程框架或者一种编程思想!比如模块化编程、状态机编程、分层思想
    的头像 发表于 07-27 11:23 1.9w次阅读
    什么是<b class='flag-5'>状态机</b>?<b class='flag-5'>状态机</b>5要素

    状态机自动生成工具FSME

    状态机中的各种状态上,而不是程序本身的运行逻辑。 作为一种通用的软件设计模式,各种软件系统的状态机之间肯定会或多或少地存在着一些共性,因此人们开始尝试开发一些工具来
    的头像 发表于 09-13 16:45 1078次阅读
    <b class='flag-5'>状态机</b><b class='flag-5'>自动</b><b class='flag-5'>生成</b>工具FSME

    如何生成状态机框架

    生成状态机框架 使用FSME不仅能够进行可视化的状态机建模,更重要的是它还可以根据得到的模型自动生成
    的头像 发表于 09-13 16:54 650次阅读
    如何<b class='flag-5'>生成</b><b class='flag-5'>状态机</b>框架