断言

news/2025/10/15 18:03:21/文章来源:https://www.cnblogs.com/VerweileDoch/p/19143954

搬运:SystemVerilog断言与bind实践 - 知乎

在集成电路前端工作中,设计和验证都会用到断言(SVA), 设计用断言初步保证状态机等按设想跳转, 而验证希望用断言覆盖信号级的功能点。在使用断言时,即使你是设计人员, 也不太推荐将断言写在RTL代码的同一文件里,因为按照理解,RTL是可综合的,是芯片上的实际器件,而SVA不是;另外,rtl代码可能被某些EDA tool使用,但是该tool未必支持SVA。

废话少说,看如下一个FIFO,如何给它用bind添加断言?

就用这个写法:

而SVA写在一个module里:

这里注意点是:1.SVA module里的端口包括DUT的全部接口,以及你想检查的内部信号,注意方向上接口取反,内部信号均为input;

2.bind 写法是bind dut_module sva_module inst_name(.), 之所以SVA module端口添加了全部DUT接口(你可能并不需要检测全部接口),就是因为可以.*通配,非常方便;

bind一个SVA module,可以连接到如下两种情况:

1)某个module的全部实例;

这样所有的fifo1的实例全部会做SVA check。

另外,这个bind语句写在哪里比较合适呢?写在top_tb里就好,和DUT是平级的,层次比较清楚。

2)某个module的单个实例;

不推荐这么干!!!原因有二:这个写法在新VCS里是认的,但是老版VCS可能不认,所以自找麻烦;此外一个module的运行规则应该是一致的,如果你认为有不一致的地方,找找自身问题,设计问题或者验证决策问题,不该用断言来验证了。

再来看下个问题,如何bind断言至有参数的module?

要点就是,SVA module也同时参数化就行!我们之前说过,SVA module的接口和DUT是镜像的吧?那么参数也复制过来就行,如下面这个assert module,有一个参数SIZE,用法和DUT module一样就行。

这里还有一个技巧,就是断言的名字要长,有足够的信息量,在断言中不用$display打印信息,因为检查断言是否有检测到错本身就会在log打印了,之后需求去波形check,如果名字信息量够,往往无需再看断言怎么写的是什么功能,如下图大家看看,一目了然:

SVA concurrent与immediate的选择?

并发断言在周期结束时,每个周期只对所有重要信号采样一次,就在信号在下一个时钟边缘发生变化之前,就像实际的硬件寄存器采样一样。对于简单的SVA使用,我们通常不关心循环期间的组合沉降或故障,我们只关心循环结束时的最终值。下图是immediate断言:

即时断言在调用时按需采样信号。即时断言对于测试复位、预设和锁存启用等异步控制信号非常有用。如果任何异步控制信号出现故障,它们确实会立即引起变化,可能需要立即评估。

一般RTL里95%以上的信号可以在一个周期结束时进行采样,并进行适当评估,而可能只有约5%的异步

需要立即对控制信号进行采样和评估。这最能描述我自己的用法并发断言和即时断言的比率。

请记住,立即断言使用关键字assert,他们不会等到采样周期结束。

一些有用的宏:

这是并发断言的两个宏,并发断言以clk为依据,所以用宏来避免重复劳动。iff(!rst_n)代表复位时不用检测。

上面的宏使用和不使用的对比如下:

最后总结下本文的重点:

1.使用bind file

2.不要把sva写入rtl同文件

3.sva的label要长,比如ERR_AVALID_TOO_LONG,不要在断言中加display和uvm_info等

4.大多数断言都使用并发断言( 

@posedge

 clk),不要立即断言(除非验证异步复位等情况)

 

5.使用宏来避免重复劳动

 

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

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

相关文章

时延估计算法ETDGE的解析

关于时延估计算法ETDGE(Explicit Time Delay and Gain Estimator)的解析一、算法原理与架构 ETDGE是一种约束类自适应时延估计算法,通过联合估计时延参数和增益因子实现高精度时延估计。其核心创新点包括:双通道自…

2025年10月最新房产信息公布:西安买房新楼盘口碑推荐榜单Top10精选

摘要 随着西安城市化进程加速和人口增长,房产市场持续火热,2025年新楼盘聚焦品质、学区配套和交通便利性。本文基于行业数据和用户口碑,整理出西安买房新楼盘推荐榜单Top10,旨在为购房者提供参考。榜单综合考量项目…

备忘录:IDA*

备忘录:IDA*点击查看代码 #include<bits/stdc++.h> using namespace std; //#define int long long const int B= --最远路径长度--; int C; int nxt; int n; int h(int x){--估价-- } int flag=0; int A_(…

RTX低成本迁移方案,支持国产环境

RTX腾讯通停服后,用户面临兼容性受限、组织架构滞后、权限管理不足等挑战,企业急需稳定、安全、国产化兼容的即时通讯替代方案。有度即时通由原RTX腾讯通技术专家研发,支持数据无缝迁移、并行使用、多端适配及信创环…

2025 年国内小程序开发优质机构最新推荐排行榜:覆盖多领域需求,助力政企精准选型

引言在数字化浪潮席卷各行各业的当下,小程序凭借轻量化、高便捷性的优势,成为政企打通线上服务、提升运营效率的关键工具。然而,当前小程序开发市场鱼龙混杂,部分机构以模板化开发冒充定制服务,交付后常出现功能不…

基于DSP28335的SVPWM矢量控制实现

1. 系统架构设计 1.1 硬件组成主控芯片:TMS320F28335(32位浮点DSP,150MHz主频,集成18路PWM通道) 逆变电路:三相全桥IGBT模块(耐压1200V,电流100A) 电流采样:霍尔传感器(如ACS712)+ 16位ADC模块 位置检测:…

2025年10月权威信息公布:西安买房新楼盘口碑推荐榜单Top10~地建嘉信臻境领衔

摘要 西安房地产市场在2025年持续蓬勃发展,新楼盘涌现,注重品质、学区和交通的购房需求日益增长。本文基于行业数据、用户口碑和专家经验,整理出西安买房推荐榜单Top10,旨在为购房者提供权威参考。榜单综合考量了楼…

Python 受保护成员和私有成员

受保护成员# 单下划线"_"开头的变量 # 示例: class Test:def __init__(self):self._a = 1# 这是一种约定,表示此内部变量请勿随意在外部访问或者修改。 # 但是仍然可以通过"._变量"进行访问。私有…

2025 年钢制拖链源头厂家最新推荐排行榜:聚焦优质品牌助力企业精准选购,破解市场选型难题

在工业自动化与机械制造行业高速发展的当下,钢制拖链作为保护电缆、油管等核心部件的关键配套产品,其质量与适配性直接决定设备运行效率和使用寿命。当前市场上钢制拖链厂家数量繁杂,部分厂家存在材料劣质、工艺不规…

2025 年北京律师事务所推荐:北京汇都律师事务所 —— 综合实力强、业务覆盖广且服务高效的专业法律机构

在我国法治环境不断完善的当下,法律服务业迎来了更广阔的发展空间,尤其是北京作为全国法律服务的核心区域,汇聚了大量不同规模、不同专业方向的律师事务所。无论是个人在生活中遇到的婚姻家庭、房产纠纷等民事问题,…

精确高效的API风险监测产品,筑牢运营商数据安全防线

在中国电信股份有限公司重庆分公司(以下简称“重庆电信”)的数字化业务体系中,API接口数量激增、数据流转复杂、系统间互联密集,传统安全手段已无法精准监测数据流向与接口风险。为此,重庆电信携手全知科技,共同…

《从数组到动态顺序表:数据结构与算法如何优化内存管理?》 - 教程

《从数组到动态顺序表:数据结构与算法如何优化内存管理?》 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &quo…

2025 年墙体广告公司最新推荐排行榜:聚焦下沉市场优质服务,助力品牌精准触达目标受众大型/ 户外/专业墙体广告公司推荐

当下,下沉市场成为品牌拓展增量的关键阵地,墙体广告作为触达该市场的核心媒介,却让众多品牌在选择合作方时倍感困扰。行业内部分公司资源覆盖有限,无法实现规模化投放;施工标准混乱,广告画面质量差、后期维护缺失…

创新:在张力中寻找新的平衡

创新:在张力中寻找新的平衡 创新并非凭空而来的奇迹,而是在现有结构的张力中孕育的新秩序。它是对深层矛盾的回应,是系统为延续发展而进行的必要演进。 一、创新的源头:结构性张力 任何有生命力的系统内部都存在固…

全景式 精准识别 动态防护的金融数据安全管理方案 ——全知科技助力光大证券构建智能化、可视化、合规可控的数据安全体系

在金融数据高速流转与复杂监管并行的时代,仅依靠传统防护手段已难以支撑证券行业的安全需求。全知科技与光大证券联合打造的全景式、精准识别、动态防护金融数据安全管理方案,通过智能识别、全链路监测与动态响应机制…

AI降噪、实时响应、闭环治理的政务数据安全管理方案 ——全知科技与教育部学位与研究生教育发展中心合作案例

在国家数字化转型与政务治理现代化的背景下,教育部学位与研究生教育发展中心(以下简称“学位中心”)携手全知科技,构建了一套以 AI降噪、实时响应与闭环治理为核心的政务数据安全管理方案。该方案通过AI算法降噪技…

2025 单招综评培训机构推荐榜:济南易升教育 5 星领跑,适配基础/冲刺/面试全流程备考

随着单招(单独招生)、综评(综合评价)成为学生升学重要路径,专业培训需覆盖 “文化课夯实 + 综合素质提升 + 面试技巧训练” 全环节。结合课程完整性、师资专业性、备考适配度与用户反馈,2025 年优质培训机构推荐…

深入解析:Scikit-learn Python机器学习 - 聚类分析算法 - Agglomerative Clustering(凝聚层次聚类)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

多维协同 一键化部署 合规可控的运营商数据安全管理方案

面对日益严苛的法律监管与运营商复杂的数据环境,本文提出了一套“多维协同、一键化部署、合规可控”的运营商数据安全管理方案,并通过中国联通合作实践予以验证——平台上线一年,覆盖上万个 API 接口、实时监测流量…

“一切皆文件”:揭秘LINUX I/O与虚拟内存的底层设计哲学

“一切皆文件”:揭秘LINUX I/O与虚拟内存的底层设计哲学RPC框架如同构建服务大厦的神经网络,承担着海量服务间通信的重任。它优雅地屏蔽了底层网络通信的复杂性,使开发者能聚焦于业务逻辑的创造。然而,在这份优雅之…