vcs/urg 进行覆盖率coverage merge及部分merge到整体
目录
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 |
-cm_libs yv |
yv :Enable collecting coverage source code from Verilog libraries |
-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 |
-cm_assert_hier $filename |
Collect particular assertion' coverage $filename contents |
-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到整体相关推荐
- VCS仿真和多个test用urg工具生成coverage文件verdi查看--转载
VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法.我呢,因为运用都是简单的非mix language,所以经常用一步法,因为这样省劲,但是对于跑regression最好还 ...
- merge用法linux,Merge用法
1.Merge语法: MERGE [hint] INTO [schema .] table [t_alias]USING[schema .] { table | view | subquery } [ ...
- git 的 merge 与 no-ff merge 的不同之处
文章目录 参考链接 证明 参考链接 分支管理策略 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息.如果要强制禁用Fast forward模 ...
- git merge和git merge --no-ff有什么区别?
本文翻译自:What is the difference between `git merge` and `git merge --no-ff`? Using gitk log , I could n ...
- git merge的三种操作merge, squash merge, 和rebase merge
原链接:https://www.jianshu.com/p/ff1877c5864e git merge的三种操作merge, squash merge, 和rebase merge 举例来说: 假设 ...
- 2022-05-14 Git三种合并分支Merge、Squash merge、Rebase merge
Git三种合并分支Merge.Squash merge.Rebase merge 前言 合并分支 Merge Rebase merge Squash merge 前言 开发过程中,一般按照Git Fl ...
- git merge\git merge --no-commit\git merge --squash区别
假设现有分支develop.test.需要将test合并到develop分支. 首先git checkout develop. git merge test test分支会合并到develop,会有t ...
- mysql merge 语句_Mysql merge引擎介绍
一. 什么是MERGE引擎 MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询. 二. 应用场景 如果需要把日志纪录不停的录入MySQL数据库,并且每天.每 ...
- 覆盖率coverage
cpp 覆盖率 options compile: -fprofile-arcs, -ftest-coverage link: -lgcov 或者: compile: --coverage link: ...
最新文章
- 手把手教你搭建Linux开发环境(VMware+Ubuntu)(二)——安装VMwareTools并设置共享文件夹
- java验证码局部刷新_JS局部刷新图形验证码
- 中国国际智能产业博览会-2018-08-23至25 重庆国际博览中心举行
- 如何构建一个分布式爬虫:基础篇
- servlet 中 out.println(中文) 乱码 问题
- (视频+图文)机器学习入门系列-第9章 集成学习
- Android 发起加入QQ群、打开网址、启动拨打电话界面
- python非法语句是_python 如何优雅的处理大量异常语句?
- Linux下的进程池(3)
- Symantec 不用密码卸载
- LVM逻辑卷管理学习
- access mysql知乎_Access数据库如何使用?
- SQL达梦数据库迁移
- threejs的点光源+环境光
- comet 简单了解
- CentOS7 ECS使用(慕课网付费课笔记)
- python爬取微博评论点赞数_python爬取点赞评论数
- 测绘资质高性能数据服务器,测绘资质分级标准2020年
- 成功解决 pycharm一直indexing
- 线程池主要参数及作用
热门文章
- Python爬取当贝市场APK应用信息并下载
- html中table是块元素吗,列表及表格(块元素,内联元素)
- Golang 中 Slice的分析与使用(含源码)
- 幼儿园计算机教育培训,幼儿园教育教师计算机学习培训计划.doc
- 浮动QQ在线客服amp;网站QQ在线咨询
- 202:vue+openlayers: easing的API及在view.animation中使用示例
- 解题报告 之 POJ1087 A Plug for UNIX
- 【VideoPose3D】可视化自定义视频
- C++map迭代器最全最容易理解
- RFID天线未来的发展趋势