芯片验证从零开始系列(一)——芯片验证概论


由于最近一个比赛要用到UVM验证,顺便多一门以后求职的手艺,准备系统地学习一下SV和UVM,也可以为之后的毕业论文和发展方向做一些准备。

芯片开发流程

  • 1)市场人员和客户沟通确定用户需求
  • 2)系统设计人员按照功能划分为各个子系统
  • 3)子系统由设计团队开发实现
  • 4)验证人员对设计功能展开验证,发现设计缺陷,交由设计人员修正
  • 5)验证没有出现漏洞后,交由后端人员进行综合,布局布线
  • 6)后端人员将版图交由FAB流片

芯片验证从零开始系列(一)——芯片验证概论

动态验证技术

动态验证技术是目前的主流技术

依靠仿真器来对数字电路进行激励发送结果检查

静态验证技术

可以分为人工形式验证(属性检查)和自动形式验证技术。

  • 属性检查指通过断言结合形式验证工具对设计进行穷举检查,判断设计的正确性。
  • 自动验证技术包括SOC集成连接检查死锁检测X语义安全检查覆盖范围可及性等。

Emulation和FPGA原型开发

由于复杂的环境下,仿真的速度将非常慢。所以在开发的中后期等项目趋于稳定后用FPGA原型开发,来做一些更复杂的功能测试。(这里的FPGA仅作为逻辑容器)。并且通常的验证团队中负责FPGA原型开发的要求人数极少。

测试平台框架

芯片验证从零开始系列(一)——芯片验证概论

  • 对DUT(device under test)创建测试序列
  • 观察DUT的输入输出
  • 对DUT的输出数据与预期数据比对
  • 输出报告检查结果

检查设计

检查设计一般分为以下几个步骤

  • 1)设计文件是否正确地按照功能描述文档去实施
  • 2)检测边界条件是否遗漏
  • 3)设计是否足够稳定来处理一些错误情况

并且测试时给出的激励向量应该是先易后难,发现的缺陷也应该是先基本后高级

回归测试

最后当硬件设计经过了一定数量的激励测试,验证人员就可以准备回归测试了。

回归测试就是将已有的所有测试序列测试一次