SystemVerilog Assertions应用指南 Chapter1.38在序列匹配时调用子程序

        SVA可以在序列每次成功匹配时调用子程序。同一序列中定义的局部变量可以作为参数传给这些子程序。对于序列的每次匹配,子程序调用的执行与它们在序列定义中的顺序相同

module sub;

logic a, b, clk;

initial $vcdpluson();

initial begin
clk = 1'b0; a=1'b0; b=1'b0;
repeat(2) @(posedge clk);
a=1'b1;
repeat(1) @(posedge clk);
a=1'b0;
repeat(2) @(posedge clk);
b=1'b1;
repeat(1) @(posedge clk);
b=1'b0;

repeat(2) @(posedge clk);
a=1'b1;
repeat(1) @(posedge clk);
a=1'b0;
repeat(6) @(posedge clk);
b=1'b1;
repeat(1) @(posedge clk);
b=1'b0;

repeat(2) @(posedge clk);
$finish;
end

initial forever clk = #25 ~ clk;

sequence s_display1;
	@(posedge clk) ($rose(a), $display("Signal a arrived at %t\n", $time));
endsequence

sequence s_display2;
	@(posedge clk) ($rose(b), $display("Signal b arrived at %t\n", $time));
endsequence

property p_display_window;
	@(posedge clk) s_display1 |-> ##[2:5] s_display2;
endproperty

a_display_window : assert property(p_display_window);

endmodule

        序列 s_display1查找信号“a”的上升沿。如果匹配,就执行display语句。序列 s_display2对信号“b”作类似的检查。属性p_display_window检验如果序列 s_display1出现,那么序列s_display2必须在2~5个时钟周期之间的某个时刻出现。使用display语句,用户可以得到精确的信息,了解后续序列经过多少个时钟周期完成。图1-43显示了检验在模拟中的响应。
        标记1s显示了由于检测到信号“a”的上升沿而得到的一个检验器的有效开始。在这一点,SVA执行序列 s_display1的 display语句。标记1e显示了信号“b”出现上升沿的点。因为它出现在3个时钟周期后,所以检验成功。在这个点上,执行序列 s_display2的 display语句。
        标记2s显示了由于检测到信号“a”的上升沿而得到的检验器的另一个有效开始。在这一点,SVA执行序列 s_display1的display语句。标记2e显示了检验器的结束点。信号“b”的有效上升沿没能在2~5个时钟周期内出现,因此检验失败。由于第个序列没有匹配,序列相关的 display语句没有执行。SⅤA发出一个默认的出错信息。

在波形窗口显示的断言结果如下所示:


一个模拟日志的实例如下所示。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python实验16_网络爬虫

实验16:网络爬虫 1.实验目标及要求 (1)掌握简单爬虫方法。 2. 实验主要内容 爬取中国票房网 ① 爬取中国票房网(www.cbooo.cn)2019年票房排行榜前20名的电影相关数据 代码部分: import time from selenium.webdriver impor…

3,4,6,9,?,18

3,4,6,9,?,18 逐步变大的递增数组 分析一: 3 6 -1 4 x 2 4 9 -1 6 x 2 6 ? -1 9 x 2 ? 13 9 18 -1 ? x 2 ? 13 分析二: 4 - 3 1 6 - 4 2 9 - 6 3 ?- 9 4 …

华为OD技术面试-最短距离矩阵(动态规划、广度优先)

背景 记录2023-10-21 晚华为OD三面的手撕代码题,当时没做出来,给面试官说了我的想法,评价:解法复杂了,只是简单的动态规范 或 广度优先算法,事后找资料记录实现方式。 题目 腐烂的橘子 问题描述&#xff…

【计算机网络】UDP的报文结构和注意事项

UDP(User Datagram Protocol,用户数据报协议)是一种无连接的协议,它在传输层中提供了简单、不可靠的数据传输服务。与TCP(Transmission Control Protocol,传输控制协议)不同,UDP不需要建立连接&…

如何理解Go言中的Context?

目前看过除了《go语言程序设计》以外最好的教程:https://www.practical-go-lessons.com 原文:https://www.practical-go-lessons.com/chap-37-context 你将在本章中学到什么? 1.什么是上下文? 2.什么是链表? 3.如何…

基于卷积优化优化的BP神经网络(分类应用) - 附代码

基于卷积优化优化的BP神经网络(分类应用) - 附代码 文章目录 基于卷积优化优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.卷积优化优化BP神经网络3.1 BP神经网络参数设置3.2 卷积优化算法应用 4.测试结果…

VMware虚拟机中ubuntu网络连接不上

VMware虚拟机中ubuntu中网络连接不上 解决方案其他虚拟机网络 解决方案 1.选择VMware中编辑-虚拟网络编辑器-更改: 设置为你喜欢的模式,这里为NET模式 2.选中ubuntu虚拟机(关机后的虚拟机),点击:编辑虚拟机…

大疆 dji mini4pro 不同充电器头 充电速度

协议 dp100w 头线 充电功率33.2w 指示灯快闪 一加手机官方充电头线(协议:wrap65w闪充) 12.1w 指示灯慢闪 官方 DJI Mini 4 Pro - 技术参数 - DJI 大疆创新 总结 买pd快充协议的头线即可。

手写SDK的秘诀

目录 什么是SDK?使用SDK的好处?手写SDK经验总结易用性如何提高易用性?1、统一调用2、集中配置3、良好的命名 可理解性1、结构清晰2、统一风格3、编写注释4、说明文档 可扩展性轻量依赖自定义实现 高效稳定 写在最后 什么是SDK? SDK(Softwa…

不开源项目aspose.cells最新版23.10的一些科普

1.基本介绍 日常工作中我们常常会使用到Excel来做一些事情,也常常需要使用代码程序来解析Excel文件,目前来说对于poi、easypoi、easyexcel、jxls的使用已经非常多了,它们都在一些特定情况下很好的去处理Excel文件,但有些时候我们…

Python Opencv实践 - 车辆统计(2)检测线绘制,车辆数量计数和显示

针对我所使用的视频,对上一节的代码进行了修改,增加了更多参数。 Python Opencv实践 - 车辆统计(1)读取视频,移除背景,做预处理_亦枫Leonlew的博客-CSDN博客示例中的图像的腐蚀、膨胀和闭运算等需要根据具…

提升用户体验的利器:揭秘Spring框架中国际化的奇妙魔力

国际化 简单来说,国际化就是让应用(app、web)适应不同的语言和地区的需要,比如根据地区选择页面展示语言。 i18ninternationalization,首末字符i和n,18为中间的字符数 原理 基于传入语言or地区标识进行判…

BC v1.2充电规范

1 JEITA Reference to https://www.mianbaoban.cn/blog/post/169964 符合 JEITA 规范的锂离子电池充电器解决方案 2 Battery Fuel Gauge 2.1 Cycle Count(充放电循环次数) 此指令回传一只读字段,代表电芯组已经历的完整充放电循环数。当放电容…

CSS常见选择器总结

1.简单选择器 简单选择器是开发中使用最多的选择器,包含: 元素选择器,使用元素的名称 类选择器,使用.类名 id选择器,使用#id id注意事项: 一个HTML文档里面的id值 是唯一的,不能重复 id值如…

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖”

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖” 2023年9月19日,2023年第23届中国国际工业博览会CIIF(以下简称“工博会”)在上海国家会展中心盛大开幕。震坤行紧跟智能制造产业发展步伐,携数字化解决…

STM32 invalid UTF-8 in comment 警告解决办法

这里写自定义目录标题 STM32 invalid UTF-8 in comment 警告解决办法问题描述解决办法 STM32 invalid UTF-8 in comment 警告解决办法 问题描述 …/…/libraries/CMSIS/CM3/DeviceSupport/ST/STM32F10x\stm32f10x.h(18): warning: invalid UTF-8 in comment [-Winvalid-utf8]…

软件工程第七周

内聚 耦合 (Coupling): 描述的是两个模块之间的相互依赖程度。控制耦合是耦合度的一种,表示一个模块控制另一个模块的流程。高度的耦合会导致软件维护困难,因为改变一个模块可能会对其他模块产生意外的影响。 内聚 (Cohesion): 描述的是模块内部各个元素…

操作教程|如何注册成为Moonbeam社区代表参与治理

社区代表是高度参与社区治理的社区成员,其主要职责是将社区成员委托给他们的投票权参与社区投票,并确保链上治理稳健发展和活跃参与度。本文将向您展示如何快速注册成为社区代表。 首先,前往Moonbeam委托网站,点击网页右上角的“…

【AI视野·今日Robot 机器人论文速览 第五十八期】Thu, 19 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Thu, 19 Oct 2023 Totally 25 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers InViG: Benchmarking Interactive Visual Grounding with 500K Human-Robot Interactions Authors Hanbo Zhang, Jie Xu, Yuch…

nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…