SystemVerilog Assertions应用指南 Chapter1.35“ matched”构造

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

        任何时候如果一个序列定义了多个时钟,构造“ matched”可以用来监测第一个子序列的结束点。序列s_a查找信号“a”的上升沿。而信号“a”是根据时钟“ckl”来采样的。序列s_b查找信号“b”的上升沿。信号“b”则是根据时钟“ck2”来样的。属性 p_match验证在给定的时钟“clk2”的上升沿,如果序列s_a匹配,那么在一个周期后,序列s_b也必须为真。

sequence s_a;@(posedge clk1) $rose(a);
endsequencesequence s_b;@(posedge clk2) $rose(b);
endsequenceproperty p_match;@(posedge clk2) s_a.matched |=> s_b;
endpropertya_match: assert property (p_match);

        图1-40显示了断言 a match在模拟中的表现。属性在序列s_a匹配的时候得到有效开始。注意,虽然序列s_a是根据时钟“clk1”来采样的,但我们只在时钟“clk2”的每个上升沿查找这种匹配。
        在“clk1”的时钟周期3,信号“a”有一次有效的上升。这将更新序列s_a的匹配值为真。这个值一直被保持到“clk2”的最近的时钟上升沿,也就是“clk2”的时钟周期2。在这一个时间点,属性被激活,并且在“clk2”的下一个时钟周期,期望序列s_b匹配。因此属性的第一次成功开始于“clk2”的时钟周期2,结束于“clk2”的时钟周期3。

        信号“a”的另一个有效上升发生在信号“clk1”的时钟周期11,并且在“clk2”的时钟周期5被属性采样到。属性在这个点被激活,并且期望在“clk2”的时钟周期6,序列sb匹配。但是这次,信号“b”的上升沿没能出现,因此属性失败。理解“ matched构造的使用方法的关键在于,被采样到的匹配的值一直被保存到另-一个序列最近的下一个时钟边沿。

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



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

相关文章

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 编码问题的常见场景二