[VCS]merge coverage --- vdb merge

83 篇文章 133 订阅
60 篇文章 45 订阅

merge coverage --- vdb merge

       前言:目前在数字电路验证中,主要还是coverage驱动型,就是说覆盖率是衡量验证工作的一个重要指标。但是在仿真过程中,会分成多个build或者说是conf,每个build下面的RTL可能是不同的。还有一种场景是:需要把IP收到的vdb同IT Level收到的vdb merge到一起,那这个过程怎么实现呢?本文将介绍一些VCS中覆盖率合并的命令,以及脚本化方法。

一、記錄一些常用的VCS Command

 1.1、首先注意,需要在run simulation前(在build中)加VCS Option:

  • -cm line+tgl+cond+fsm+assert+branch -cm_line contassign -cm_cond full+tf+for+anywidth

 1.2、merge coverage:

urg -full64 -metric line+tgl+cond+fsm+assert+branch -warn none -dbname <merge_coverage_name>.vdb \
    -dir ${vdb_path}/simv.vdb \
    -elfile ${path}/${el_file_name.el}
  • 注意:其中-dir之後的第一個vdb數據會被認為是base data,如果產生其他vdb的RTL與base不同,將不能被Merge進來

 1.3、如果是把多條simv.vdb Merge在一起,可以用如下Command:

  • 對於-warn none的Option需要謹慎,一般地還是不要加,把Warning信息報出來
  • -metric -metric line+tgl+cond+fsm+assert+branch也可以不用加,黨要提取特定的Coverage數據時再指定
urg -full64 -metric line+tgl+cond+fsm+assert+branch -warn none -dbname ${merge_cov_name}.vdb \
-report urgReport_<data> -dir  ${path_0}/simv.vdb \ 
  ${path_1}/simv.vdb \
  ${path_3}/simv.vdb \
  ${path_4}/simv.vdb \
  ${path_3}/simv.vdb \
  ${path_3}/simv.vdb \
-elfile ${el_file.el} > merge_log.out

 1.4、查看coverage:

  • verdi -cov -covdir <merge_coverage_name>.vdb &

 1.5、其他用法

  1. 如果是用urg,則使用如下command:urg -dir simv.vdb &
  2. VCS收Coverage的command:-cm line+tgl+cond+fsm+assert+branch -cm_line contassign -cm_cond full+tf_foranywidth
  3. 如果修改了covergroup的name或者是採樣信號的定義,可以加如下option進行coverage merge:-flex_merge drop或者        -flex_merge reference-flex_merge union
  4. 如果是看網頁版(擴展名為.html),則使用如下command打開: firefox  ${sim}/urgReport/dashboard.html

 1.6、如果新的simulation中,在covergroup中增加了coverpoint,并希望把新的數據與舊的merge到一起:

  • urg -full64 -flex_merge union -dbname <merge_coverage_name>.vdb  -dir  simv.vdb &

 1.7、如果新的simulation中,在covergroup中增加了coverpoint,并不想把新的數據與舊的merge到一起:

  • urg -full64 -flex_merge drop  -dbname <merge_coverage_name>.vdb  -dir  simv.vdb &

二、Coverage Result Reporting Utilities

 2.1、VCS writes coverage data to a binary database file

  • The database directory is named simv.vdb

 2.2、Convert to HTML:

  • urg –dir directory

  • example:   urg –dir simv.vdb

 2.3、Convert to Text:

  • urg –dir directory -format text

  • example: urg –dir simv.vdb –format text
     

 2.4、上述改變Format的方法主要用於分析各種Case對Coverage的貢獻,以加快驗證工作的收斂。

三、注意事項

  1. 如果Hierarchy或者covergroup有修改,在Merge VDB的時候需要刪除之前的VDB數據。
  2. 如果在例化DUT的時候需要傳遞參數進去,導致生成的電路不一致,需要分別Merge,應為不同Hierarchy的module的VDB不能夠Merge在一起。
  3. 建議:在T4階段收Coverage的時候,把每天的數據Merge到一起,然後再往總的vdb裡面Merge,以免某一天的數據出錯,導致整個vdb file都不能使用。
  4. 建議Regression時每天新建一個workspace,用Linux crontab自動執行。否則,假如某天的VDB Data出錯,將無法Merge,導致的後果就是重新收Coverage

  • 15
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

元直数字电路验证

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值