2. PolarFire器件选型与系统需求分析
PolarFire 系列(含 PolarFire、PolarFire SoC、PolarFire Core)在选型时并不是“先挑最大器件再裁剪”,而是从系统需求出发,把逻辑资源、DSP、存储器、收发器、功耗与封装六个维度同时约束,最终收敛到唯一型号。选型错误通常不是资源不够,而是资源够但封装放不下、功耗超预算、或收发器速率不匹配。因此本节按“需求量化 → 资源映射 → 约束校验 → 型号收敛”的顺序展开。
一、把系统需求翻译成可比较的量化指标
选型的第一步是把功能描述转成数字。以一台工业视觉采集与预处理板为例,需求可拆为:
- 接口:2 路千兆以太网(RGMII)、1 路 PCIe Gen2 x4、1 路 SGMII 光模块;
- 处理:图像行缓存与 3×3 卷积、直方图统计、DDR3 帧缓存;
- 时钟:125 MHz 参考、200 MHz 系统时钟、DDR3 533 MHz;
- 环境:工业级 −40~+100 ℃ 结温,单板功耗预算 ≤ 4 W;
- 封装:PCB 面积受限,需 ≤ 23 mm × 23 mm。
这些指标分别对应 PolarFire 的收发器数量与速率、逻辑单元(LE/LUT)、Math 块(DSP)、LSRAM/µSRAM、DDR 控制器、功耗与封装。选型时先按“最紧约束”筛选,再验证其余维度。
二、逻辑资源与 DSP 的估算方法
逻辑资源不能凭感觉估。对图像 3×3 卷积,若按 8 bit 像素、每时钟处理 1 像素、3×3 窗口并行计算,则每像素需 9 次乘加。若用 DSP 实现,每时钟 1 像素需 9 个 Math 块;若用 LUT 实现,则约 9×8×8 ≈ 576 个 LUT 用于乘法,加上加法树与行缓存控制,单通道约 1.5K~2K LUT。PolarFire 的 Math 块为 18×18 有符号乘法器,支持预加器,适合做对称系数卷积。
假设系统需 4 通道并行、每通道 1 像素/时钟,则 DSP 需求约 36 个 Math 块;若改用时分复用 4 通道共享 9 个 Math 块,则时钟需提高到 4 倍像素时钟。PolarFire MPF300 系列提供约 300K 逻辑单元、924 个 Math 块、20.6 Mb LSRAM,足以覆盖上述需求并留出 30% 余量。若选 MPF100,Math 块约 336 个,逻辑约 100K,仍可满足但余量偏小,后续增加协议栈或调试逻辑时容易吃紧。
三、存储器:LSRAM、µSRAM 与 DDR 的分工
PolarFire 的片上存储分两类:LSRAM 为大容量块存储(每块 20 Kb),µSRAM 为小容量分布式存储(每块 64×12 bit),适合做 FIFO、寄存器堆和小缓存。图像行缓存若为 1920 像素×8 bit×3 行 ≈ 46 Kb,可用 3 块 LSRAM 实现;若用 µSRAM 则需约 60 块,会挤占逻辑布线资源。因此行缓存优先用 LSRAM,µSRAM 留给控制状态机和系数表。
DDR 控制器方面,PolarFire 硬核支持 DDR3/DDR3L/LPDDR3/DDR4,速率可达 1600 Mbps。若帧缓存需 1080p×8 bit×2 帧 ≈ 33 Mb,外挂 1 颗 16 bit DDR3 即可满足。选型时要确认器件是否带该硬核,以及封装是否引出对应 Bank 的 DDR 引脚。
四、收发器与封装的联合约束
PolarFire 的 SerDes 分两类:PCIe 硬核控制器和通用 SerDes。MPF300 提供最多 8 路 12.7 Gbps 收发器,PCIe Gen2 x4 占用 4 路,SGMII 占用 1 路,剩余 3 路可留给未来扩展。若选 MPF100,收发器数量较少,PCIe x4 与 SGMII 可能无法同时满足,必须降级为 PCIe x1 或改用 RGMII 光模块。
封装决定可用 Bank 数量与高速引脚位置。FCG1152 为 1152 球 Flip-Chip,23 mm×23 mm,引出全部收发器与 DDR Bank;FCG784 尺寸更小但收发器通道受限。选型时要在 IO Planner 中确认:PCIe 参考时钟差分对、SGMII 收发对、DDR3 地址/数据组是否落在同一 Bank 且满足长度匹配要求。若封装引脚冲突,即使资源足够也必须换型号。
五、功耗估算与速度等级
PolarFire 采用 28 nm FD-SOI 工艺,静态功耗低。以 MPF300T 为例,在 200 MHz、60% 逻辑翻转率、4 路 SerDes 工作条件下,典型核心功耗约 1.2~1.8 W,加上 IO 与收发器约 2.5~3.2 W,满足 4 W 预算。若选 MPF500,逻辑规模翻倍,静态与动态功耗上升约 40%,可能超出预算。
速度等级影响时序收敛。−1 等级在工业级温度下时序余量较小,若设计中有 533 MHz DDR3 与 200 MHz 逻辑,建议用 −1 并预留 15% 时序余量;若时序紧张,可降为 −1 但降低逻辑频率,或选 −2 等级(若可用)。选型时要用 Libero 的 SmartPower 与 Timing Analyzer 做早期估算,而不是等布局布线后再补救。
六、可直接使用的选型决策表
下表为上述示例的选型记录,可作为同类项目的填写模板。表中“余量”指资源占用后剩余比例,建议逻辑与 DSP 余量不低于 25%,存储器不低于 20%。
| 维度 | 需求值 | MPF100 | MPF300T | MPF500 | 结论 |
|---|---|---|---|---|---|
| 逻辑 LE | ≈60K | 100K(余 40%) | 300K(余 80%) | 500K(余 88%) | MPF100 偏紧 |
| Math 块 | 36 | 336(余 89%) | 924(余 96%) | 1488(余 98%) | 均可 |
| LSRAM | ≈0.5 Mb | 7.6 Mb | 20.6 Mb | 31 Mb | 均可 |
| 收发器 | 5 路 | 4 路(不足) | 8 路(余 3) | 8 路(余 3) | MPF100 淘汰 |
| 功耗 | ≤4 W | ≈2.0 W | ≈3.0 W | ≈4.2 W(超) | MPF500 淘汰 |
| 封装 | ≤23×23 mm | FCG784 可行 | FCG1152 可行 | FCG1152 可行 | 均可 |
| 最终选择 | MPF300T-FCG1152I | ||||
完成选型后,应把该表连同 Libero 工程中的器件设置、IO Planner 约束、SmartPower 估算报告一起归档。后续若需求变更(如增加一路 10 GbE),只需回到表中更新“需求值”列,重新校验收发器与功耗两行,即可快速判断是否需要换型号,而不必重新走一遍完整评估。