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

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

3天内不再提示

AMEsim信号处理之有限状态机内部变量的声明

冬至子 来源:数值模拟交流之林 作者:数值模拟交流之林 2023-08-03 16:15 次阅读

1

内部变量的声明

状态图环境内部的变量使用init关键字声明:

图片

在这个例子中,我们引入了一个名为 var 的变量,类型为 int,初始值为 0。每次状态图执行遍历转换时,变量将递增 2。同一作用域中每个变量只能有一个init。

变量初始化的语法为:
varname:=expr0 init expr1
此表达式引入了一个名为 varname 的变量,其初始值在第二个表达式中给出(在 init关键字之后)。

从上述表达可以看出关键字 init 是用在过渡状态线上。

2

内部变量声明的简化写法

如果赋值中使用的表达式与用于初始化的表达式相同,则可以使用简化的语法:

图片

我们在这里介绍两个变量 x 和 y,它们在传递初始转换时将被分配为零(整数或实数)。
变量的类型取决于用于初始化它的值。例如,在这里,使用文字整数 0 和浮点文字 0.0 分别导致实际类型 int 和 real:类型确定自动执行并最终在整个状态图中传播(任何后续使用 x 和 y 都会传播所涉及的表达式中的 int 和实数类型约束)。

注意:禁止将 int 变量与实变量混合和匹配。必须使用 to_real 和 to_int 函数进行转换。Int 常量可以在任何地方用作实常数,但在从初始状态过渡时。(看到没 to_real 和 to_int 又是两个关键字)

3

变量的作用范围

内部变量的作用范围也即是内部变量的作用域。它们仅在状态图的某些部分可见。

变量在其复合状态下可见,在下面的所有子复合(或并行)状态下可见。

图片

此示例中有三个不同的声明变量,一个“y”变量仅在第一个复合状态下可见,因为用于声明它的 init 关键字位于此状态内的转换中。还声明了两个同名变量:“x”。一个在顶层和 Composite1 可见;另一个在 Composite2 中声明,并隐藏先前声明的变量。由于这种隐藏,Composite2 无法访问在顶级声明的变量 x。Composite 1 不会重新定义名为 x 的变量,因此可以访问在顶级声明的变量。

注意:状态图环境编译器将在存在变量隐藏的情况下生成警告消息。(警告只是警告,但不是错误)

为了简化不同变量的范围,下表综合了不同变量的范围:

1.jpg

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

    关注

    27

    文章

    8491

    浏览量

    145888
  • 信号处理器
    +关注

    关注

    1

    文章

    250

    浏览量

    25167
  • 有限状态机
    +关注

    关注

    0

    文章

    52

    浏览量

    10300
  • AMESIM
    +关注

    关注

    1

    文章

    15

    浏览量

    11673
收藏 人收藏

    评论

    相关推荐

    FPGA有限状态机

    FPGA有限状态机
    发表于 09-08 08:45

    有限状态机有什么类型?

    在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。
    发表于 04-06 09:00

    什么是有限状态机

    在嵌入式,机器人领域,由于多的复杂逻辑状态,我们编写程序的时候不得不考虑很多种情况,容易造成功能间的冲突。有限状态机(finite-state machine),简称状态机,是一种表示有限
    发表于 12-20 06:51

    基于VHDL的MTM总线主模块有限状态机设计

    为了能够更简洁严谨地描述MTM总线的主模块有限状态机状态转换,同时减少FPGA芯片功耗,提高系统稳定性,文中在分析MTM总线结构和主模块有限状态机模型的基础上,基于VHDL语言采
    发表于 05-29 15:39 20次下载
    基于VHDL的MTM总线主模块<b class='flag-5'>有限状态机</b>设计

    有限状态机_FSM_的实现

    本文主要介绍了IP模块的有限状态机的实现。
    发表于 03-22 15:42 0次下载

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

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

    VHDL有限状态机设计-ST

    EDA的有限状态机,广义而言是指只要涉及触发器的电路,无论电路大小都可以归结为状态机有限状态机设计在学习EDA时是很重要的一章。
    发表于 06-08 16:46 3次下载

    初学者对有限状态机(FSM)的设计的认识

    有限状态机(FSM)是一种常见的电路,由时序电路和组合电路组成。设计有限状态机的第一步是确定采用Moore状态机还是采用Mealy状态机
    发表于 02-11 13:51 4146次阅读
    初学者对<b class='flag-5'>有限状态机</b>(FSM)的设计的认识

    Linux编程之有限状态机FSM的理解与实现

    有限状态机(finite state machine)简称FSM,表示有限状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。FSM是一种逻辑单元
    发表于 05-15 16:53 1940次阅读
    Linux编程<b class='flag-5'>之有限状态机</b>FSM的理解与实现

    如何使用FPGA实现序列检测有限状态机

    输出部分外, 有限状态机还含有一组具有“记忆”功能的寄存器, 这些寄存器的功能是记忆有限状态机内部状态, 它们常被称为状态寄存器。在
    发表于 11-04 17:17 12次下载
    如何使用FPGA实现序列检测<b class='flag-5'>有限状态机</b>

    有限状态机设计是HDL Designer Series的关键应用

    有限状态机的设计是HDL Designer Series™工具的关键应用。 尽可能地对于设计人员编写导致状态机性能不佳的VHDL,可以使用HDL Designer用于生成VHDL的Series™工具
    发表于 04-08 10:05 6次下载

    基于事件驱动的有限状态机介绍

      一、介绍 EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。 EFSM的设计原则是:简单
    的头像 发表于 11-16 15:29 2215次阅读

    如何以面向对象的思想设计有限状态机

    有限状态机又称有限状态自动机,简称状态机,是表示有限状态以及在这些
    发表于 02-07 11:23 4次下载
    如何以面向对象的思想设计<b class='flag-5'>有限状态机</b>

    基于事件驱动的有限状态机介绍

    EFSM(event finite state machine,事件驱动型有限状态机),是一个基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。
    的头像 发表于 02-11 10:17 946次阅读

    有限状态机分割设计

    有限状态机分割设计,其实质就是一个状态机分割成多个状态机
    的头像 发表于 10-09 10:47 529次阅读