-
验证基础1
-
1.芯片开发概述;
-
芯片开发流程;
-
用户需求;
-
系统设计;
-
硬件设计;
-
功能验证;
-
后端综合;
-
-
验证与设计的关系;
-
验证需懂设计,发现漏洞有效与设计沟通;
-
设计与验证都需围绕功能描述文档;
-
验证结果不符合预期;
-
漏洞明显由设计修正,待返回验证;
-
功能实现与设计分歧,设计与验证共同回顾功能描述,统一对功能理解;
-
-
-
验证构建环境,检查设计的工作;
-
设计文件是否按功能描述文档正确实施;
-
硬件设计是否有边界漏掉的情况;
-
硬件设计是否足够稳定处理错误情况;
-
-
设计与验证协作;
-
均需认真阅读功能描述文档(重要);
-
设计依据功能描述文翻译为RTL模型;
-
设计待测DUT;
-
-
验证按照功能描述文档发送激励和比较结果;
-
重点:model的构建;
-
-
-
验证挑战;
-
如何解决验证完整性和高效性,面临两大挑战;
-
穷尽所有可能给设计产生激励;
-
划分有效测试空间;
-
给出随机约束激励;
-
-
在各种可能激励情况下判断出不符合硬件描述行为,并报告;
-
硬件类型分类;
-
处理器;
-
激励:预先被存入到存储器单元的指令和数据;
-
比较:指令执行后寄存器的值是否符合预期;
-
-
存储控制器;
-
激励:数据读写操作并尽可能覆盖所有可访问范围;
-
比较:数据存储和读取是否正确;
-
-
IO模块;
-
激励:数据包传输,包括定义包的头部、长度数据和地址;
-
比较:数据从IO输入到输出是否得到正确的转换打包,数据是否有丢失;
-
-
音频视频组件;
-
激励:数据流的编码解码;
-
比较:数据流在输出端相对输入端完整性,音频是否失真,视频是否完好;
-
-
片上网络(NoC);
-
激励:列出主从单元的访问矩阵穷举访问路径;
-
比较:可能访问路径是否都可以通过;被禁止的路径是否按照预期无法访问;
-
-
系统模块(始终、复位、电源);
-
激励:逻辑开关测试,顶层逻辑测试;
-
比较:通过寄存器配置各个控制信号是否正确更新,同时顶层连线是否将系统模块输出连接到目标子系统端;
-
-
-
验证工具分类;
-
仿真验证,形式验证;
-
-
验证复杂;
-
白盒验证,黑盒验证,灰盒验证;
-
-
-
-
-
-
2.验证职业前景;
-
验证人员技能树(重要);
-
构建测试平台,指定测试计划,创建测试用例;
-
分析问题,定位和修复漏洞;
-
熟悉验证方法学,掌握sv和uvm;
-
掌握功能覆盖率方法,量化验证进度;
-
熟悉脚本语言:支持验证流程自动化和仿真结果管理;
-
-
-
3.验证任务和目标;
-
验证目标;
-
按时、保质、低耗;
-
-
对于设计缺陷,验证需做(重要);
-
验证后期不应该再出现基本设计缺陷;
-
使缺陷增长曲线逐步收敛;
-
需绘制缺陷增长曲线;
-
-
-
4.验证周期;
-
验证周期中检查点(重要);
-
创建验证计划;
-
验证周期起始点;
-
需参照功能描述文档;
-
-
开发验证环境;
-
与设计一起回顾验证计划,确保没有明显遗漏;
-
第一个检查点;
-
-
-
调试环境;
-
发送激励对比,定位硬件存在缺陷大致位置;
-
-
回归测试;
-
前提:已经过一定数量激励测试;
-
回归:将已有的所有测试序列都执行一次;
-
回归测试前:验证代码检查;
-
回顾验证代码:可能遗漏测试激励,不恰当随机约束,代码结构缺陷;
-
第二个检查点;
-
-
回归测试后:流片前验证完备性检查;
-
第三个检查点;
-
-
-
硅后系统测试;
-
流片后系统测试;
-
-
逃逸分析;
-
最后一项检查点:吸取教训;
-
-
-
功能描述文档(重要);
-
接口信息;
-
标准接口;
-
时钟、复位、接口信号名;
-
-
自定义接口;
-
列出时序,命令,数据传输;
-
-
-
结构信息;
-
将模块细分为各功能组件及组件间逻辑关系;
-
-
交互信息;
-
因模块被集成到更高一级的子系统中,文档需包含模块间交互示意图;
-
交互信号包含准确时序信息,集成后交互按预定义时序发生;
-
-
-
制定验证计划(重要);
-
验证方法;
-
直接验证;
-
随机约束验证;
-
形式验证;
-
-
验证工具;
-
验证完备标准;
-
量化出参数衡量验证任务是否完成;
-
-
验证资源;
-
验证功能点;
-
给出验证功能点,在什么层次去验证;
-
生成何种激励;
-
检查设计的何种状态和数据输出;
-
-
-
-
开发验证环境(重要);
-
激励产生器(stimulus generator);
-
参考模型(reference model);
-
数据比较器(data compartor);
-
-
调试环境和RTL文件(重要);
-
环境是否有瑕疵;
-
测试序列是否合理;
-
参考模型是否遵循功能描述文档;
-
硬件设计本身是否存在功能缺陷;
-
-
回归测试;
-
硬件修复缺陷或添加新功能,仍可通过以前所有测试用例和添加新的测试用例;
-
确保改动没有引入新缺陷,修复之前漏洞,按预定目标实现新功能;
-
随机种子不同,通过往复回归测试和补充定向测试逐步提高验证完备性;
-
-
-
-
验证基础1
最新推荐文章于 2024-09-09 17:43:06 发布