Amiya · 2022年01月18日

一个coverage merge小技巧

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

在下面代码里面有三个实例,分别是dut,cnt1,cnt2.
image.png
我们生成第一版coverage simv1.vdb
然后我们改动arb_module里面的内容,生成第二版的coverage simv2.vdb
现在我们merge 看看会发生什么事情。
使用urg -dir simv1.vdb simv2.vdb -dbname final.vdb
image.png
不出意外,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
image.png
log显示可以,并没有报错。

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

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

作者:IC bug 猎人
原文链接: 处芯积律

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19636
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息