芯片验证中的checker和scoreboard介绍

描述

在芯片验证中,要想发现bug

需要激励能够覆盖到特定场景

需要一系列的checker能够发现DUT的错误

checker分为两种类型:

典型的和验证组件相对比较独立的checker,这些checker通常与时序相关,例如检查DUT中的状态机是否永远不会进入某个状态,检查接口上的vld-rdy时序符合协议。

另一种类型的检查就是数据scoreboard。scoreboard用于检查系统中数据的完整性。

本文我们先介绍时序的checker,即非scoreboard的checker

时序checker通常用于检查随时序变化的行为。时序checker通过时间表达式触发以对某些条件进行检查,这个时序表达式可能像时钟周期一样简单,也可能嵌套了很多非常复杂的时间表达式。

时序checker一般是比较白盒的,深入探索DUT中RTL中的一切预期行为:

A事件在条件a下一定发生

B事件一定不会发生

A事件发生后一定会发生B事件

举个具体例子

在用例结束可以做一个验证环境和DUT的final值check

检查fifo不会读空和写满

输出接口不会违反AMBA协议

理论上,我们可以加入无限多的checker,我们甚至没法判断哪些checker是没有价值的,最终导致checker指数级增长,从而降低仿真器的运行效率。

也许,我们的队员在会议中提出了很多很多的checker,听起来都似乎有些道理。但事实上是否真的有价值,还是只是个鸡肋般的checker?





审核编辑:刘清

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分