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