当前位置: 首页 > article >正文

Lustre v6 语法 - 时序表达式

概述

Lustre v6 语法中,与时序表达式有关的运算,包括 ->(followed by), pre(previous), fby, current, when, merge。其中,除 merge 运算是 Lustre v6 中新引入的外,其余在 Lustre Core 语法中已有定义。

与时序表达式有关的文法定义如下

Expression ::= pre Expression | current Expression| Expression when ClockExpr | Expression fby Expression| Expression -> Expression| merge Lv6Id MergeCaseList ClockExpr ::= Lv6IdRef ( Lv6Id )| Lv6Id | not Lv6Id | not (Lv6Id)MergeCaseList ::= [ MergeCase ] { MergeCase }
MergeCase     ::= [( (Lv6IdRef | true | false) -> Expression )]

-> followed by 表达式

-> 表达式读作 followed by。其文法形式如

Expression -> Expression 

其含义为,对 A -> B,在程序运行的首次瞬间,取流 A 中的值,在往后的时间中,取流 B 的值。

-> 的例程如下。在以下例程中,对首周期,取流 i1 的值,对往后周期,取流 i2 的值。

node followedBy(i1,i2: int) returns (o: int)
leto = i1 -> i2;
tel

pre previous 表达式

pre 表达式读作 previous。其文法形式如下

pre Expression 

其含义为在周期 n 时刻,取 Expression 周期在 n-1 时刻的值。

pre 的例程如下。在以下例程中,假设流 i1, i2 的值序列分别为

  • i1_(1), i1_(2), ... i1_(n)
  • i2_(1), i2_(2), ... i2_(n)
    o 的流为 i1_(1),i2_(1), i2_(2), ... i2_(n)
node preExpr(i1,i2: int) returns (o: int)
leto = i1 -> pre i2;
tel

fby 表达式

fby 的行为相当于 ->pre 的组合。fby 的文法定义如下

Expression fby Expression

i1 -> pre i2;, 等价于 i1 fby i2;

fby 例程如下。对o 的流为 0,i_(1),i_(2),... i_(n)

node fbyExpr(i: int) returns (o: int)
leto = 0 fby i;
tel

在 Scade 6 中,也有fby 时序操作符,但需要注意语法语义与 Lustre v6 的不同。

current 表达式

current 表达式的文法定义为

current Expression

Expression 在当前周期值不更新的情况下,采用最近一次周期更新的值。

current 使用样例如下。当时钟 cknot ck 时,流 o 在对应周期的值为流 i 在最近一次周期更新后的值。

node currentExpr(i: int) returns (o: int)
varck: bool;
leto = current(i when ck); ck = true -> not pre ck;
tel

when 表达式

when 表达式用于时钟采样。其文法形式如下

Expression ::= Expression when ClockExpr
ClockExpr ::= Lv6IdRef ( Lv6Id )| Lv6Id | not Lv6Id | not (Lv6Id)

为了使输入时钟与输出时钟匹配,可用该表达式。

when表达式的例程如下。输入流 i 的时钟(when ck) 与输出流 o 的时钟(when ck)匹配。

function whenExpr(ck: bool; i: int) returns (o: int when ck)
leto = i when ck;
tel

merge 表达式

merge 表达式从 Lustre v6 起引入。其作用为合并时钟流。其文法定义如下

Expression ::= merge Lv6Id MergeCaseListMergeCaseList ::= [ MergeCase ] { MergeCase }
MergeCase     ::= [( (Lv6IdRef | true | false) -> Expression )]

merge 表达式使用样例如下。在该样例中,将不同时钟流 i1(时钟 when clk), i2(时钟 when not clk) 合并为 base clock 后,赋值于输出流 o

node mergeExp(clk: bool; i1 : int when clk; i2: int when not clk) returns (o: int)
leto = merge clk (true -> i1) (false -> i2);
tel

相关文章:

Lustre v6 语法 - 时序表达式

概述 Lustre v6 语法中,与时序表达式有关的运算,包括 ->(followed by), pre(previous), fby, current, when, merge。其中,除 merge 运算是 Lustre v6 中新引入的外,其余在 Lustre Core 语法中已有定义。 与时序表达式有关的…...

vs2013 使用 eigen 库编译时报 C2059 错的解决方法

(个人感觉)vs2013 就不能使用版本大于等于 3.4 的 eigen,使用 3.3.9 就可以了,再不行就用 3.3.8 另一个博主也遇到过用 vs2013 的时候不能编译 3.4 的 eigen 的问题,不过我用的是 win11,所以感觉跟操作系统…...

Kafka 消费端反复 Rebalance: `Attempt to heartbeat failed since group is rebalancing`

文章目录 Kafka 消费端反复 Rebalance: Attempt to heartbeat failed since group is rebalancing1. Rebalance 过程概述2. 错误原因分析2.1 消费者组频繁加入或退出2.1.1 消费者故障导致频繁重启2.1.2. 消费者加入和退出导致的 Rebalance2.1.3 消费者心跳超时导致的 Rebalance…...

【第九天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-六种常见的图论算法(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的图论算法2. 图论算法3.详细的图论算法1)深度优先搜索(DFS)2&#xf…...

微服务网关鉴权之sa-token

目录 前言 项目描述 使用技术 项目结构 要点 实现 前期准备 依赖准备 统一依赖版本 模块依赖 配置文件准备 登录准备 网关配置token解析拦截器 网关集成sa-token 配置sa-token接口鉴权 配置satoken权限、角色获取 通用模块配置用户拦截器 api模块配置feign…...

shell脚本批量修改文件名之方法(The Method of Batch Modifying File Names in Shell Scripts)

shell脚本批量修改文件名方法 我们可以使用Shell脚本来实现这个功能。Shell脚本是一种用于自动化任务的编程语言,它可以在Unix/Linux操作系统上运行。在这个脚本中,我们将使用一个for循环来遍历目标目录下的所有文件,并使用mv命令将每个文件…...

华为小米vivo向上,苹果荣耀OPPO向下

日前,Counterpoint发布的手机销量月度报告显示,中国智能手机销量在2024年第四季度同比下降3.2%,成为2024年唯一出现同比下滑的季度。而对于各大智能手机品牌来说,他们的市场份额和格局也在悄然发生变化。 华为逆势向上 在2024年第…...

国产编辑器EverEdit - 输出窗口

1 输出窗口 1.1 应用场景 输出窗口可以显示用户执行某些操作的结果,主要包括: 查找类:查找全部,筛选等待操作,可以把查找结果打印到输出窗口中; 程序类:在执行外部程序时(如:命令窗…...

获取snmp oid的小方法1(随手记)

snmpwalk遍历设备的mib # snmpwalk -v <SNMP version> -c <community-id> <IP> . snmpwalk -v 2c -c test 192.168.100.201 .根据获取的值&#xff0c;找到某一个想要的值的oid # SNMPv2-MIB::sysName.0 STRING: test1 [rootzabbix01 fonts]# snmpwalk -v…...

DeepSeek模型:开启人工智能的新篇章

DeepSeek模型&#xff1a;开启人工智能的新篇章 在当今快速发展的技术浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了推动社会进步和创新的核心力量之一。而DeepSeek模型&#xff0c;作为AI领域的一颗璀璨明珠&#xff0c;正以其强大的功能和灵活的用法&…...

望获实时Linux系统:2024回顾与2025展望

2024年回顾 功能安全认证 2024年4月&#xff0c;望获操作系统V2获ISO26262:2018功能安全产品认证&#xff08;ASIL B等级&#xff09;&#xff0c;达到国际功能安全标准。 EtherCAT实时性增强 2024年5月&#xff0c;发布通信实时增强组件&#xff0c;EtherCAT总线通信抖…...

2025_1_29 C语言学习中关于指针

1. 指针 指针就是存储的变量的地址&#xff0c;指针变量就是指针的变量。 1.1 空指针 当定义一个指针没有明确指向内容时&#xff0c;就可以将他设置为空指针 int* p NULL;这样对空指针的操作就会使程序崩溃而不会导致出现未定义行为&#xff0c;因为程序崩溃是宏观的&…...

SQL注入漏洞之高阶手法 宽字节注入以及编码解释 以及堆叠注入原理说明

目录 宽字节注入 编码区分 原理 函数 转译符号解释 注意 绕过方式详解 堆叠【Stack】注入攻击 注入语句 宽字节注入 在说宽字节注入之前 我们需要知道编码相关的知识点&#xff0c;这个有助于搞定什么是宽字节注入 分清楚是ascii码是什么宽字节注入代码里面加入了adds…...

doris:JSON

JSON 数据类型&#xff0c;用二进制格式高效存储 JSON 数据&#xff0c;通过 JSON 函数访问其内部字段。 默认支持 1048576 字节&#xff08;1 MB&#xff09;&#xff0c;可调大到 2147483643 字节&#xff08;2 GB&#xff09;&#xff0c;可通过 BE 配置string_type_length…...

ADC 精度 第一部分:精度与分辨率是否不同?

在与使用模数转换器&#xff08;ADC&#xff09;的系统设计师交谈时&#xff0c;我经常听到的一个最常见问题是&#xff1a; “你们的16位ADC也是16位准确的吗&#xff1f;” 这个问题的答案在于对分辨率和精度这两个概念的基本理解存在差异。尽管这是两个完全不同的概念&…...

生成模型:扩散模型(DDPM, DDIM, 条件生成)

扩散模型的理论较为复杂&#xff0c;论文公式与开源代码都难以理解。现有的教程大多侧重推导公式。为此&#xff0c;本文通过精简代码&#xff08;约300行&#xff09;&#xff0c;更多以代码运行角度讲解扩散模型。 本代码包括扩散模型的主流技术复现&#xff1a; 1.DDPM (De…...

人格分裂(交互问答)-小白想懂Elasticsearch

通过交互式追问了解一个中间件 ? 啥是Elasticsearch ! 分布式搜索和分析引擎 ? 为啥是分布式搜索&#xff0c;单体难道用不了吗 ? 实际上是说这个东西可以分布式部署 ! 单机可用但扩展性差&#xff0c;分布式通过分片、副本和负载均衡实现海量数据存储与高并发处理 ? 提…...

【hot100】刷题记录(7)-除自身数组以外的乘积

题目描述&#xff1a; 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#x…...

鸢尾花书01---基本介绍和Jupyterlab的上手

文章目录 1.致谢和推荐2.py和.ipynb区别3.Jupyterlab的上手3.1入口3.2页面展示3.3相关键介绍3.4代码的运行3.5重命名3.6latex和markdown说明 1.致谢和推荐 这个系列是关于一套书籍&#xff0c;结合了python和数学&#xff0c;机器学习等等相关的理论&#xff0c;总结的7本书籍…...

可扩展架构:如何打造一个善变的柔性系统?

系统的构成:模块 + 关系 我们天天和系统打交道,但你有没想过系统到底是什么?在我看来,系统内部是有明确结构 的,它可以简化表达为: 系统 = 模块 + 关系 在这里,模块是系统的基本组成部分,它泛指子系统、应用、服务或功能模块。关系指模块 之间的依赖关系,简单…...

C++并发:C++内存模型和原子操作

C11引入了新的线程感知内存模型。内存模型精确定义了基础构建单元应当如何被运转。 1 内存模型基础 内存模型牵涉两个方面&#xff1a;基本结构和并发。 基本结构关系到整个程序在内存中的布局。 1.1 对象和内存区域 C的数据包括&#xff1a; 内建基本类型&#xff1a;int&…...

实验作业管理系统的设计与实现

标题:实验作业管理系统的设计与实现 内容:1.摘要 本系统旨在解决当前实验作业管理中存在的问题&#xff0c;提高管理效率和质量。通过对现有系统的调研和分析&#xff0c;我们确定了系统的功能需求和性能要求&#xff0c;并采用了先进的技术和架构进行设计和实现。系统实现了实…...

宝塔mysql数据库容量限制_宝塔数据库mysql-bin.000001占用磁盘空间过大

磁盘空间占用过多&#xff0c;排查后发现网站/www/wwwroot只占用7G&#xff0c;/www/server占用却高达8G&#xff0c;再深入排查发现/www/server/data目录下的mysql-bin.000001和mysql-bin.000002两个日志文件占去了1.5G空间。 百度后学到以下知识&#xff0c;做个记录。 mysql…...

2859.计算K置位下标对应元素的和

示例 1&#xff1a;输入&#xff1a;nums [5,10,1,5,2], k 1 输出&#xff1a;13 解释&#xff1a;下标的二进制表示是&#xff1a; 0 0002 1 0012 2 0102 3 0112 4 1002 下标 1、2 和 4 在其二进制表示中都存在 k 1 个置位。 因此&#xff0c;答案为 nums[1] nums[…...

8. 网络编程

网络的基本概念 TCP/IP协议概述 OSI和TCP/IP模型 socket&#xff08;套接字&#xff09; 创建socket 字节序 字节序转换函数 通用地址结构 因特网地址结构 IPV4地址族和字符地址间的转换(点分十进制->网络字节序) 填写IPV4地址族结构案例 掌握TCP协议网络基础编程 相关函数 …...

关于opencv环境搭建问题:由于找不到opencv_worldXXX.dll,无法执行代码,重新安装程序可能会解决此问题

方法一&#xff1a;利用复制黏贴方法 打开opencv文件夹目录找到\opencv\build\x64\vc15\bin 复制该目录下所有文件&#xff0c;找到C:\Windows\System32文件夹&#xff08;注意一定是C盘&#xff09;黏贴至该文件夹重新打开VS。 方法二&#xff1a;直接配置环境 打开opencv文…...

Git Bash 配置 zsh

博客食用更佳 博客链接 安装 zsh 安装 Zsh 安装 Oh-my-zsh github仓库 sh -c "$(curl -fsSL https://install.ohmyz.sh/)"让 zsh 成为 git bash 默认终端 vi ~/.bashrc写入&#xff1a; if [ -t 1 ]; thenexec zsh fisource ~/.bashrc再重启即可。 更换主题 …...

DeepSeek-R1 本地部署模型流程

DeepSeek-R1 本地部署模型流程 ***************************************************** 环境准备 操作系统&#xff1a;Windows11 内存&#xff1a;32GB RAM 存储&#xff1a;预留 300GB 可用空间 显存: 16G 网络: 100M带宽 ********************************************…...

C++ unordered_map和unordered_set的使用,哈希表的实现

文章目录 unordered_map&#xff0c;unorder_set和map &#xff0c;set的差异哈希表的实现概念直接定址法哈希冲突哈希冲突举个例子 负载因子将关键字转为整数哈希函数除法散列法/除留余数法 哈希冲突的解决方法开放定址法线性探测二次探测 开放定址法代码实现 哈希表的代码 un…...

C#通过3E帧SLMP/MC协议读写三菱FX5U/Q系列PLC数据案例

C#通过3E帧SLMP/MC协议读写三菱FX5U/Q系列PLC数据案例&#xff0c;仅做数据读写报文测试。附带自己整理的SLMP/MC通讯协议表。 SLMP以太网读写PLC数据20191206/.vs/WindowsFormsApp7/v15/.suo , 73216 SLMP以太网读写PLC数据20191206/SLMP与MC协议3E帧通讯协议表.xlsx , 10382…...