dennis_zhang的个人空间 https://blog.eetop.cn/853508 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

vary coverage

已有 642 次阅读| 2011-7-26 21:21 |个人分类:concepts of ic

----------------------------------- copy from website -------------------------------------------------------
Functional Coverage
Introduction

Typically in verification flow, we do code coverage, but doing code coverage shows only if all the lines of the DUT is executed, if all the possible cases of a expression are covered. Which is kind of ok to start with, but it is no way good for saying that verification is completed.

  

space.gif

For declaring a verification to be complete we need to check also if all the functions of DUT are tested or not. Like to say if read followed by write to same address of a memory did it happen or to say if 64 Bytes packets happened when port mirroring is enabled.

  

space.gif

Typically when we start documenting test cases in test plan document, we also start documenting functional coverage plan. So when we start coding testbench, we code coverage along testbench. Vera language gives very good set of features that are useful in measuring coverage.

  

space.gif

There are 4 places where functional coverage points can be coded in a verification enviroment, and they can be classfied as

  

space.gif

  • F1 : Functional coverage points are very near the randomization
  • F2 : Functional coverage points are sampled at input interface of DUT
  • F3 : Functional coverage points which sample internal DUT states
  • F4 : Functional coverage points which sample output interface of DUT
  

space.gif

Below figure shows all the 4 types.

  

space.gif

../images/vera/coverage.png
  

space.gif

 ../images/main/bulllet_4dots_orange.gifF1 Coverage points

These set of coverage points are coded in class which is instantiated very near to the randomization and it is before actual BFM/driver to DUT. There is problem with F1 type coverage points. Assume for some reason, BFM/Driver is not able to send randomizated object to DUT, even then functiona coverage gets updated. This is not acceptable.

  

space.gif

  

space.gif

 ../images/main/bulllet_4dots_orange.gifF2 Coverage points

These set of coverage points are coded in class which is instantiated inside a input monitor or coverage class itself will have ablitiy to sample the DUT input signals. This is perfect for having functional coverage on stimulus that DUT is being driven with,

  

space.gif

 ../images/main/bulllet_4dots_orange.gifF3 Coverage points

These set of coverage points are coded in class which is instantiated as standalone class, and it monitors the internal states of DUT, like FSM states, or some registers. I have rarely come across these kind of coverage points. Also with advent of SVA cover properties, I see little use of F3 functional coverage types.

  

space.gif

 ../images/main/bulllet_4dots_orange.gifF4 Coverage points

These set of coverage points are coded in class which is instantiated inside a output monitor or coverage class itself will have ablitiy to sample the DUT output signals. This is perfect for having functional coverage on output of DUT,


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 255

    访问数
关闭

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

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

GMT+8, 2024-5-3 05:00 , Processed in 0.024203 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部