2. Lattice FPGA器件选型与资源评估
在嵌入式视觉平台设计中,FPGA 选型不是“挑一个容量最大的器件”,而是把视觉算法需求翻译成一组可量化的资源与约束指标,再与 Lattice 各系列器件的资源表逐项对齐。Lattice 面向视觉的器件大致分为三条路线:超低功耗小规模逻辑的 iCE40 系列、主打低功耗与 MIPI/D-PHY 硬核的 CrossLink 系列、以及面向中高端图像处理与 AI 推理的 ECP5 / CertusPro-NX / Avant 系列。选型的核心问题始终是:图像分辨率与帧率决定带宽,算法复杂度决定 DSP 与逻辑规模,缓存策略决定 BRAM 用量,而封装与功耗决定它能否真正装进目标产品。
一、先算带宽,再谈器件
视觉任务的第一个硬指标是像素吞吐率。以 1920×1080@60fps、RGB888 为例,单帧像素约 207 万,每像素 3 字节,则原始数据率约为 1920×1080×60×3 ≈ 373 MB/s。若前端是 MIPI CSI-2 的 RAW10 格式,则每像素 10 bit,数据率约为 1920×1080×60×10/8 ≈ 155 MB/s。这个数字直接决定接口选择:CrossLink-NX 与 CertusPro-NX 内置 D-PHY 硬核,可稳定支持 MIPI 输入;而 iCE40 系列通常只能通过 LVDS 或并行接口接收较低带宽的图像。
带宽还决定内部数据通路的位宽与时钟。若采用 8 bit 并行像素、100 MHz 像素时钟,则单通道吞吐为 800 Mb/s,足以覆盖 1080p@30fps 的灰度处理;若要处理 1080p@60fps 的 RGB,则需 16 bit 或双通道并行,或提高像素时钟到 150 MHz 以上。这一步的结论会直接排除一批逻辑规模足够但接口带宽不足的器件。
二、逻辑资源、DSP 与 BRAM 的三角平衡
逻辑资源(LUT/FF)决定控制逻辑、状态机、行缓存地址生成、图像格式转换等“胶水逻辑”的规模。一个典型的 1080p 行缓存控制器加 AXI-Stream 打包逻辑,大约消耗 1.5k~3k LUT;若再加上 Bayer 转 RGB、Gamma 校正、3×3 卷积等流水线,LUT 需求会上升到 6k~15k。因此 iCE40UP5K(约 5.3k LUT)适合极简的灰度阈值或简单边缘检测,而 ECP5-25(约 24k LUT)和 CertusPro-NX-100(约 100k LUT)才能容纳完整的 ISP 流水线。
DSP 资源决定乘加运算的并行度。以 3×3 卷积为例,每个输出像素需要 9 次乘加;若采用 8 路并行、每时钟输出 8 个像素,则每时钟需要 72 次乘加。ECP5 的 DSP48 每周期可完成一次 18×18 乘加,因此至少需要 72 个 DSP 才能在一个时钟内完成。ECP5-25 提供约 56 个 DSP,ECP5-45 约 128 个,CertusPro-NX-100 约 240 个。若算法是 Sobel 这类系数为 ±1、±2 的卷积,可用移位加法替代乘法,DSP 需求可大幅下降,这也是低功耗器件仍能跑边缘检测的原因。
BRAM 决定行缓存与帧缓存的容量。一行 1920 像素、每像素 8 bit,需要 1920 字节;若做 3 行缓存,约 5.8 KB。若要做 3×3 窗口的列缓存,还需额外存储。ECP5-25 提供约 1.0 Mb(约 128 KB)BRAM,足以支撑 1080p 的 3~5 行缓存;但若要缓存整帧 1080p 灰度图(约 2 MB),则必须外挂 DDR 或使用 Avant 系列的大容量片上存储。选型时要区分“行缓存够用”和“帧缓存必须外挂”两种情形,前者可省去外部存储器,后者则要评估 DDR 控制器占用的逻辑与引脚。
三、功耗与封装:决定能否落地的最后一关
功耗评估要区分静态功耗与动态功耗。静态功耗主要由工艺与器件规模决定,iCE40 系列在待机时可低至数百微安,适合始终在线的唤醒型视觉;ECP5 与 CertusPro-NX 的静态功耗通常在几十毫瓦量级。动态功耗则与翻转率、时钟频率和资源占用成正比,可用 P ≈ α·C·V²·f 估算。以 ECP5-25 为例,若 100 MHz 时钟下约 30% 的逻辑翻转、DSP 使用率 50%,动态功耗大致在 0.3~0.8 W 区间(此为工程估算示例,实际需用 Lattice Radiant 的 Power Calculator 结合具体网表计算)。
封装约束常被忽视却最致命。小尺寸封装(如 QFN、caBGA)引脚数有限,若需要 MIPI 4-lane、DDR3 16 bit、多路 GPIO,引脚预算会迅速吃紧。例如 CrossLink-NX 的 72 引脚 QFN 封装,可用 IO 约 40 个,难以同时容纳 4-lane MIPI 与 16 bit DDR;此时应升级到 256 引脚 caBGA 或改用串行存储器方案。选型时应先列出接口清单,再核对目标封装的 IO 数与专用硬核引脚位置,避免“资源够但引脚不够”的返工。
四、选型决策表(示例)
下表给出一份可直接参考的选型对照示例,参数为典型值,实际设计请以最新数据手册为准。
| 器件系列 | LUT | DSP | BRAM | 典型视觉任务 | 封装/接口要点 |
|---|---|---|---|---|---|
| iCE40 UltraPlus | 5.3k | 8 | 120 kb | 灰度阈值、简单边缘 | QFN,无 MIPI 硬核 |
| CrossLink-NX | 17k~39k | 24~56 | 0.5~1.5 Mb | MIPI 输入、720p 预处理 | 内置 D-PHY,小封装可选 |
| ECP5-25 | 24k | 56 | 1.0 Mb | 1080p ISP、3×3 卷积 | 支持 DDR3,IO 较丰富 |
| ECP5-45 | 44k | 128 | 1.9 Mb | 1080p 多算法流水线 | caBGA,适合 DDR 缓存 |
| CertusPro-NX-100 | 100k | 240 | 7.2 Mb | 多路视觉、轻量 AI | 高速 SerDes,大容量片上存储 |
综合来看,Lattice 视觉选型的本质是把“像素流”翻译成“资源流”:带宽决定接口与时钟,算法决定 DSP 与 LUT,缓存决定 BRAM,产品形态决定功耗与封装。只有这四项同时收敛,选型才算完成。实际项目中,建议先用 Radiant 的 IP 核与 Power Calculator 做一次粗估,再在目标板上用真实图像流验证资源占用与温升,避免纸面参数与实测偏差带来的后期风险。