分享一个coverage merge小技巧

电子说

1.2w人已加入

描述

分享一个coverage merge小技巧,在群里经常看到有小伙伴问改了代码之后coverage能不能merge。今天带大家来看看这个问题。

在下面代码里面有三个实例,分别是dut,cnt1,cnt2.

SoC设计

我们生成第一版coverage simv1.vdb

然后我们改动arb_module里面的内容,生成第二版的coverage simv2.vdb

现在我们merge 看看会发生什么事情。

使用urg -dir simv1.vdb simv2.vdb -dbname final.vdb

SoC设计

不出意外,log显示coverage 没有merger 上。

如上面所说,我们只改动了arb_module里面的内容。这个时候arb_module因为代码改动确实已经不能用了,需要重新跑simulation收集,但是cnt_module 还是可以用的。用下面命令将simv2.vdb里面 cnt_module的code coverage merge到simv1.vdb中去。-map指定需要merge 的模块。

urg -dir simv1.vdb simv2.vdb -map cnt_module -dbname final.vdb

SoC设计

log显示可以,并没有报错。

这种用法可以将unit tb收集的IP code coverage merge到SOC中去,一方面保证验证的指标,另外一方面保证代码的一致性。

所以当代码改动导致coverage merge不上的时候,可以考虑用map merge还可以用的code coverage。但是我们在merge前也要确认改动部分没有影响到可以merge module的功能。如果影响到建议还是重新跑。

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

全部0条评论

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

×
20
完善资料,
赚取积分