全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-08-12 09:51

人气:

作者:admin

标签: VCS  FIFO存储  SVA  CLK 

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

现看一段代码

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

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






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信