zoukankan      html  css  js  c++  java
  • VCS学习(5)-Code Coverage

    一:类型

      line(行)覆盖率,Toggle(跳变)覆盖率,condition(条件)覆盖率,FSM(状态机)覆盖率,path(路径)覆盖率

    二:覆盖率

    1:行覆盖率

      一般要求100%,例如缺else,default

      例子如下,缺少else,default;但这不一定是错误,可能故意为之;二次检查

      

    2:条件覆盖率

      代码中有if语句,实际可能出现某种情况,但程序没有覆盖,则报告

    3:Toggle coverage

      信号是否有0->1,1->0的跳变;x->1,x->0不会报告

      

    4:FSM覆盖率

      报告state1-state2没有转换

    5:path覆盖率

      路径是否覆盖

    三:什么时候使用覆盖率

    1:behavior code

       line,condition,path,FSM

    2:RTL code

      line, condition,path,Toggle(not command),FSM

    3:Gate-level code

      Toggle

    四:覆盖率编译执行开关

    1:compile   

      #vcs -cm<coverage_type> <other option>;例如 -cm cond+line+tgl+fsm+path

      coverage_type:

      line,tgl,cond,fsm,path

    2:simulation

      #./simv -cm<coverage_type> <other switches>

      -cm_name filename: 覆盖率文件的名字

      -cm_dir directory_of_file:覆盖率文件所在文件;后缀为vdb

      -cm_log:覆盖率log文件

      

    3:dve

      dve -covdir *.vdb &             即可看覆盖率文件

      在dve界面,file-generate URG report-Report Format-可选中网页或者txt方式阅读覆盖率文件

    4:不想报告某段code或者文件的覆盖率(比如一些在仿真时辅助的行为级代码,后仿真时会去掉)

      针对某段code屏蔽覆盖率报告但不屏蔽综合://VCS coverage off

                                                            //VCS coverage on

      针对某段code屏蔽覆盖率报告且屏蔽综合   ://synopsys translate_off

                           //synopsys translate_on

      针对某个文件屏蔽覆盖率   :

      在compile开关中添加-cm_hier<name_of_file>。-cm_hier ./filename  先在当前文件夹下新建一个文件,用gvim打开这个文件,输入-module fs,则在报告中屏蔽这个module的报告;输入    +module fs,则报告里只有fs的覆盖率;输入-file fs.v,则在报告里屏蔽fs.v文件;输入+file fs.v,则只有文件fs的报告

  • 相关阅读:
    R
    P
    O
    M
    二分算法的一些思考
    I
    H
    G
    5-46 新浪微博热门话题 (30分)——unfinished HASH
    BZOJ 1179: [Apio2009]Atm
  • 原文地址:https://www.cnblogs.com/xh13dream/p/8574455.html
Copyright © 2011-2022 走看看