1. 课程导入与产品化测试全景

在 FPGA 项目中,设计能跑通仿真、能在开发板上点亮一颗 LED,与“可以交付给客户、可以进入量产”之间,往往隔着一段被低估的距离。Lattice FPGA 以低功耗、小封装、低成本著称,广泛用于消费电子、工业控制、通信接口桥接、服务器辅助管理(如电源时序、BMC 周边逻辑)等场景。这类产品的共同特点是:单板价值不高、出货量大、生命周期长、现场返修成本远高于器件本身。因此,产品化测试与工程交付的核心目标不是“证明设计能工作”,而是证明每一片出厂的单板都能在规定的环境、时序和边界条件下稳定工作,并且这种能力可以被复现、被追溯、被交接。

本课程围绕 Lattice FPGA 从设计冻结到量产交付的完整链路展开,共 30 章。第 1 章先建立全景认知:产品化流程包含哪些阶段、测试与交付是什么关系、工程交付物到底有哪些、以及后续学习路径如何与真实项目对齐。

一、从“设计完成”到“产品交付”的四个阶段

Lattice FPGA 的产品化流程可以归纳为四个阶段,每个阶段的输出物和判定标准都不同:

  • 设计冻结(Design Freeze):RTL 功能验证通过,时序约束(SDC)收敛,引脚分配锁定。此时输出的是可综合的源码、约束文件和引脚规划表。判定标准是静态时序分析(STA)在所有工艺角(Typical/ Slow/ Fast)下无违例,且 I/O 约束与 PCB 实际连接一致。
  • 原型验证(Prototype Validation):在真实 PCB 上完成上电、配置加载、功能联调。Lattice 器件常用 NVCM(非易失配置存储器)或外部 SPI Flash 启动,需要验证配置时间、启动电流、DONE 信号时序。判定标准是功能符合规格书,且配置成功率在多次上下电循环中达到 100%。
  • 产品化测试(Production Test):把“能工作”转化为“可批量判定”。包括测试向量生成、ATE 或板级测试工装设计、测试覆盖率分析、边界扫描(JTAG/1149.1)链路验证、以及量产测试程序(TP)的稳定性验证。判定标准是测试程序在至少 3 个批次、每批不少于 30 片样品上无漏判、无过杀。
  • 工程交付(Engineering Delivery):把设计、测试、文档、工具链打包成客户或产线可独立使用的交付物。判定标准是第三方工程师仅凭交付包即可完成配置、测试和故障定位。

这四个阶段不是严格串行的。例如,产品化测试中发现的时序余量不足,可能需要回到设计冻结阶段调整约束;工程交付中发现的文档缺失,也可能反向要求补充测试记录。理解这种迭代关系,是避免“测试做完才发现交付不了”的关键。

二、测试与交付的关系

测试和交付常被混为一谈,但它们的关注点不同。测试回答的是“这片板子现在是否合格”,交付回答的是“别人能否独立地让这片板子合格”。测试是过程,交付是结果的可转移性。

一个典型的误区是:测试程序在实验室跑通了,就认为可以交付。实际上,实验室环境与产线环境存在显著差异——产线可能使用不同的下载器、不同的供电时序、不同的操作员熟练度。如果交付包中没有明确测试环境、测试步骤、预期结果和异常处理方式,产线就无法复现实验室的测试结论。因此,交付物中必须包含测试规范(Test Specification)和测试记录模板(Test Record Template),而不仅仅是测试代码。

测试与交付的衔接点在于“可复现性”。任何测试结论,如果不能在另一个环境、由另一个人复现,就不能作为交付依据。

三、工程交付物清单

Lattice FPGA 项目的工程交付物通常分为五类。以下清单可作为项目收尾时的检查依据:

类别交付物关键说明
设计源文件RTL 源码、SDC 约束、引脚约束(.lpf/.pdc)需注明器件型号、速度等级、封装
配置文件比特流(.bit/.bin)、NVCM 烧录文件、SPI Flash 镜像需标注生成工具版本与校验和
测试资产测试规范、测试向量、JTAG 链路描述、测试记录模板需包含通过/失败判据
文档配置说明、上电时序要求、故障排查指南需包含典型异常与处理方式
工具与环境Diamond/Propel 工程、编程器型号、驱动版本需注明操作系统与依赖

这份清单不是形式主义。以配置文件为例,Lattice 不同系列的比特流格式和烧录方式差异很大:MachXO2/3 支持 NVCM 内部配置,而 ECP5 通常依赖外部 SPI Flash。如果交付包中只给了一个 .bit 文件,却没有说明目标器件的配置模式(Master SPI / Slave SPI / JTAG),产线就可能烧错位置,导致批量返工。

四、学习路径与实战目标

后续章节将沿着“设计冻结 → 原型验证 → 产品化测试 → 工程交付”的主线展开,但不会平均用力。重点放在产品化测试和工程交付,因为这两部分最容易被忽视,也最容易在量产阶段暴露问题。

具体学习路径包括:Lattice 器件配置模式与启动时序、JTAG 边界扫描与链路验证、测试向量生成与覆盖率分析、量产测试程序开发与稳定性验证、交付包组织与版本管理、以及典型故障案例复盘。每个章节都会给出可操作的参数、步骤或检查表,而不是停留在概念层面。

实战目标有三个:第一,能够独立完成一个 Lattice FPGA 项目的产品化测试方案设计;第二,能够组织一份第三方可用的工程交付包;第三,能够识别并处理量产测试中的常见异常,如配置失败、JTAG 链路断裂、测试过杀等。

Lattice FPGA 产品化流程与交付物全景 设计冻结 RTL / SDC / 引脚锁定 STA 全工艺角无违例 原型验证 上电 / 配置 / 功能联调 配置成功率 100% 产品化测试 测试向量 / 覆盖率 / TP 3 批次无漏判过杀 工程交付 交付包 / 文档 / 工具 第三方可独立复现 时序余量不足 / 测试异常 → 回退调整 工程交付物五类清单 设计源文件 RTL / SDC .lpf / .pdc 配置文件 .bit / .bin NVCM / SPI 镜像 测试资产 测试规范 / 向量 JTAG 链路 / 记录模板 文档 配置说明 上电时序 / 排障指南 工具环境 Diamond 工程 编程器 / 驱动 核心衔接点:可复现性 测试结论必须能在另一环境、由另一人复现,否则不能作为交付依据

上图把四个阶段、迭代回环和五类交付物放在同一视图中。可以看到,产品化测试位于中间位置,向前依赖设计冻结和原型验证的输出,向后为工程交付提供判定依据。如果测试环节缺失或不可复现,交付包就只是一堆文件,而不是可执行的工程资产。