0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

写assertion很痛苦?了解一下SVA Checker Library

sanyue7758 来源:处芯积律 2023-08-12 09:51 次阅读

现看一段代码

94732d26-3859-11ee-9e74-dac502259ad0.png

请根据这段代码写一个assertion检查 count 每次加5。

下面是一种写法

948e0de4-3859-11ee-9e74-dac502259ad0.png

看起来不算太复杂。

但是如果让你写一个关于fifo 不能overflow 和 underflow的assertion呢?

是不是发现很头大?

笔者发现我们验证中很多assertion 具有一些共性,比如

某个条件永远不能发生;

某个条件一直为真;

req ack的检查;

在一段时间内,某条件一直为真;

fifo的检查;

等等

这些共性的东西,能不能整理成一个assertion的lib呢?带着疑问我们收集了网上的资料,开始并没有什么收获。

94a6230c-3859-11ee-9e74-dac502259ad0.png

大部分资料都偏向基础的assertion语法解释。

直到我们看到这份文档,笔者大概猜到这就是我们要找的东西。

94e24148-3859-11ee-9e74-dac502259ad0.png

94f81b08-3859-11ee-9e74-dac502259ad0.png

这完全符合我们最初的设想,有一系列的assertion checker Library 可以供我们调用,实现一些通用的assertion检查。

回到上面第一个问题,我们要用assertion检查count按cycle每次加5怎么做?assert_increment 很好的解决了这个问题。

95228960-3859-11ee-9e74-dac502259ad0.png

调用方法:

assert_increment #(0, 7, 5, 0,"ERROR: count has increased beyond allowable limit", 0, 0, 0, 1)invalid_count_increase (clk, reset_n, count);

第二个问题,fifo的underflow ,overflow的检查。可以用assert_fifo 检查。

9548aaaa-3859-11ee-9e74-dac502259ad0.png

说了这么多,很多人肯定想知道这个assertion checker library是放在哪里的。

答案是

$VCS_HOME/packages/sva/

没错,他就是VCS的 SVA checker library!

9580b5f8-3859-11ee-9e74-dac502259ad0.png

我们点开一个assert_never 看下

958f47b2-3859-11ee-9e74-dac502259ad0.png

各个参数和说明都有,完美!






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • VCS
    VCS
    +关注

    关注

    0

    文章

    78

    浏览量

    9499
  • SVA
    SVA
    +关注

    关注

    1

    文章

    19

    浏览量

    10099
  • FIFO存储
    +关注

    关注

    0

    文章

    103

    浏览量

    5898
  • CLK
    CLK
    +关注

    关注

    0

    文章

    123

    浏览量

    16920

原文标题:写assertion很痛苦? 来了解下SVA Checker Library 吧!

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    了解一下最近火的移动电源

    智能手机为例,最终的转换率可能只有80%。主要的原因是移动电源在工作中有个升压过程,这过程表现为四个阶段,每阶段都有电力损耗,这导致移动电源的电力最终损耗达20%,下面分阶段说一下这方面的理论最高
    发表于 08-28 15:40

    哪位高手帮我一下程序

    哪位高手帮我一下程序,跪求,需要帮助,这个程序是这样的,60秒到60分钟的计时。应该怎么
    发表于 06-23 15:21

    想请教一下LabVIEW 的NI Modbus Library,还有我自己汉化的modbuspoll_7.1

    LabVIEW我是刚学的不太会,由于要用到Modbus所以下了最新的NI Modbus Library,但里面没有自带示例所以不会用,有谁用过,可以分享一下示例吗?由于要Modbus调试英文版看着不顺眼,所以顺手把modbuspoll_7.1汉化了,在这里分享给大家,翻译
    发表于 10-22 22:18

    康耐视第三代Checker视觉传感器Checker3G系列

    得操作人员能够轻松监控其生产过程、更换工作或再培训模式,而无需使用电脑。  Checker简易的关键在于它的One-Click安装。仅需在您想要检查的图形特征上轻轻点击一下Checker就能自动创建
    发表于 11-01 15:21

    了解一下STM32的时钟树

    的时钟频率又是如何确定的呢?带着这个问题,我们起详细了解一下STM32的时钟树。时钟树是了解STM32时钟的灵魂,ST...
    发表于 08-06 07:11

    了解一下stm32中的外部中断

    ,然后又继续写作业。停止正在处理的事情转而处理另件事,在处理完另件事后又回来处理原来的事情,这在单片机中就是中断的概念。在各类单片机中都有这几类中断:串口中断定时器中断外部中断今天就来了解
    发表于 08-16 07:22

    了解一下SiC器件的未来需求

    引言:前段时间,Tesla Model3的拆解分析在行业内确实火,现在我们结合最新的市场进展,针对其中使用的碳化硅SiC器件,来了解一下SiC器件的未来需求。我们从前段时间的报道
    发表于 09-15 07:42

    了解一下数码管的工作原理

    这里是我的数码管的学习笔记,欢迎大家起进步数码管的初始化原理参照以下链接(本人的博客)初始化原理请务必多看一下,里面还有关于P0口的些信息那么看
    发表于 12-02 07:05

    介绍SVA基本的概念和常用的语法

    的pass。还有SVA语法,不是常用,可以用到时候翻阅手册查询六、MULTITHREADINGMULTITHREADING,即多线程。这里需要强调下,assertion的多线程属
    发表于 10-27 16:37

    SVA系列(通用)彩电电路图(1)

    SVA系列彩色电视机电路图,SVA系列彩电图纸,SVA系列原理图。
    发表于 05-25 09:25 184次下载
    <b class='flag-5'>SVA</b>系列(通用)彩电电路图(1)

    SVA系列(通用)彩电电路图(2)

    SVA系列彩色电视机电路图,SVA系列彩电图纸,SVA系列原理图。 
    发表于 05-25 09:28 90次下载
    <b class='flag-5'>SVA</b>系列(通用)彩电电路图(2)

    SystemVerilog Assertion Handbo

    SystemVerilog Assertion Handbook1 ROLE OF SYSTEMVERILOG ASSERTIONSIN A VERIFICATION METHODOLOGY
    发表于 07-22 14:08 188次下载

    康耐视新型Checker 4G系列视觉传感器

     康耐视公司今天宣布其获奖的视觉传感器产品系列中又新增Checker 4G 系列。康耐视的新型 Checker 4G视觉传感器的设置同样强大且简单。Checker的重要特征有,可通过以太网络进行远程设置和监控、通过以太网/IP和
    发表于 02-26 09:28 2016次阅读

    使用SVA的几个好处

    SVA支持多时钟域(clock domain crossing (CDC))逻辑,例如异步FIFO。 2. SVA是一种描述语言,可读性比较强。
    的头像 发表于 03-21 14:49 539次阅读

    聊聊形式验证中的SVA

    SVA,即SystemVerilog Assertion,在simulation和Formal都有极为广泛的应用,这里介绍一些基本的概念和常用的语法。
    的头像 发表于 06-14 09:31 872次阅读
    聊聊形式验证中的<b class='flag-5'>SVA</b>