3. 产品化测试策略制定

产品化测试策略的核心,是把“测什么、测到什么程度、花多少代价”这三件事在项目早期就固定下来。Lattice FPGA 产品从晶圆到系统级,缺陷的形态和成本差异极大:晶圆上一颗失效的裸片可能只值几美元,而装到客户单板上再暴露问题,返修、停线、信誉损失可能放大到数千美元。因此测试层次划分不是简单的流程罗列,而是成本与风险的分层拦截设计。

测试层次划分:四道拦截网

Lattice FPGA 的典型产品化测试分为四个层次,每层有明确的被测对象、测试手段和拦截目标。

晶圆级(Wafer Sort / CP):在划片前用探针卡接触晶圆上的每个 die,执行 DC 参数测试、扫描链(Scan Chain)测试和存储器 BIST。目标是剔除硬失效裸片,避免不良 die 进入封装。对 Lattice 的小尺寸 FPGA,CP 通常覆盖短路/开路、静态电流 IDDQ、边界扫描连通性。示例判据:IDDQ 超过规格上限 1.5 倍即判失效。

封装级(Final Test / FT):封装完成后在 ATE 上执行全功能测试,包括所有 I/O 电平、PLL 锁定、配置加载、内建自测试。这是电气规格的最终把关,也是数据手册参数的实测来源。FT 通常做温度分档(商业级 0~85°C、工业级 -40~100°C),在高温和低温角点各测一遍关键参数。

板级(Board Level):把 FPGA 焊到客户或评估板上,验证电源时序、配置电路(如 SPI Flash 启动)、时钟树和高速接口(LVDS、DDR)在实际 PCB 环境下的表现。这一层暴露的是封装与 PCB 交互问题,如焊接空洞、阻抗不连续、去耦不足。

系统级(System Level):整机运行真实业务负载,做长时间老化(Burn-in)、温度循环和 EMC 测试。目标是验证在真实工况下的长期可靠性,拦截早期失效(Infant Mortality)。

Lattice FPGA 四层测试拦截与成本关系 ① 晶圆级 CP 对象:裸片 die | 手段:探针卡 + Scan + IDDQ | 目标:剔除硬失效,避免封装浪费 示例判据:IDDQ > 规格上限 1.5× → 判失效 成本最低 ② 封装级 FT 对象:封装成品 | 手段:ATE 全功能 + 温度分档 | 目标:电气规格最终把关 示例:商业级 0~85°C / 工业级 -40~100°C,高低温角点各测关键参数 成本中等 ③ 板级 Board Level 对象:FPGA + PCB | 手段:电源时序、配置启动、时钟树、LVDS/DDR 实测 暴露问题:焊接空洞、阻抗不连续、去耦不足、配置 Flash 时序违例 成本较高 ④ 系统级 System Level 对象:整机 | 手段:真实负载老化、温度循环、EMC | 目标:拦截早期失效 示例:Burn-in 48h @ 85°C,温度循环 -40~85°C 100 次 成本最高 缺陷逃逸成本递增 →

测试覆盖率目标:用缺陷模型反推

覆盖率不是越高越好,而是“覆盖到能拦住已知缺陷模式”。Lattice FPGA 的缺陷模型主要分三类:固定型故障(Stuck-at)、桥接故障(Bridging)和延迟故障(Transition Delay)。

对固定型故障,扫描链覆盖率通常要求达到 99% 以上,这是 ATE 测试向量的基本盘。桥接故障靠 IDDQ 和边界扫描补充,目标 95%。延迟故障最难,需要 at-speed 测试,覆盖率一般定在 85%~90%,因为全速测试对测试机时序精度要求高,成本陡增。

实际做法是:先做故障仿真(Fault Simulation),得到当前向量集的覆盖率报告,再针对未覆盖节点补充定向向量。示例:某 Lattice ECP5 设计,初始扫描覆盖 96.2%,补充 12 条定向向量后达到 99.1%,测试时间增加 8ms,属于可接受范围。

覆盖率目标应写入测试计划,并注明“基于何种故障模型、由何种工具统计”,避免不同团队对同一数字理解不一致。

成本与周期权衡:三个可调旋钮

测试成本 = 测试时间 × 机台费率 + 探针卡/夹具摊销 + 良率损失。周期则受向量生成、夹具制作和老化时间影响。权衡时主要调三个旋钮:

  • 测试项裁剪:把不影响出货判定的参数测试从 100% 全测改为抽样测。例如 PLL 抖动,只在每批抽 5 颗做,其余靠 FT 的锁定测试兜底。
  • 并行测试(Multi-site):ATE 一次测多颗,摊薄单颗机时。Lattice 小封装 FPGA 常做 8 site 或 16 site 并行,测试时间不变但吞吐翻倍。
  • 老化时间压缩:用加速因子(Arrhenius 模型)把 1000h 等效老化压缩到 48h @ 125°C。示例:激活能 0.7eV,125°C 相对 55°C 的加速因子约 28 倍,48h 可等效约 1344h。

权衡的底线是:不能为了省成本把系统级老化砍掉,因为早期失效一旦流到客户,返修成本是测试成本的几十倍。合理的做法是“晶圆和封装层做全检保良率,板级和系统级做抽样保可靠性”。

测试计划文档编写:可执行的交付物

测试计划不是写给评审看的,而是给测试工程师、ATE 程序员和可靠性工程师直接执行的。一份可用的 Lattice FPGA 测试计划至少包含以下字段,下面给出可直接参考的模板结构。

字段 填写内容示例 作用
测试层次 CP / FT / 板级 / 系统级 明确在哪一层执行
被测对象 Wafer Lot#、封装型号、单板版本 追溯批次
测试项与判据 IDDQ ≤ 15mA;PLL lock ≤ 100μs 可量化判定
覆盖率目标 Stuck-at ≥ 99%,Transition ≥ 88% 向量充分性
样本量 全检 / 每批抽 5 颗 / 30 颗老化 成本与置信度平衡
设备与夹具 ATE 型号、探针卡编号、老化板编号 资源准备
周期与里程碑 向量生成 5d,夹具 10d,老化 3d 排期依据
失效处理 失效 die 打点、失效板隔离、FA 流程 闭环

编写时注意两点:一是判据必须带单位和测试条件(温度、电压、频率),例如“IDDQ ≤ 15mA @ 25°C, VCC=1.1V”,否则不同人测出不同结果;二是覆盖率目标要注明统计工具和故障模型版本,因为不同 EDA 工具对同一设计的覆盖率数字可能差 2~3 个百分点。

测试计划评审时,重点检查“失效处理”一栏是否闭环。很多计划只写“记录失效”,没写失效品如何隔离、是否触发批次冻结、FA 报告谁签字,导致问题反复出现。