System Verilog断言

news2025/1/1 23:51:58

简介

断言通常被称为序列监视器或者序列检验器,是对设计应当如何执行特定行为的描述,是一种嵌入设计检查。如果检查的属性(property)不是我们期望的表现,那么在我们期望事件序列的故障上会产生警告或者错误提示。
断言用来检查模拟序列行为或者激励生成的正确性,断言作为功能验证的一种重要手段,可以脱离测试用例而覆盖测试点,所以断言覆盖率可以是功能覆盖率的一部分,完善的断言能为全面的功能覆盖率尺度打下良好的基础。
断言两个重要的时间点:采样时刻和匹配时刻,断言在 preponed 域采样,在observed 域执行检查。如下图所示:
在这里插入图片描述
断言可以分为多个层面,包括:

  1. 设计层面:设计意图相关的断言;
  2. 接口层面:模块接口相关断言、芯片功能意图相关断言、芯片接口相关断言;
  3. 性能层面:读取的缓存延迟、数据包处理延迟。如果超过设计时限则请求断言。

断言的两种类型

即时断言(immediate assertions)

在当前时刻断定信号的数值情况。例如

asser_inst:assert (foo) $display("pass");
            else $display("failed"); 
            //名字:assert(判断语句)若真执行语句1,否则执行语句2

并发断言(concyrrent assertions)

  • 在多个周期内断定序列顺序;
  • 并发断言是检查跨越多个时钟周期的事件序列;
  • 仅在有时钟周期的情况下出现;
  • 测试表达式是基于所涉及的采样值在时钟边缘计算的;
  • 可以放在过程块、模块、接口或程序定义中;
  • 区别并发断言和即时断言的关键字是property;

例如:
在这里插入图片描述

断言的基本语法

延时运算符

例:a ##3 b
含义是 a 有效后的第 3 拍(a 有效当拍为第 0 拍),b 也有效。如果 b 在第 3 拍未能有效,则序列匹配失败,如下图所示:
在这里插入图片描述
a ##[m:n] b,例如a ##[2:4] b意味着a有效后的第2拍到第4拍之间b有效至少一次则序列匹配成功。
例子:波形为a ##3 b ##0 c,a ##3 b在120ns匹配成功,当拍a ##3 b ##0 c也匹配成功,因为120ns也是c的起点。

在这里插入图片描述

连续重复运算符

例1:a[*3],含义是a连续为1重复3拍,即a ##1 a ##1 a,如图所示:
在这里插入图片描述
例2:(a ##1 b)[*3],这个序列等同于(a ##1 b) ##1 (a ##1 b) ##1 (a ##1 b) ,如图所示:
在这里插入图片描述
例3:a [*m:n] b,如a[*2:4]含义为a信号重复2~4拍后b信号有效均可匹配成功,等同于a [*2] b or a [*3] b or a[*4] b。

非连续跟随重复符

a [->3],或者叫go-to重复符。含义是a非连续重复3次,只在第3次重复时刻点匹配(跟随的含义)。
例1:a ##1 b[->3] ##1 c,该序列表示在a有效之后,c有效之前,b应该有效3次且最后一次有效的时间应当恰好比c有效早1拍(跟随性),如下图所示:
在这里插入图片描述
例2:a [->m:n],对于序列a ##1 b[->2:3] ##1 c,即a重复2次或者3次时均匹配成功,以下两个波形都匹配成功。
在这里插入图片描述
在这里插入图片描述

非连续(无需跟随)重复操作符

例1:a [=3],含义是a无所谓连续不连续,重复了3次即匹配成功了。波形理解,图中标蓝的点都是匹配成功的点(无需跟随
在这里插入图片描述
而**a[->3]**匹配成功的点,只有一个(跟随)
在这里插入图片描述
例2:a ##1 b[=3] ##1 c,对于该序列,以下波形可以匹配成功,注意c无需跟随b[=3]。
在这里插入图片描述

and运算符

and运算符用来连接两个事件(多为序列),当两个事件均成功时匹配成功,需要注意的是两个事件必须有相同的起始点,但是可以有不同的结束点

or运算符

or运算符用来连接两个事件(多为序列),当两个事件任一匹配成功则整体成功,与|的区别和之前类似,or可以连接两个表达式或是两个序列,|只能连接两个表达式

intersect运算符

intersect和and有些类似,均为连接两个事件,两个事件均成功整个匹配才成功。不过intersect多了一个条件,那就是两个事件必须在同一时刻结束(and已经需要保证两个事件同一时刻开始了),换句话说a intersect b能匹配成功,a、b两个序列的长度必须相等
例如,(a ##[1:2] b) intersect (c ##[2:3] d),如下图。图中黄色点为a ##[1:2] b匹配成功时刻点,蓝色为c ##[2:3] d匹配成功点,根据我们之前的分析,intersect连接的两个序列必须有同样的结束时刻,因此整个序列匹配的时间点一定在黄色和蓝色重合的点中。
在这里插入图片描述

within运算符

a within b的含义是在事件b(序列b)匹配期间,事件a(序列a)至少出现1次则匹配成功,否则失败。如(a ##1 b[=3]) within (c ##1 d[->1])。
在这里插入图片描述

throughout运算符

throughout运算符和intersect有些接近,区别在于throughout必须连接一个表达式和一个序列,即req throughout seq,含义是在seq匹配起始到结束期间,req都必须成立。例如a throughout (b ##1 c[->1])就要求从b有效开始,直到c第一次有效结束,这段期间a必须始终保持有效,如下波形图60ns~140ns就是一次典型的匹配成功。
在这里插入图片描述

SV的内建函数

$rose

$rose()函数即上升沿检测,匹配规则是信号的当拍值为1上拍数据为0。以$rose(a, clk1)为例,如下图所示:

在这里插入图片描述

$fell

$fell()函数和$rose函数刚好相反,是检测下降沿的

$change

$fell()函数和$rose函数的结合体,当拍采样值与上一拍不一致则匹配成功

$stable

$stable和$change刚好相反,信号当拍采样值与上一拍一样则匹配成功

$onehot(a)

任意时钟沿,表达式a都只有1bit为高

$onehot0(a)

任意时钟沿,表达式a都只有1bit为高或均为低电平

$isunkown(a)

任意时钟沿,表达式a任意位是否有X态或者Z态,如果有则匹配,没有X态或Z态则报错

$countones(a)

用于返回表达式中高电平的bit数量

蕴含算子

蕴含算子类似代码中的if语句。蕴含算子仅两个:|->|=>,二者区别也很简单:

  1. a |-> b的含义是若a事件发生,则从当拍(##0)开始,检查b事件是否会有效(匹配),若b无法匹配则断言失败,若能匹配则成功。
  2. a |=> b和前者唯一的区别为:|=>是从下一拍(##1)开始检查,等同于a |-> ##1 b。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC:整合SSM框架

一、大致框架 1.建立数据库,并导入数据 create database cjgl; create table books( bookID int(10) not null auto_increment comment 书id, bookName varchar(100) not null comment 书名, bookCounts int(11) not null comment 数量, detail varchar(200) no…

C. Planar Reflections

题目如下: 思路 or 题解 我们可以通过图解发现:可以递推找到答案了 我们约定:dp[i][j]dp[i][j]dp[i][j] 第 iii 个板, 衰变年龄为jjj 的答案是 dp[i][j]dp[i][j]dp[i][j] 我们通过图解找到转移方程: dp[i][j]dp[i−1][j]dp[n−i]…

[附源码]Python计算机毕业设计Django时间管理软件app

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

数据结构【红黑树模拟实现】

目录 红黑树:基于AVL树改进 红黑树的性质 红黑树基本结构 insert基本结构 新增节点的默认颜色为红色 节点性质总结 情况一: cur为红,p为红,g为黑,u存在且为红 情况二: cur为红,p为红,g为黑&#xf…

基于web的电子图书管理系统

目  录 中文摘要(关键词) 1 英文摘要(关键词) 1 前 言 2 1概述 3 1.1系统研究背景 3 1.2系统研究意义 3 2 需求分析 4 2.1可行性分析 4 2.2功能需求分析 4 2.3非功能需求分析 5 3系统分析 6 3.1系统业务流程分析 6 3.2系统数据…

web前端课程设计 HTML+CSS+JavaScript旅游风景云南城市网页设计与实现 web前端课程设计代码 web课程设计 HTML网页制作代码

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

狂神说多线程学习笔记

一、线程简介 1、多任务 现实中太多这样同时做多件事情的例子了,看起来是多个任务都在做,其实本质上我们的大脑在同一时间依旧只做了一件事情。 2、多线程 原来是一条路,慢慢因为车太多了,道路阻塞,效率极低。为了提…

【信管2.6】项目可研(二)详细可行性研究

项目可研(二)详细可行性研究在实际的整个项目可研的过程中,机会研究和初步可行性研究有可能不会出现,但详细可行性研究这个步骤是不可缺少的。比如说一些升级改造的项目可能需要初步和详细的可行性研究,而一些小项目可…

阿里P8大牛带你深入理解SpringCloud微服务构建文档

前言 蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员&#…

嵌入式开发学习之--RCC(下)

文章目录前言一、使用HSE二、使用HSI三、代码编写总结前言 这一篇记录一下时钟的具体实验。 提示:以下是本篇文章正文内容,下面案例可供参考 一、使用HSE 一般情况下,我们都是使用 HSE,然后 HSE 经过 PLL 倍频之后作为系统时钟…

WRF模式、WRF-SOLAR、WRF-UCM、人工智能气象、FLEXPART、CMIP6数据处理、LEAP模型

1、《高精度气象模拟软件 WRF 实践技术及案例应用》 时间:12月17-18日、24-25日、31日 2、《双碳目标下太阳辐射预报模式【WRF-SOLAR】及改进技术在气象、农林、电力等相关领域中的实践应用 》 时间:12月10-11日、17日-18日 3、《第三期Python人工智能在…

TGK-Planner无人机运动规划算法解读

高速移动无人机的在线路径规划一直是学界当前研究的难点,引起了大量机器人行业的研究人员与工程师的关注。然而无人机的计算资源有限,要在短时间内规划出一条安全可执行的路径,这就要求无人机的运动规划算法必须轻型而有效。本文将介绍一种无…

Java项目:SSM企业OA管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与普通员工两种角色, 管理员角色包含以下功能: 岗位管理,部门管理,工龄奖金管理,员工管理,考勤管理,…

Linux下Jenkins服务器安装与使用

CentOS7环境下安装Jenkins​ JDK安装详细见: JDK安装详细步骤 ​ jenkins安装 Jenkins源添加 **注意: ** 问题1、在添加Jenkins源时会出现以下错误 这是由于没有安装wget软件包的原因 进行wget软件包的安装: yum -y install wget 问题2…

HTML网页设计制作——初音动漫(6页) dreamweaver作业静态HTML网页设计模板

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

市面上跑步耳机哪种好、2023年最适合跑步用的耳机排名

这几年,越来越多人注意到了身体健康的重要性,而随着今年飞盘、露营、刘畊宏女孩的兴起,再到卡塔尔世界杯,不断刺激大众运动、健身的热情,面对全民运动热潮,作为普通人应该如何保持激情,实现身心…

Pr:导出设置之编码设置

视频 VIDEO设置因所选导出格式而异。每种格式都有独特的要求,这些要求决定了哪些设置可用。以导出 H.264 文件格式为例,下面给出有关编码设置 Encoding Settings的选项及说明。性能Performance--硬件加速Hardware Encoding利用系统的可用 GPU 硬件&#…

前后端分离模式下,SpringBoot + CAS 单点登录实现方案

1.CAS服务端构建 1.1.war包部署 cas5.3版本 https://github.com/apereo/cas-overlay-template 构建完成后将war包部署到tomcat即可 1.2.配置文件修改 支持http协议 修改apache-tomcat-8.5.53\webapps\cas\WEB-INF\classes\services目录下的HTTPSandIMAPS-10000001.json&…

PDF文档一键自动生成目录和书签

在工作中经常会遇到编写文档的时候,当我们在word编写完文档后,一般可以自动生成一个目录。为了方便阅读和保护文档不被破坏,一般发送给别人的时候,需要把word文档转换成PDF格式。但是word文档转换为PDF格式后,目录虽然…