描述验证资源分配优化的策略
解读
面试官真正关心的是:在“人、时间、工具、算力”四重受限的国产芯片项目里,你如何把有限的验证资源用到刀刃上,既保证覆盖率收敛,又不拖流片节点。回答要体现“量化决策 + 风险对冲 + 本土落地经验”,避免空谈“加人加班”。
知识点
- 资源维度:人力(验证/设计/EMU/FPGA团队)、时间(RTL冻结到Tape-Out窗口)、License(VCS/Questa/Xcelium、Palladium、Zebu峰值数量)、机房机时(服务器、云算力)。
- 国产痛点:License峰值不足、机房机柜审批慢、外包人力单价高、流片窗口由代工厂排产锁定不可滑。
- 优化目标函数:Max(覆盖率加权风险收益) / Min(人·日 + License·时 + 机时费),约束条件是“不晚于Tape-Out前两周达到Sign-Off”。
- 关键指标:COV(代码覆盖)、FC(功能覆盖)、CDC/RDC 剩余违例数、低功耗UPF检查收敛率、Bug Discovery Rate曲线斜率、重跑Regression Fail率。
- 决策工具:国产自研或二次开发的“资源调度看板”(Python+MySQL),对接LSF/Slurm,实时抓取License占用;蒙特卡洛模拟预测不同人力配置下的收敛概率。
答案
我采用“三步七板斧”策略,全部在国内14 nm AI芯片项目落地,把Tape-Out前资源峰值需求降低32%,人力压缩20%,仍一次流片成功。
第一步:风险量化,先砍80%无用功
- 建立“特征-风险”矩阵:用Perl脚本抓取RTL changelog,结合设计人员标记,把子模块按“新编/复用/改版”三档分类;新编且含AXI4、PCIe Gen4、LPDDR5协议栈的模块自动标红。
- 以历史项目缺陷密度为基线,给每个特征赋权重,算出“风险分”。验证资源优先向风险分>0.7的模块倾斜,低风险复用模块仅保留1名工程师做Sanity。
第二步:动态预算,把License当人天管
3. 按“周”做时间切片,把Regression、Formal、EMU、Gate-Sim四大任务做成甘特图,横轴是周,纵轴是License峰值。用国产自研调度器提前48 h预测License冲突,自动把非关键Regression降级到夜间低优队列;若预测仍超峰值,则把部分Netlist仿真任务迁移到FPGA原型,节省VCS License 30%。
4. 人力“潮汐排班”:把团队拆成“早班8:00-17:00”和“晚班13:00-22:00”,错峰使用Zebu;同时与母公司上海机房、西安机房、成都云厂商签三方协议,白天用本地机房,夜间低价云算力回填,机时费下降25%。
第三步:收敛驱动,用数据喊停
5. 每周一早上跑“覆盖率-缺陷双维度”蒙特卡洛,预测在当前资源投入曲线下,达到99% FC + 90% COV所需的剩余人·日。若预测值>剩余日历天数×0.8,立即触发“橙色预警”,把低风险任务人力强制调入高风险模块,并砍掉所有非关键Feature Test。
6. 引入“Bug半衰期”指标:若连续两周Bug Discovery Rate斜率绝对值<1,且未解High级Bug≤3,即可申请局部Sign-Off,释放对应模块License与人力。
7. 最后两周进入“静默期”,只保留1条24 h回归+1条随机种子 nightly,License峰值从120降到45,节省下的Palladium机时全部供给Top-Level Gate-Sim,保证SDF Back-Annotation时序收敛。
通过上述策略,我们把总体验证人·日从计划的5800压缩到4640,License峰值费用节省约220万元,最终Coverage 99.4%,缺陷密度0.12个/KLOC,达到代工厂Sign-Off标准。
拓展思考
- 如果项目采用Chiplet架构,验证资源需额外考虑Die-to-Die PHY的跨团队协同,可把资源池拆成“逻辑验证+接口验证+封装级联调”三级预算,避免重复建平台。
- 在RISC-V开放生态下,面对大量第三方IP,可用“黑盒风险分级”模型:先跑一套“协议达标性Formal”,通过的IP直接降采样到1/10随机Regression,省出资源集中攻关自研核心。
- 未来国内License成本持续走高,可探索“多云+容器化”弹性验证:把UVM Testbench拆成可容器化的微服务,白天本地跑,夜间自动弹到阿里云弹性高性能计算(E-HPC),按秒计费,进一步平滑资源曲线。