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

SVA 断言16.9 Sequence operations序列运算翻译笔记(12)

16.9.1运算优先级

        如下所示,优先级从上到下:

 16.9.2 序列重复

        序列内子序列连续重复的效果,可以通过明确地(显式)迭代子序列来实现:

//例1
a ##1 b ##1 b ##1 b ##1 c

        使用连续重复运算符 [*3] ,显示了三次迭代,这种顺序行为被更简洁地指定:

a ##1 b [*3] ##1 c
//例2
a [*3] means a ##1 a ##1 a
a [*0]    //表示一个空序列结果

        空序列是指匹配零个时钟信号,而不匹配任何正时钟信号的序列,以下规则适用于将序列与空序列串联,空序列表示为empty,序列表示为seq

(empty ##0 seq) //不会产生匹配
(seq ##0 empty) //不会产生匹配
(empty ##n seq), 其中n大于0, 等价于(##(n-1) seq).
(seq ##n empty), 其中n大于0, 等价于(seq ##(n-1) `true).
//例3
b ##1 ( a[*0] ##0 c)

        例3不生成序列的匹配项。

//例4
b ##1 a[*0:1] ##2 c
//等价于
b ##2 c or b ##1 a ##2 c

        语法在同一序列允许延迟和重复的组合:

`true ##3 (a [*3])     // means `true ##1 `true ##1 `true ##1 a ##1 a ##1 a
(`true ##2 a) [*3]     // means (`true ##2 a) ##1 (`true ##2 a) ##1// (`true ##2 a), which in turn means `true ##1 `true
##1// a ##1 `true ##1 `true ##1 a ##1 `true ##1 `true ##1 a
//例5
(a ##2 b) [*5]
//等价于
(a ##2 b ##1 a ##2 b ##1 a ##2 b ##1 a ##2 b ##1 a ##2 b)

        具有最小min最大max迭代次数范围的重复,能用连续重复运算符[* min:max]表示。

//例6
(a ##2 b)[*1:5]
//等价于
(a ##2 b)
or (a ##2 b ##1 a ##2 b)
or (a ##2 b ##1 a ##2 b ##1 a ##2 b)
or (a ##2 b ##1 a ##2 b ##1 a ##2 b ##1 a ##2 b)
or (a ##2 b ##1 a ##2 b ##1 a ##2 b ##1 a ##2 b ##1 a ##2 b)

        同样

//例7
(a[*0:3] ##1 b ##1 c)
//等价于
(b ##1 c)    //注意:a重复次数为0,则其后所跟##1 不执行
or (a ##1 b ##1 c)
or (a ##1 a ##1 b ##1 c)
or (a ##1 a ##1 a ##1 b ##1 c)

        有限的无限重复的情况:

//例8
a ##1 b [*1:$] ##1 c    //a在第一拍为真,c在最后一拍为真,b严格在第一和最后一拍之间为真

        通过精确计数指定重复的迭代次数,相当于指定最小重复次数等于最大重复次数的范,即,seq[*n]等同于seq[*n:n]。

        非连续精确重复将布尔表达式而不是序列作为操作数,它指定布尔表达式在不一定连续且在最后一次迭代匹配时,结束的时钟点处的迭代匹配:

//例9
a ##1 b [->2:10] ##1 c

        在第一拍a为真,在最后一拍c为真,b在倒数第二拍上为真,包括倒数第二拍,在b为真的第一拍和最后一拍之间至少有2个、最多有10个不一定是连续的时钟节拍。

 例9等价于

a ##1 ((!b[*0:$] ##1 b) [*2:10]) ##1 c
//例10
a ##1 b [=2:10] ##1 c
//等价于
a ##1 ((!b [*0:$] ##1 b) [*2:10]) ##1 !b[*0:$] ##1 c

相关文章:

  • 香港科技大学(广州)智能制造理学硕士招生宣讲会——深圳大学专场
  • Nextjs App Router 开发指南
  • leetcode 找到字符串中所有字母异位词 java
  • 百度网盘加速补丁v7.14.1.6使用指南|PC不限速下载实操教程
  • 你知道mysql的索引下推么?
  • Doris高性能读能力与实时性实现原理
  • 【优秀三方库研读】在 quill 开源库中 QUILL_MAGIC_SEPARATOR 的作用是什么,解决了什么问题
  • 【Java】封装在 Java 中是怎样实现的?
  • 基于springboot的网上学校超市商城系统【附源码】
  • [Vue]组件介绍和父子组件间传值
  • 广东省省考备考(第十五天5.20)—言语(第六节课)
  • MySQL基础关键_014_MySQL 练习题
  • 阿里云百炼(1) : 阿里云百炼应用问答_回答图片问题_方案1_提问时上传图片文件
  • 北斗导航 | 基于matlab的多波束技术的卫星通信系统性能仿真
  • 实战:基于Pangolin Scrape API,如何高效稳定采集亚马逊BSR数据并破解反爬虫?
  • Python数据可视化再探——Matplotlib模块 之二
  • 计算机视觉与深度学习 | Matlab实现EMD-GWO-SVR、EMD-SVR、GWO-SVR、SVR时间序列预测(完整源码和数据)
  • 分布式ID生成器:原理、对比与WorkerID实战
  • 【PTA】 520 钻石争霸赛 2025
  • 基于springboot的个人博客系统【附源码】
  • 第九届非遗节首设主宾国主宾城机制,非遗品牌IP授权获关注
  • 中国建设银行原党委委员、副行长章更生被决定逮捕
  • 宋鹍已任首都机场集团有限公司董事长、党委书记
  • “敌人已经够多了”,菲总统马科斯:愿与杜特尔特家族和解
  • 《歌手2025》能否“爆”下去?
  • 周慧芳任上海交通大学医学院附属上海儿童医学中心党委书记