数字验证学习笔记——SystemVerilog芯片验证1

一、芯片开发简化流程

  1. 用户需求
  2. 系统设计
  3. 硬件设计
  4. 功能验证
  5. 后端综合

二、验证人员工作

  1. 验证设计文件是否按照功能描述文档实现 验证会按照功能描述发送激励和比较结果
  2. 验证一些边界情况(corner condition).
  3. 设计文件是否能处理一些错误情况

三、验证面临的挑战

  1. 如何穷尽所有的情况给设计产生激励
  2. 何如在各种可能激励的情况下判断出不符合硬件描述的行为
    验证工具:仿真验证和形式验证 复杂度:黑盒验证、白盒验证和灰盒验证

四、设计漏洞

设计露洞越晚发现,所修复的代价越大。
RTL阶段——>门级仿真——>流片后测试——>用户阶段

缺陷数量起初验证会发现很多,随着时间的增长,缺陷数量增长缓慢,直至最后不增长。
缺陷数量曲线的曲率是否收敛或者说是否在变小,在一定的程度上能证明验证的状态是否收敛和趋于完备
验证过程中发现的缺陷种类应该是从基本缺陷到高级缺陷,如果在验证后期还发现基本缺陷,整个验证策略的制定有问题

五、验证周期

  1. 创建验证计划
    1. 需要功能描述文档 包括:接口信息(私有接口要详细)、结构信息、交互信息
    2. 验证方法:直接验证、随机约束验证、形式验证等
  2. 开发验证环境
    1. 实现激励产生器、参考模型、数据比较器
    2. 不同的验证方法会决定不同的验证环境的结构和使用的软件
  3. 调试环境和HDL文件
    1.环境是否有瑕疵
    2.测试用例是否合理
    3.参考模型是否遵循功能描述文档
    4.硬件设计是否本身存在缺陷
  4. 递归测试
    1. 回归测试:硬件某个缺陷修复或者添加了一项新功能,要通过以前的所有测试用例和可能添加的新的测试用例
    回归测试的目的:硬件改动有没有引入新的漏洞;每次递交随机数不同,回归测试是有意义的
  5. 流片后系统测试
  6. 展开逃逸分析

你可能感兴趣的:(验证学习,SV,学习)