SystemVerilog Assertions应用指南 Chapter 1.16“ended”结构

2023-10-20 22:21

本文主要是介绍SystemVerilog Assertions应用指南 Chapter 1.16“ended”结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 1.16“ended”结构

        到目前为止,定义的序列都只是用了简单的连接( concatenation)的机制。换句话说,就是将多个序列以序列的起始点作为同步点,来组合成时间上连续的检查。SVA还提供了另种使用序列的结束点作为同步点的连接机制。这种机制通过给序列名字追加上关键词“ ended”来表示。例如,s. ended表示序列的结束点。关键词“ ended”保存了一个布尔值,值的真假取决于序列是否在特定的时钟边沿匹配检验。这个 s.ended的布尔值只有在相同时钟周期有效。
        序列sl5a和s15b是两个需要多个时钟周期来完成的简单序列,属性pl5a检查序列s15a和序列s15b满足两者间隔一个时钟周期的延迟分别匹配检验。属性p15b检査相同的协议,但是使用了关键词“ ended”。在这种情况下,两个序列在结束点同步。由于使用了结束点,两个序列间加上了两个时钟周期的延迟,来保证断言检验的协议与pl5a相同。

sequence s15a ;@(posedge clk) a ##1 b;
endsequencesequence s15b;@(posedge clk) c ##1 d;
endsequenceproperty p15a;s15a |-> s15b;
endpropertyproperty p15b;s15a.ended |-> ##2 s15b.ended;
endpropertya15a: assert property(p15a);
a15b: assert property(p15b);

        图1-18显示了属性p15a和p15b在模拟中的响应。表1-10总结了断言a15a和a15b的状态。断言a15a的第一个真正的成功发生在时钟周期2。当信号“a”被检测为高,检验在时钟周期2被激活。当信号“d”在时钟周期5检测为高时,检验完成。断言a15b的第一次真正成功出现在在时钟周期3。在时钟周期3,当序列s15a成功,即信号“b”被检测为高时检验被激活。接着在时钟周期5当序列s15b成功,或者说信号“d”被检测为高时,检验完成。

        断言a15a的第一次失败发生在时钟周期5。当信号“a”在给定的时钟上升沿为高,且一个时钟周期以后(时钟周期6)信号“b紧接着为高时,检测到一个有效的起始点。这样就会检查后续算子,因为信号“c”在下一个时钟周期不为高,检验失败于时钟周期7。
        相应地,断言a15b的第一个失败出现在时钟周期6。当序列s15a在时钟周期6成功结束时,检测到一个有效的起始点。接着检验后续算子在时钟周期8是否得到一个有效的结束点。因为信号“c”在时钟周期7不像期望的那样为高,序列的结束点的值为假,导致检验在时钟周期8为假。上述例子中,我们用了两种不同的方法来实现统一个检验。
        第一种方法基于序列的起始点来同步序列。第二种方法基于序列的结束点来同步序列。

这篇关于SystemVerilog Assertions应用指南 Chapter 1.16“ended”结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/250102

相关文章

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

Oracle迁移PostgreSQL隐式类型转换配置指南

《Oracle迁移PostgreSQL隐式类型转换配置指南》Oracle迁移PostgreSQL时因类型差异易引发错误,需通过显式/隐式类型转换、转换关系管理及冲突处理解决,并配合验证测试确保数据一致... 目录一、问题背景二、解决方案1. 显式类型转换2. 隐式转换配置三、维护操作1. 转换关系管理2.

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Oracle查询表结构建表语句索引等方式

《Oracle查询表结构建表语句索引等方式》使用USER_TAB_COLUMNS查询表结构可避免系统隐藏字段(如LISTUSER的CLOB与VARCHAR2同名字段),这些字段可能为dbms_lob.... 目录oracle查询表结构建表语句索引1.用“USER_TAB_COLUMNS”查询表结构2.用“a

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录