#VCS# 关于VCS 工具进行 code coverage merge 遇到mapfile的问题
在使用 VCS 工具进行代码覆盖率合并时,mapfile是一个重要的配置文件,用于定义如何将不同模块或实例的覆盖率数据映射到目标模块上。以下是关于mapfile。
·
在使用 VCS 工具进行代码覆盖率合并时,mapfile 是一个重要的配置文件,用于定义如何将不同模块或实例的覆盖率数据映射到目标模块上。以下是关于 mapfile 的使用和相关命令的详细说明:
1. mapfile 的作用
mapfile 是一个文本文件,用于指定覆盖率数据的映射关系。它允许你将多个模块或实例的覆盖率数据合并到一个目标模块上,通常用于将子模块的覆盖率数据合并到顶层模块。
2. mapfile 的格式
mapfile 的内容定义了源模块(或实例)和目标模块之间的映射关系。其格式通常如下:
MODULE: <目标模块名>
INSTANCE:
SRC: <源模块路径>
DST: <目标模块路径>
例如:
MODULE: My_Ip
INSTANCE:
SRC: A.B.My_Ip1
DST: C.D.My_Ip1
这个例子表示将模块 A.B.My_Ip1 的覆盖率数据映射到目标模块 C.D.My_Ip1 上。
3. 合并覆盖率的命令
使用 urg 命令和 -mapfile 选项可以实现覆盖率的合并:
urg -dir base.vdb -dir input.vdb -mapfile file_name
-
base.vdb:目标覆盖率数据库。 -
input.vdb:源覆盖率数据库。 -
file_name:包含映射关系的mapfile。
4. 特殊场合
比如,同一个模块的多份实例化,共4份。我们期望都merge 到 d 实例上,语法如下。
请注意:必须一一列举出所有的 SRC 源。
# 创建 mapfile
MODULE: my_module
INSTANCE:
SRC: top.a
DST: top.d
SRC: top.b
DST: top.d
SRC: top.c
DST: top.d
# 合并覆盖率
urg -dir simv_d.vdb -dir simv_a.vdb -dir simv_b.vdb -dir simv_c.vdb -mapfile mapfile.txt -dbname merged.vdb
# 查看合并后的覆盖率
verdi -cov -covdir merged.vdb
更多推荐

所有评论(0)