在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 14709|回复: 23

[原创] 谈谈我对stimulus和checker的理解

[复制链接]
发表于 2012-2-13 00:27:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
现在做verification的人已经不算少了(当然现在依然比较难招到有经验的IC验证工程师),但是我觉得有不少做verification的人过于看重checker,看轻stimulus。我觉得这是舍本逐末、本末倒置,写篇文章谈谈我自己对这两个东东的认识。
    结合我所认为的“错误观点”来谈吧。
1)认为stimulus就是testcase。
    testcase是stimulus里最重要的部分(没有之一),但不是全部。Driver-model也是stimulus里非常非常重要的部分。好的、完整的、容易控制的driver-model才能构造出完善的stimulus。假设dut是一个amba-master,那么amba-slave就是driver-model;如果dut是一个amba-slave,那么amba-master就是driver-model;如果dut是一个amba-arbiter,那么amba-master和amba-slave都是driver-model。另外,stimulus包括控制、时序和数据,完善的testcase应该要包括这三方面。
2)认为checker就是reference-model
   一般来说reference-model是dut的行为级描述(有时候就是一个c模型),而checker还应该包括数据的收集、分析、判断等工作。有的算法实现的模块的reference-model就是cmodel,这样的cmodel的核心部分通常是算法组提供,但是模块的接口时序不是算法cmodel能描述的。
3)认为checker比stimulus重要
   我觉得这个观点很错误、很要命。100%的checker+50%的stimulus 与 100%的stimulus+50%的checker 你会选哪个?我想还是会选后者吧,因为后者能覆盖全dut。虽然后者检查起来会很辛苦,但是遗漏bug的可能性要小于前者。

   我觉得一个做验证的人如果能把stimulus和checker都做好,那么从技术上说他就具备了带验证团队的一些基本素质;如果只能把stimulus做好,那么从技术上说他就是合格的leader,可以带一两个人;如果只能把checker做好,那么从技术上说他只是个比较合格的programmer,得有人配合他一起做才可以。

   最后举个我经历过的实际的例子。我曾经做过一个人手和时间都非常紧张的项目(图像类芯片),从资源上来看是不可能做完善的checker的,我们只好把有限的时间尽量投在stimulus上。我们想办法在验证环境里做了一些简单的数据收集和处理,然后把dut输出的数据转换成图片,再把很多很多testcase输出的这些图片自动处理成网页的格式,每天早上来公司检查regression结果的时候就打开这个生成的网页浏览一下这些输出。虽然投片的时候心里有些惴惴的,但是最终的效果很好,几乎没有遗漏什么bug。----举这个例子也是想说明:“checker总是有办法的,无论是多么土的方法;但是stimulus是没法取代的,无论如何都要去实现和覆盖到的”。

   一点拙见,供大家看看。
发表于 2012-2-13 11:23:45 | 显示全部楼层
很好的经验,受益匪浅~~谢谢分享!
发表于 2012-2-13 13:07:36 | 显示全部楼层
stimulus和checker一样作用吧
没有好的checker,就算用更好的stimulus,bug出现了难被发现;
而没有好的stimulus,就算有完美的checker,bug不能出现又有什么用呢。

个人感觉stimulus需要更丰富的经验才能做好。
发表于 2012-2-14 19:45:59 | 显示全部楼层
stimulus和checker都重要,
不过stimulus需要更多的关注整体设计的结构、spec...以及如何更加简单易用的部分,
从重点上看应该需要stimulus比checker走的更早一步,这需要工程师能更加深入的去理解设计,
checker来说是要想办法把自己人为判断的一些东西尽量自动化以减少误判以及加快进度
发表于 2012-2-15 01:43:33 | 显示全部楼层
学习了~~~~~~
发表于 2012-2-16 13:06:35 | 显示全部楼层
真想见识一下成熟的验证方案
发表于 2012-2-17 21:43:56 | 显示全部楼层
好的testbench应该能够模拟所有可能出现的场景,而且应该让stimulus构造场景的时候容易,这样有利于问题的复现。随即验证的话,要确保随机范围全面,并要有确保验证快速收敛的机制。checker也是非常重要的,要保证检查的全面性,漏查的话很容易埋bug。
发表于 2012-2-17 23:34:42 | 显示全部楼层
对第三点不是特别同意, 说checker比stimulus重要当然不对,但是反过来一样有问题。stimulus全了,checker不正确,没发现错误有又什么用呢?应该是都重要才对

只不过,一般来说,checker要好设计一些,而想出完备的stimulus要难的多,从工作投入的角度来说,楼主说的也有一定道理吧。


3)认为checker比stimulus重要
   我觉得这个观点很错误、很要命。100%的checker+50%的stimulus 与 100%的stimulus+50%的checker 你会选哪个?我想还是会选后者吧,因为后者能覆盖全dut。虽然后者检查起来会很辛苦,但是遗漏bug的可能性要小于前者。
发表于 2012-2-20 12:22:57 | 显示全部楼层
谈一下对LZ和8楼关于verification架构讨论的意见。
先把概念理一下,stimulus好像都没有异议,而我理解的checker和LZ的描述似乎有差异,checker应该只是一个完全的被动部件,感觉中,LZ似乎想说的是monitor和RM以及scoreboard的部分或者组合的一个概念。
实际上,我理解UVM/VMM/OVM等中的checker是针对断言和覆盖率而存在的一个独立的验证部件。
下面我还是依据LZ的思路,把“checker”作为“RM/monitor/scoreboard”等部件的一个混合或者部分混合体来看待。
我主要讨论的内容不是参与stimulus和checker谁重要的讨论,而是希望其它方面来说说我的意见,
如果说我们验证没有足够的资源去做一个完整的验证过程,那么去单纯地裁剪验证架构中的组件的做法是不太恰当的。
有一个做法可能会好一些:裁剪spec,当然现实中可能性比较小,所以spec区分优先级是个很不错的选择。之后的做法有不同的路径,比如有些spec可以少做一些用例等等。
当然还有一些细节的做法可以考虑,比如stimulus尽量做到正交化等等,这些是验证功力的问题,超出了本话题的范畴。
另外,再说一些题外话。
从LZ在芯片验证举例中,我理解LZ的芯片可能在checker的开发力度上的需求可能不是太高,但这种情况不具普适性,也许LZ认为的百分比比实际需要的百分比要低一些,这些情况都有可能,总之,不希望存在一个误导,就是最后验证实践过程成了拼RP了,这就违背了验证的本意了。
发表于 2012-2-24 09:45:34 | 显示全部楼层
LS shuo de tai hao le
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-19 17:01 , Processed in 0.036677 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表