全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 处理器/DSP >

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

时间:2023-08-03 16:15

人气:

作者:admin

标签:     信号处理  有限  AMEsim 

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

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

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信