验证基础1

  • 验证基础1

    • 1.芯片开发概述;

      • 芯片开发流程;

        • 用户需求;

        • 系统设计;

        • 硬件设计;

        • 功能验证;

        • 后端综合;

      • 验证与设计的关系;

        • 验证需懂设计,发现漏洞有效与设计沟通;

        • 设计与验证都需围绕功能描述文档;

        • 验证结果不符合预期;

          • 漏洞明显由设计修正,待返回验证;

          • 功能实现与设计分歧,设计与验证共同回顾功能描述,统一对功能理解;

      • 验证构建环境,检查设计的工作;

        • 设计文件是否按功能描述文档正确实施;

        • 硬件设计是否有边界漏掉的情况;

        • 硬件设计是否足够稳定处理错误情况;

      • 设计与验证协作;

        • 均需认真阅读功能描述文档(重要);

        • 设计依据功能描述文翻译为RTL模型;

          • 设计待测DUT;

        • 验证按照功能描述文档发送激励和比较结果;

          • 重点:model的构建;

      • 验证挑战;

        • 如何解决验证完整性和高效性,面临两大挑战;

          • 穷尽所有可能给设计产生激励;

            • 划分有效测试空间;

            • 给出随机约束激励;

          • 在各种可能激励情况下判断出不符合硬件描述行为,并报告;

            • 硬件类型分类;

              • 处理器;

                • 激励:预先被存入到存储器单元的指令和数据;

                • 比较:指令执行后寄存器的值是否符合预期;

              • 存储控制器;

                • 激励:数据读写操作并尽可能覆盖所有可访问范围;

                • 比较:数据存储和读取是否正确;

              • IO模块;

                • 激励:数据包传输,包括定义包的头部、长度数据和地址;

                • 比较:数据从IO输入到输出是否得到正确的转换打包,数据是否有丢失;

              • 音频视频组件;

                • 激励:数据流的编码解码;

                • 比较:数据流在输出端相对输入端完整性,音频是否失真,视频是否完好;

              • 片上网络(NoC);

                • 激励:列出主从单元的访问矩阵穷举访问路径;

                • 比较:可能访问路径是否都可以通过;被禁止的路径是否按照预期无法访问;

              • 系统模块(始终、复位、电源);

                • 激励:逻辑开关测试,顶层逻辑测试;

                • 比较:通过寄存器配置各个控制信号是否正确更新,同时顶层连线是否将系统模块输出连接到目标子系统端;

            • 验证工具分类;

              • 仿真验证,形式验证;

            • 验证复杂;

              • 白盒验证,黑盒验证,灰盒验证;

    • 2.验证职业前景;

      • 验证人员技能树(重要);

        • 构建测试平台,指定测试计划,创建测试用例;

        • 分析问题,定位和修复漏洞;

        • 熟悉验证方法学,掌握sv和uvm;

        • 掌握功能覆盖率方法,量化验证进度;

        • 熟悉脚本语言:支持验证流程自动化和仿真结果管理;

    • 3.验证任务和目标;

      • 验证目标;

        • 按时、保质、低耗;

      • 对于设计缺陷,验证需做(重要);

        • 验证后期不应该再出现基本设计缺陷;

        • 使缺陷增长曲线逐步收敛;

        • 需绘制缺陷增长曲线;

    • 4.验证周期;

      • 验证周期中检查点(重要);

        • 创建验证计划;

          • 验证周期起始点;

          • 需参照功能描述文档;

        • 开发验证环境;

          • 与设计一起回顾验证计划,确保没有明显遗漏;

            • 第一个检查点;

        • 调试环境;

          • 发送激励对比,定位硬件存在缺陷大致位置;

        • 回归测试;

          • 前提:已经过一定数量激励测试;

          • 回归:将已有的所有测试序列都执行一次;

          • 回归测试前:验证代码检查;

            • 回顾验证代码:可能遗漏测试激励,不恰当随机约束,代码结构缺陷;

            • 第二个检查点;

          • 回归测试后:流片前验证完备性检查;

            • 第三个检查点;

        • 硅后系统测试;

          • 流片后系统测试;

        • 逃逸分析;

          • 最后一项检查点:吸取教训;

      • 功能描述文档(重要);

        • 接口信息;

          • 标准接口;

            • 时钟、复位、接口信号名;

          • 自定义接口;

            • 列出时序,命令,数据传输;

        • 结构信息;

          • 将模块细分为各功能组件及组件间逻辑关系;

        • 交互信息;

          • 因模块被集成到更高一级的子系统中,文档需包含模块间交互示意图;

          • 交互信号包含准确时序信息,集成后交互按预定义时序发生;

      • 制定验证计划(重要);

        • 验证方法;

          • 直接验证;

          • 随机约束验证;

          • 形式验证;

        • 验证工具;

        • 验证完备标准;

          • 量化出参数衡量验证任务是否完成;

        • 验证资源;

        • 验证功能点;

          • 给出验证功能点,在什么层次去验证;

            • 生成何种激励;

            • 检查设计的何种状态和数据输出;

      • 开发验证环境(重要);

        • 激励产生器(stimulus generator);

        • 参考模型(reference model);

        • 数据比较器(data compartor);

      • 调试环境和RTL文件(重要);

        • 环境是否有瑕疵;

        • 测试序列是否合理;

        • 参考模型是否遵循功能描述文档;

        • 硬件设计本身是否存在功能缺陷;

      • 回归测试;

        • 硬件修复缺陷或添加新功能,仍可通过以前所有测试用例和添加新的测试用例;

          • 确保改动没有引入新缺陷,修复之前漏洞,按预定目标实现新功能;

          • 随机种子不同,通过往复回归测试和补充定向测试逐步提高验证完备性;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值