芯片验证工程师在做什么?
更新时间:2026-09-21。问题驱动短答页。总览见 芯片验证 与 验证,验证 vs 测试见 验证与测试,UVM 见 UVM 组件与 phase。
一句话回答
芯片验证(design verification)是在流片之前,穷尽各种合法/非法输入场景,证明 RTL 实现完全符合规格说明书、并尽量把功能 bug 全找出来的工作——因为流片后再改一次(respin)要数月和数百万,验证通常占整个项目一半以上工期。 验证工程师搭测试平台、写激励和检查器、统计覆盖率,回答「设计做对了吗」;而流片后的「测试(test)」是用 ATE 筛出制造缺陷的芯片,回答「这片造好了吗」。
验证 vs 测试
| 验证 Verification(硅前) | 测试 Test(硅后/制造) | |
|---|---|---|
| 时机 | 流片前,对 RTL/网表仿真 | 流片后,对实体芯片 + ATE |
| 目标 | 找设计缺陷、证明符合规格 | 找制造缺陷(坏片) |
| 手段 | 仿真、断言、形式、UVM、原型 | 扫描链、BIST、ATE 测试向量 |
| 失败含义 | 改 RTL(成本低) | 判废/返修(流片已贵) |
主要手段
- 定向仿真:针对明确场景构造激励,适合基础与已知 corner case。
- 受约束随机(CRV):随机生成海量合法事务,撞到人想不到的组合,见 受约束随机验证。
- 断言 SVA:把协议/时序属性直接写进 RTL 旁,违例立即报,见 SVA 断言实践。
- 覆盖率驱动:用功能覆盖率(场景覆盖)+ 代码覆盖率(行/翻转/状态机)衡量「验证得全不全」,指导补激励,见 功能覆盖率。
- UVM:工业级方法学,把 driver/monitor/sequencer/scoreboard 模块化复用,见 UVM 组件。
- 形式验证:数学上穷举证明某属性恒成立,不需要激励,见 形式验证入门。
- 门级仿真/CDC/Lint/原型:综合后门级、跨时钟域、语法规则、FPGA 原型与仿真加速,见 CDC/RDC 报告分诊。
日常产出
读规格 → 写验证计划(testplan)→ 搭 UVM 环境/参考模型/记分板 → 跑回归(regression)→ 分析波形定位、提 bug、复现 → 收覆盖率到收敛 → 签核。
常见误区
- 以为「仿真跑过几条用例」=验证完:没有覆盖率收敛,无法证明充分。
- 只验正常流程,不验错误/边界/背靠背/非法协议:bug 多藏在 corner。
- 验证环境自身没验证:检查器写错会漏报。
- 忽视复位、CDC、X 态传播、随机种子可复现性。
- 把验证当测试:一个查设计缺陷、一个查制造缺陷,目标完全不同。
总结
验证是流片前用仿真、受约束随机、SVA 断言、功能覆盖率、UVM、形式验证等手段证明 RTL 符合规格并穷尽缺陷,因 respin 极贵而占一半以上工期,靠覆盖率驱动和回归收敛来回答「设计做对了吗」;它与流片后用 ATE 筛制造坏片的「测试」是两件事,最忌只跑几条用例、忽略错误边界与覆盖率收敛。