• VCS


    转自:http://blog.csdn.net/limanjihe/article/details/52430286

             对于vcs工具,支持生成覆盖率报告,通过查看覆盖率报告,即可知道设计中有什么问题。

             要生成覆盖率报告,要在编译和仿真的时候,加入一个选项。

             -cm  line | fsm | tgl | cond , 指定生成针对什么条件的覆盖率报告。

             如下的makefile,就生成上述四个的覆盖率报告。注意,编译和仿真,都要加上-cm这个选项。

    clip_image002

             执行 make vcs , make sim后,会生成simv.vdb文件夹,该文件夹下包含了覆盖率的内容,但是我们需要将内容生成报告,这样,才方便我们查看。

    clip_image004

             生成报告,使用的是 urg命令,该命令也是属于vcs工具里面的。

    clip_image006

             -dir: 指定 .vdb文件夹的位置

             -report: 指定生成报告的格式,报告格式有两种,一种网页格式,一种text格式。这里,both代表生成两种。

             执行 make urg后,就会生成both文件夹。

    clip_image008

             这文件夹下的文件,就是覆盖率报告了。

    clip_image010

             打开dashboard.html。可以看到整体的一些信息。

    clip_image012

             但是我们关心的是设计的,而不是testbench的。点击hierarchy,得到层次。

    clip_image014

             点击u1,也就是设计的顶层。可以看到关于该顶层的信息。因为在顶层,都是调用各个子模块(这里是调用 band_generaterx_tx, uart_txd模块),所以没有line的覆盖率统计,但是有TOGGLE的覆盖率统计,也就是信号的翻转。

    clip_image016

             从上面可以看出,对于rst_n信号,没有从1->0的翻转,而这个信号是testbench中传递的,因此看出,在testbench设计,对于rst_n信号产生,有bug。

             点击左下角的uart_txd_1,查看该模块的信息。

    clip_image018

             对于该设计,因为有具体的实现,所以可以看到有line的覆盖率,toggle的覆盖率,FSM的覆盖率。

             对于line覆盖率,从报告看出,总共有42行,覆盖到了41行。通过查看代码,可以知道是哪一行没有被执行到。

    clip_image020       

    对于toggle覆盖率。从报告看出,只有rst_n有问题,而这问题是testbench的的bug造成的。

    clip_image022

             对于FSM的检查。从报告看出,每个状态都有被覆盖到。但是从有些状态跳转到另外的状态,没有被覆盖到。因此造成FSM的覆盖率不高。

    clip_image024

             通过查看覆盖率报告,可以查找到设计的缺陷,从而进行修正。

  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/love29850706/p/7144680.html
Copyright © 2020-2023  润新知