当前位置: 首页 > ai >正文

【验证技能】验证质量活动及其执行注意事项

验证策略评审:
重点在:DUT 的验证重难点在哪里?怎么保证芯片或者IP的正确性;

协议类IP重点在协议符合度上;SOC重点在各个IP配合是否正确;数模IP重点在模拟性能是否达标;

测试点评审:
完备性,某个功能点,激励怎么构造,需要配置什么,怎么检查,用什么检查,用什么覆盖;
测试点中FCOV空间规划的合理不合理,边界点附近有没有覆盖到;

验证方案评审:
环境是否够打出测试点中需要的激励;checker是否能满足验证DUT正确性的要求;checker的实现方案是否可行正确;

冒烟用例评审:

前仿真EDA仿真报告评审:
重点是用了什么版本的RTL、用的那个版本的EDA环境,最终用例回归结果情况,最终功能覆盖率覆盖情况,代码覆盖率情况,BUG 处理情况;

后仿真EDA仿真报告评审:
在于最终仿真的网表版本是否正确,因为前后会有不同的网表,如DFT网表、PR网表,不同网表中时序满足情况不同;
搭建的后仿真环境是否正确,比如input延时是否提供正确;用例仿真结果如何,有没有报时序违例,报的时序违例要与设计同事后端同事确认,这个违例符不符合预期,对电路的影响是什么?

RTL代码检视:
信号连接是否正确、功能实现是否正确、宏使用是否正确、参数化赋值是否正确;

EDA验证环境检视:
修改点、信号的连接、参数化使用是否正确、宏定义是否正确、用例回归结果、

文档归档确认:
RTL交付版本、网表交付版本、EDA验证环境版本均要上库,然后由1人,在其他目录下将环境和代码下载下来,进行回归仿真一遍,保证保存的版本号内容是正确的。

1) 专项验证(寄存器、中断、时钟复位、RAM、DFX、Function Mbist等等);

2) Bug review, 错误案例分析;

进行举一反三,看有没有类似的问题出现在其他地方而目前仍未发现;看看出现的这些bug的原因是什么,是什么让其引入bug的,验证中用什么办法可以将其拦截,而不留到样测时;

3) 波形确认;

对重难点波形进行确认,对接口行为进行确认,对改动点波形进行确认;并截图,保存文档,进行备份(RTL交付、网表交付、EDA验证环境均要有版本号,方便芯片样品实测时进行EDA问题复现);

4) 验证发散,比如随机约束放开;

尤其是上下游模块进行联合仿真时,往往按照预设的先后顺序进行仿真,一般不会出错,但是正在的出错就是在某次一起工作结束后,再次启动配合工作,此时上下游模块中某些信号或某些模块会保持特殊的值或状态,此时可能上下游模块配合就容易出问题。

5) 不常见的组合分析;

6) 修改点、影响点、耦合点分析;

对于小修小改的版本,往往重点放在改动点上,看改动点会影响那些功能,和什么有耦合;

7) 代码、文档一致性检查;

对于设计代码来说,可能协议或者规格书上对某个功能的具体特性支持的能力值,由于

8) 上下游配合检视;
波形检视;

9) FPGA测试检视;

FPGA测试一般会降频进行功能正确性测试,对于复杂的模块;

10) 验证代码检视(约束、配置、接口、coverage、断言、force、TC等);

11) Corner点确认;

12) End_of_check(case执行完毕,检查所有中断和状态寄存器符合预期);
大多数用例都要使能End_of_sim_check,对中断和状态寄存器进行判断,不能说某个功能下会出现中断和状态寄存器错误。

13) 初始化流程检查;
真正的完全按照初始化流程进行一次操作仿真,看这个流程是否正确。在某些子模块功能验证时为了仿真效率高,速度快,有时候会将初始化流程简化掉,或者通过后门的方式配置了,这个也是可以的。但是完整的流程仿真一次是必不可少的。

14) 异步、最小时钟、最大复位;

15) 遍历测试;

16) 环回测试;

17) 低功耗验证分析;

18) 文档、寄存器反标;
协议反标:把协议挨着看一遍,与实现进行对应,与测试点进行一一对应,保证协议中提到的要求都对应的实现了,并且对应的验证了,避免出现漏实现或漏验证,或者实现错误或错误验证;
设计文档反标:

19) 粘连检视(时钟、复位、数据、告警、中断、配置等);

20) 等效、等价类;

21) 设计、验证差异性检视(杜绝设计验证代码实现一致);

22) 头脑风暴。

http://www.xdnf.cn/news/3341.html

相关文章:

  • 权限提升—Linux提权内核溢出漏洞辅助项目
  • 【QNX+Android虚拟化方案】138 - USB 底层传输原理
  • 实验五 完整性
  • 初学者如何学习AI问答应用开发范式
  • PostgreSQL数据类型
  • 使用Python和Pandas实现的Amazon Redshift权限检查与SQL生成用于IT审计
  • 【DeepMLF】具有可学习标记的多模态语言模型,用于情感分析中的深度融合
  • EBO的使用
  • 基于python的人工智能应用简述
  • Spring 提供了多种依赖注入的方式
  • C#泛型集合深度解析(九):掌握System.Collections.Generic的核心精髓
  • 电池预测 | 第27讲 基于CNN卷积神经网络的锂电池剩余寿命预测
  • x86架构详解:定义、应用及特点
  • C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 18)
  • 人工智能对未来工作的影响
  • 治理和管理的区别
  • Linux内核notify通知笔录
  • 软件测评中心如何保障软件质量与性能?评测范围和标准有哪些?
  • Java 多线程进阶:线程安全、synchronized、死锁、wait/notify 全解析(含代码示例)
  • Go 语言中一个功能强大且广泛使用的数据验证库github.com/go-playground/validator/v10
  • 2025五一杯数学建模A题:支路车流量推测问题,思路分析+模型代码
  • 拉宾公钥密码算法实现
  • 面经-计算机网络——OSI七层模型与TCP/IP四层模型的对比详解
  • IDEA在项目中添加模块出现Error adding module to project: null(向项目添加模块时出错: null)的解决方法
  • 位运算切换大小写
  • 数字智慧方案6158丨智慧医疗解决方案精华版(58页PPT)(文末有下载方式)
  • Spark,集群搭建之Yarn模式
  • go实现双向链表
  • Unity SpriteRenderer(精灵渲染器)
  • Linux常用命令27——userdel删除用户