在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 22392|回复: 20

[求助] 怎样合并覆盖率呢?

[复制链接]
发表于 2013-6-29 10:10:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请问各位大牛,怎样合并代码覆盖率呢?就是跑了很多条case,想查看这些case和起来覆盖率是多少?非常感谢各位的赐教!我用的是vcs仿真,覆盖率命令:-cm line+tgl+fsm+branch+cond,使用cmView查看覆盖率。谢谢!
发表于 2013-6-29 17:10:28 | 显示全部楼层
貌似看到过一个merge的脚本,现在找不到了,唉
 楼主| 发表于 2013-7-5 09:12:54 | 显示全部楼层
回复 2# luck635


  我倒希望我看过,哈哈
发表于 2013-9-2 23:46:39 | 显示全部楼层
目前,vcs已经废除了cmView,采用dve或者urg查阅coverage报告。
merge所有的coverage(前提是你的每个caes的coverage database是分开的):
    urg -dir ./simv.vdb -dbname mergedir/merged
其中,simv.vdb是coverage database存储目录,默认是simv.vdb。后面的参数一目了然。

采用dve图形界面查阅coverage:
    dve -covdir simv.vdb
采用urg查阅text格式或者html格式的coverage:
    1. text: urg -dir simv.vdb -hier cover_conf/uncov_vcs -format text
    2. html: urg -dir simv.vdb -hier cover_conf/uncov_vcs -format html
其中, -hier cover_conf/uncov_vcs是一个配置文件,用于告诉urg忽略哪些模块或者tree下的单元的覆盖率报告,这个文件格式举例如下:
    +tree test_top.DUT.U_digit 0
    这里的0,代表从当前层次向下所有的层次,+代表需要看,-代表忽略;如果写成1,则只看当前层次。
 楼主| 发表于 2013-9-3 19:17:09 | 显示全部楼层
回复 4# remnant


  感谢您的回复,讲解的非常详细,这个地方懂了,非常感谢!
我想请问一下,如果使用ncsim的话,怎么获得coverage的数据,怎样合并覆盖率的结果呢?
非常感谢!
发表于 2013-9-3 20:20:09 | 显示全部楼层




仿真:
ncvhdl ....
ncvlog ....
ncelab -coverage B:E:F:U -covfile $COV_CFG_IUS -covfile $UNCOV_CFG_IUS -covdut $DUT_NAME
ncsim -covoverwrite -covworkdir ./ncsim.vdb -covdesign $TEST_TOP_NAME -covtest $TEST_NAME
    说一下各个参数的意思:
    1. $COV_CFG_IUS为配置文件,其内容为那些被覆盖率检测覆盖的模块具体记录的coverage配置,比如:
        set_assign_scoring
    set_branch_scoring
        set_statement_scoring
        set_subprogram_scoring -used *
        set_com -on
        set_expr_scoring -all -sop
        set_fsm_scoring -hold_transition
        set_fsm_reset_scoring
        set_fsm_arc_scoring
        上面这个配置文件,就设定了对于assign语句、branch、fsm等类型coverage的具体配置。
    2. $UNCOV_CFG_IUS,为设定哪些模块需要进行覆盖率统计的文件,内容范例:
        select_coverage -bef -instance fmxxx_test_top.DUT...
        select_coverage -bef -instance fmxxx_test_top.DUT.U_lpcd_top...
        deselect_coverage -bef -instance fmxxx_test_top.DUT.U_digit_top...
    3. $DUT_NAME,是DUT的module名字(注意不是例化名);
    4. $TEST_TOP_NAME,是你的test顶层module名字;
    5. -coverage B:E:F:U,是设定这些coverage仿真类型;
       其中,B=branch, F=fsm, U和E我忘记了,你可以自己查查
    6. $TEST_NAME,是你这次跑的仿真case名字,这个你自己起就好;

    coverage的database存储于./ncsim.vdb中。


查阅:
    ius的覆盖率查阅工具为iccr,图形界面的。如果只是看单个case的coverage,那么直接:
        iccr -gui,然后在图形界面里选择对应的test的database就行。
    如果有merge的需要:
        先,merge test1 test2... -output merged;
        再,iccr -gui;然后在图形界面里选择名字叫merged的database就可以;

上面这些是我为公司项目编写的通用环境中的一部分,你可以修改一下直接使用。
$COV_CFG_IUS文件内容,可以直接复制,通用设定,toggle coverage不统计,没有太大意义。
$UNCOV_CFG_IUS文件,很容易看懂,你照着修改一下,那些memory仿真模型之类的deselect就ok。
 楼主| 发表于 2013-9-4 10:20:43 | 显示全部楼层
回复 6# remnant


   非常感谢您的回复,怎样获得覆盖率信息和合并都懂了。我有一个小问题,是不是merge的时候merged不能指定路径? merged会自动放到哪里去?第一个文件夹test1?谢谢!
发表于 2013-9-5 22:52:29 | 显示全部楼层


回复  remnant


   非常感谢您的回复,怎样获得覆盖率信息和合并都懂了。我有一个小问题,是不是merge ...
E2TML 发表于 2013-9-4 10:20



在ncsim.vdb中,应该是可以改变目录的。不过,我没有尝试过,因为放在一起比较方便查阅。
发表于 2013-9-15 21:35:18 | 显示全部楼层
ncsim的覆盖率结果默认在运行目录下的cov_work/design或cov_work/scope(design还是scope和IUS版本有关)中。iccr的merge命令的output后应该可以跟路径
发表于 2015-4-6 11:39:42 | 显示全部楼层
非常受用,好牛啊,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 06:24 , Processed in 0.032693 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表