• 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的报告

  • 相关阅读:
    Spring总结四:IOC和DI 注解方式
    Spring总结二:IOC(控制反转)xml方式
    Spring总结一:Srping快速入门
    TCP UDP HTTP 的关系和区别
    sql 一些偶尔会用到的写法和函数 不定时更新
    AngularJS分层开发
    AngularJS入门
    url和uri的区别
    MyBatis总结八:缓存介绍(一级缓存,二级缓存)
    Javascript 中 == 与=== 对比
  • 原文地址:https://www.cnblogs.com/xh13dream/p/8574455.html
Copyright © 2020-2023  润新知