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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3393|回复: 4

[原创] 为什么必须做功能覆盖率?and How ?

[复制链接]
发表于 2017-3-12 10:51:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 fpga2008dut 于 2017-3-12 11:02 编辑

为什么必须做功能覆盖率?and How

李鹏飞 2017-3-12

什么是功能覆盖率?


验证中的覆盖率分功能覆盖率和代码覆盖率两种,断言覆盖率可归类为功能覆盖率。


顾名思义,功能覆盖率用于衡量设计中有多少功能被覆盖到了,被验证了,而代码覆盖率则是衡量代码实现中有多少语句被执行到了。前者是基于设计的源头,而后者是基于设计的最终实现,源头是本,实现是末。抓住了根本,目标指日可待;舍本逐末,事倍功半。


为什么是功能覆盖率?


现在的主流的验证语言是systemverilog,其特点之一就是约束下的随机。相比较定向测试,它的验证效率更高,定向测试需要对每个功能点,每个测试维度去构造不同的用例测试,只能是想多少测多少,激励空间是已知的。而随机化的验证,其激励空间要大的多,远远大于定向测试的激励空间。定向测试好处是每个用例测试激励明确,只要测试通过了,用例的目标也就达成了,而随机化的验证问题是测试激励不明确,虽然它的激励空间更大,但是怎样知道用例执行完成后,覆盖到了哪些激励空间,没有覆盖到哪些激励空间呢?所以需要一个衡量标准,这就是功能覆盖率。

激励空间

激励空间


怎样做功能覆盖率?


需求!需求!需求!重要的事情说三遍,经过提取、整理和评审一致通过的验证需求,是做功能覆盖率的依据,要保证每个需求的充分验证,有哪些点必须验证到,这个是必须具体化、量化的,想不清楚这个问题就是没有真正理解需求,验证质量又如何保证呢。


Systemverilog语言对于功能覆盖率有很好的支持,其中覆盖点和交叉覆盖的概念非常重要。覆盖点对应的是上面提到的量化后的需求,这只是点,多个点就是一条线,是一个维度的覆盖;一个设计诸多功能并不是完全孤立的,所以单单验证一个点、一条线远远的不够的,交叉覆盖率就是来把这些点、线连接起来,织成了一张网。通过这张网把所有需求囊括其中。


基于功能覆盖率驱动的验证:有被动驱动和主动驱动两种。


所谓被动驱动,有点“马后炮”的嫌疑,在用例执行完成后,通过查看覆盖率报告来对未覆盖到的点补充定向用例覆盖;而主动驱动,是在用例执行过程中,以功能覆盖率100%或预期的百分比作为退出条件,否则会一直进行随机测试,“不达目的誓不罢休”。


所谓行百里者半九十,做随机化验证也存在着越临近终点,需要付出的更多,因为越到最后随机重复的概率越大,随机成千上万次可能才能有一个新覆盖点,命中率越来越低。针对这个问题,如果采用主动驱动方法,可以提前筛选掉重复的随机,只采用对覆盖率有贡献的随机值,将命中率提高到100%


但被动驱动方法也有其优势,覆盖组是对所有用例的随机进行采样,而主动驱动是针对单一用例来实现的。通过诸多项目经验来看,首推主动驱动方法,效率更高。

结论

理解清楚验证需求,具体量化验证需求,用功能覆盖率编织的一张大网,把所有的覆盖点一网打尽,采用主动、被动驱动方法做到攻守兼备,让验证工作更加高质、高效。

发表于 2017-3-20 16:10:37 | 显示全部楼层
如何做主动驱动,请楼主再详细一点,谢谢!
发表于 2017-3-21 22:16:58 | 显示全部楼层
把功能覆盖率做到100%是个非常简单的事情:把覆盖不了的功能点从功能点列表上删掉,功能覆盖率就100%了。

Intel 14nm的CPU TSX指令集有Bug。(事实上Intel每一代CPU都会公布几十个Bug) 是因为Intel没使用UVM方法学,还是因为Intel验证时功能覆盖率没达到100%呢?

一种回答:http://www.yinwang.org/blog-cn/2016/09/14/tests
发表于 2021-7-6 08:56:57 | 显示全部楼层
学习了!!!
发表于 2021-7-6 09:39:54 来自手机 | 显示全部楼层
不是必须啊,在没有功能覆盖率这玩意儿之前,纯verilog平台的时候照样做出非常复杂的,广泛应用的设计。即使现在s和c不也继续提供纯verilog的vip么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-25 02:24 , Processed in 0.020557 second(s), 8 queries , Gzip On, Redis On.

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