story · 2022年08月22日 · 广东

SVA断言,是基于边沿,还是电平?

SVA断言是一个强时序的技术,很多时候SVA的实际时序和验证工程师的期望可能不同,这种不同很难调试定位。

下面是一个SVA断言的示例,验证工程师期望断言

当检测到req的上升沿后,再持续高电平6个周期
hold_request: assert property (@(clk1))
$rose(req) | => ##6 (!$fell(req));

需要注意的是,上面的断言中的参数只指定一个普通的时钟信号@(clk1),而不是指定时钟的边沿@(posedge clk1)

在这种情况下,断言对时钟的上升沿和下降沿都是敏感的。

对于简单的断言,对上升沿和下降沿都敏感一般只会导致额外的检查,所以最终是无害的。个别场景下,会有一些比较大的性能代价(这种性能代价可以通过sim profile来优化)。

但是,当出现上面断言中的重复周期时,如##6运算符,后果就要严重多了。因为实际上的延迟不符合预期,只是预期的一半。

本来验证工程师预期延迟6个周期,实际上只是延迟3个周期。

这种问题,只能通过仔细地代码检视才能够发现。

作者:验证哥布林
链接:https://mp.weixin.qq.com/s/kIRA7neLX_zt24JXCcWhng

推荐阅读

更多数字IC设计技术干货等请关注数字芯片实验室专栏。添加极术小姐姐(微信:aijishu20)微信可申请加入IC设计交流群。
推荐阅读
关注数
12313
内容数
219
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息