目录

1.vcs收coverage基本Option

2.相同代码的merge

3.部分merge到整体

3.1 mapfile

3.2 -map使用语法

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH


coverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf

还可以参考gsithxy的博文 [VCS]Condition Coverage收不全的问题及解法 该文给出了vcs收覆盖率的option、merge常见问题、merge常见option

1.vcs收coverage基本Option

Option

description

-cm line+cond+fsm+tgl+branch+assert

line : Enable collecting line or statement coverage
cond : Enable collecting condition coverage
fsm : Enable collecting FSM coverage
tgl : Enable collecting toggle coverage
branch : Enable collecting branch coverage
assert :  Enable collecting SystemVerilog assertion coverage

-cm_libs yv

yv :Enable collecting coverage source code from Verilog libraries
Default doesn't collect coverage of the library files.

-cm_dir $directory_path_name

Specify an name and location for simv.vdb

Default is simv.vdb

-cm_log $filename

Specify a log file for monitoring coverage.

Default is cm.log. To suppress the log file, you could re-direct the log file to empty path. (ex, -cm_log /dev/null)

-cm_name $testname

Specify a different location for different simulation, used in dsim flow

-cm_hier $filename

Collect particular instances' coverage

$filename contents
------------------------------
+/-tree $instance_name [$level] //level number of 0 (or no level number) specifies the entire sub-hierarchy
+/-module $module_name

-cm_assert_hier $filename

Collect particular assertion' coverage

$filename contents
------------------------------
+/-assert my_assert
+/-assert A*
+/-assert $instance_name

-cm_line contassign

Specifies enabling line coverage for Verilog continuous assignments.

-cm_tgl portsonly

Only monitor port of toggle coverage, remove net and variables monitor in modules.

2.相同代码的merge

export path := cov_r20111db_file=$(shell find ${path} -maxdepth 2 -depth -name "simv*").PHONY:merge
merge:@echo ${db_file}urg -full64 -dir ${db_file} -dbname ${path}/merged.vdb  #urg -full64 -dir a.vdb b.vdb c.vdb -dbname xxx.vdb
cov:bsub -I verdi -cov -covdir ${path}/merged.vdb

上述命令将path目录下多个simv*.vdb下面的多个覆盖率文件merge成一个叫merge.vdb的文件

3.部分merge到整体

主要参考Coverage Technology User Guide.pdf中mapping coverage一节

项目中经常出现UT覆盖率merge到BT/SST及整芯片的情况。此时需要使用urg的-map命令

3.1 mapfile

-map命令需要mapfile以表明map关系,下图给出的mapfile意思是将module name为My_Ip的在B模块中的两个例化My_Ip1,My_Ip2的覆盖率映射到

A.B.My_Ip1上去。

3.2 -map使用语法

urg -dir base.vdb -dir input.vdb -mapfile file_name

Where, file_name is the mapping configuration file

3.3合并的常见问题

3.3.1 UCAPI-MAP-SHAPEMISMATCH

When merge vdb files of local simulation to whole chip,  you might get the error as following:

“Warning-[UCAPI-MAP-SHAPEMISMATCH] Shape mismatch in mapping”

导致shape mismatch可能有以下几个原因:

1. Coverage option mismatch;

Make sure the coverage-related options are the same for both vdbs.

For example:if one vdb is compiled with –cm_line contassign and the other isn’t, it will cause shape mismatch;

$vcs_cov_opts .= " -cm_line contassign ";

2. RTL mismatch;

3. Version  mismatch;

4. Tool bug;

vcs/urg 进行覆盖率coverage merge及部分merge到整体相关推荐

  1. VCS仿真和多个test用urg工具生成coverage文件verdi查看--转载

    VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法.我呢,因为运用都是简单的非mix language,所以经常用一步法,因为这样省劲,但是对于跑regression最好还 ...

  2. merge用法linux,Merge用法

    1.Merge语法: MERGE [hint] INTO [schema .] table [t_alias]USING[schema .] { table | view | subquery } [ ...

  3. git 的 merge 与 no-ff merge 的不同之处

    文章目录 参考链接 证明 参考链接 分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模 ...

  4. git merge和git merge --no-ff有什么区别?

    本文翻译自:What is the difference between `git merge` and `git merge --no-ff`? Using gitk log , I could n ...

  5. git merge的三种操作merge, squash merge, 和rebase merge

    原链接:https://www.jianshu.com/p/ff1877c5864e git merge的三种操作merge, squash merge, 和rebase merge 举例来说: 假设 ...

  6. 2022-05-14 Git三种合并分支Merge、Squash merge、Rebase merge

    Git三种合并分支Merge.Squash merge.Rebase merge 前言 合并分支 Merge Rebase merge Squash merge 前言 开发过程中,一般按照Git Fl ...

  7. git merge\git merge --no-commit\git merge --squash区别

    假设现有分支develop.test.需要将test合并到develop分支. 首先git checkout develop. git merge test test分支会合并到develop,会有t ...

  8. mysql merge 语句_Mysql merge引擎介绍

    一. 什么是MERGE引擎 MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询. 二. 应用场景 如果需要把日志纪录不停的录入MySQL数据库,并且每天.每 ...

  9. 覆盖率coverage

    cpp 覆盖率 options compile: -fprofile-arcs, -ftest-coverage link: -lgcov 或者: compile: --coverage link: ...

最新文章

  1. 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹
  2. java验证码局部刷新_JS局部刷新图形验证码
  3. 中国国际智能产业博览会-2018-08-23至25 重庆国际博览中心举行
  4. 如何构建一个分布式爬虫:基础篇
  5. servlet 中 out.println(中文) 乱码 问题
  6. (视频+图文)机器学习入门系列-第9章 集成学习
  7. Android 发起加入QQ群、打开网址、启动拨打电话界面
  8. python非法语句是_python 如何优雅的处理大量异常语句?
  9. Linux下的进程池(3)
  10. Symantec 不用密码卸载
  11. LVM逻辑卷管理学习
  12. access mysql知乎_Access数据库如何使用?
  13. SQL达梦数据库迁移
  14. threejs的点光源+环境光
  15. comet 简单了解
  16. CentOS7 ECS使用(慕课网付费课笔记)
  17. python爬取微博评论点赞数_python爬取点赞评论数
  18. 测绘资质高性能数据服务器,测绘资质分级标准2020年
  19. 成功解决 pycharm一直indexing
  20. 线程池主要参数及作用

热门文章

  1. Python爬取当贝市场APK应用信息并下载
  2. html中table是块元素吗,列表及表格(块元素,内联元素)
  3. Golang 中 Slice的分析与使用(含源码)
  4. 幼儿园计算机教育培训,幼儿园教育教师计算机学习培训计划.doc
  5. 浮动QQ在线客服amp;网站QQ在线咨询
  6. 202:vue+openlayers: easing的API及在view.animation中使用示例
  7. 解题报告 之 POJ1087 A Plug for UNIX
  8. 【VideoPose3D】可视化自定义视频
  9. C++map迭代器最全最容易理解
  10. RFID天线未来的发展趋势