ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

功能覆盖率方法

2022-09-02 08:30:35  阅读:196  来源: 互联网

标签:测试计划 功能 覆盖 覆盖率 cover 测试 方法


功能覆盖方法包含三个组成部分。两个是基于语言特征的,而第三个是方法论组件。

cover

功能覆盖方法的第一个组成部分是“cover”(SystemVerilog 断言语言的一部分)。“cover”使用 SVA 时间语法。

“cover”提供的覆盖率。只能放在模块、程序和接口中,不能放在类中。

Covergroup, Coverpoint, Bins

功能覆盖方法的第二个组成部分是基于功能覆盖率语言的覆盖组、覆盖点、仓等。 Covergroups 提供设计变量的覆盖范围。它们记录指定为(设计变量的)覆盖点的各种值的出现次数。 Coverpoints 查询设计变量的某些值或场景是否已经发生。覆盖点的“交叉”是一个非常重要的特性,它对于覆盖同时发生的事件(写和读周期并行发生)至关重要。

Testbench and Test Plan

第三个组件(更高级别的方法组件)是测试台和测试计划。

我们的测试计划(显然)基于要测试的功能。根据测试计划创建一个功能覆盖矩阵,其中包括要测试的每个功能(控制和数据):

  • 在功能覆盖矩阵中确定所有功能覆盖组/覆盖点/仓。

  • 在验证/仿真过程中测量它们的覆盖率范围。

  • 从覆盖率报告中衡量测试的有效性:

    —例如:我们的测试主要访问缓存行中的 32 - byte 单位;如果看到byte、word和quad-word的覆盖率很低或未被覆盖,就可以更改或添加新 test 以命中byte/word等。使用受约束的随机方法来缩小测试目标。

  • “cover”时序断言。

  • 通过设计为关键功能路径添加更多覆盖点:

    – 例如,对 L2(二级缓存) 的写入之后是从同一地址读取的,并且这发生在所有可能的写入/读取组合中。

  • 随着验证的进行更新功能覆盖率计划:

     – 仅仅因为在项目开始时创建了一个计划并不意味着测试完它就结束了。

     – 随着对设计及其边界case的了解,测试计划和功能覆盖计划的详尽程度也应该增加。

     – 继续为一开始没有想到的任何功能添加覆盖点。

 

  

标签:测试计划,功能,覆盖,覆盖率,cover,测试,方法
来源: https://www.cnblogs.com/fuqiangblog/p/16648496.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有