SystemVerilog Assertions应用指南 Chapter1.32 嵌套的蕴含

本文主要是介绍SystemVerilog Assertions应用指南 Chapter1.32 嵌套的蕴含,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        SVA允许使用嵌套的蕴含。当我们有多个门限条件指向一个最终的后续算子时,这种构造十分有用。
        属性 p_nest检验如果信号“a”有一个下降沿,则是一个有效开始,接着在一个周期后,信号“b”,“c”和“d”应该为低电平有效信号以保持这个有效开始。如果第二个条件匹配,那么在6到10个周期内期望“free”为真。注意,当且仅当信号“b”,“c”和“d”都匹配时,在后续状况( consequent condition)“fre”才会被检验是否为真。

`define free (a && b && c && d)property p_nest;@(posedge clk) $fell(a) |-> ##1 (!b && !c && !d ) |-> ##[6:10] `free;
endpropertya_nest :assert property(p_nest);

        同一个属性可以被重写成不使用嵌套蕴含的方式,如下所示。

property p_nest1;@(posedge clk) $fell(a) ##1 (!b && !c && !d)|-> ##[6:10] `free;
endpropertya_nest1 :assert property(p_nest1);


        注意:使用嵌套蕴含的属性 p nest中没有“else”情况,因此属性很容易就能重写成如 p_nesti所示的形式。
        图1-39显示了断言 a nest在模拟中的表现。标记1显示了检验器的第一次成功。当检测到信号“a”的下降沿时,出现一个有效开始。一个时钟周期后,信号“b”、“c”和“d”如预期地被检测为低。因此检验保持有效,后续算子被检验。在6个时钟周期后,检测到状况“free”为真,因此检验成功。
        第二个标记指出了下一个有效开始,在此检测到信号“a”的下降沿个周期后,检测到信号“c”和“b”为低,但是信号“b”不为低。因此检验没能保持有效,得到一个空成功。
        第三个标记也标出了一个有效开始,在此检测到信号“a”的下降沿。一个周期后,如期望的检测到信号“b”,“c”和“d”为低,因此检验保持有效,后续算子被检验。在6~10个时钟周期内,没有检验到状况“free”为真,因此检验失败。
 

这篇关于SystemVerilog Assertions应用指南 Chapter1.32 嵌套的蕴含的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二