微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > vcs code coverage merge的问题

vcs code coverage merge的问题

时间:12-12 整理:3721RD 点击:
各位大牛,小弟的问题如下:
两支不同的case:case_1和case_2,在使用VCS仿真的时候分别使用不同的
-cm_hier hier_1 -cm_dir dir_1

-cm_hier hier_2 -cm_dir dir_2
来收集两个不同模块的code coverage,两个模块属于同一个top层。
hier_1中的内容为 +tree top.dut.a 0
hier_2中的内容为 +tree top.dut.b 0
在完成了仿真之后会产生:
dir_1.vdb和dir_2.vdb。
我使用 urg -dir dir_1.vdb dir_2.vdb -report urgReport 试图将其合并,但是在生成了dashboard.html中只有top.dut.b的code coverage,无法找到top.dut.a。
各位大牛有没有遇到类似的情况以及好的解决方法?请指点一下!

-dir 用的没有问题吧,可以分开写几个,也可以只写一个。
hier写高点

把vdb放在一个文件夹里,urg -dir a/*.vdb 这样来收集。

当时是考虑到仿真的效率,所以如果写高点的话,例如+tree top.dut 0,那么top.dut下如果还有top.dut.c,top.dut.d等等模块也会被dump出来。

结果与此前相反,还是无法把两个merge到同一个文件中。

你的urg用的没有问题,有问题的是仿真库,是否是你想要的,如果按你的方法来。

urg -mapfile filename.map
in the map file:
MODULE: dut_module_name
INSTANCE:
SRC: *.dut
DST: top. dut

那需要你再做一个大database了.
第一个database需要包括你所有想要的module,merge的时候只merge包括在第一个database的module.

果然,按照大牛的方法成功merge到了一起,但唯一的问题是在仿真的时候加入的-cm后的参数也是要一致的,否则会导致在子集目录中可能无法找到所指定的flag。如在父级指定-cm line+cond+fsm,而子集指定了-cm line+cond+fsm+tgl,那么在子集中无法找到tgl的coverage!
感谢大牛!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top